it_user766563 - PeerSpot reviewer
Assistant Professor at University Of Florida
Real User
When you do large problems, that's when you see that it's fast

What is our primary use case?

I've used it for optimization of linear models and, from what I've seen, it varies the speed compared to other libraries. 

What is most valuable?

The Speed. When you do large problems, that's when you see that it's fast. With other tools, solving large problems can take way longer. It is better to have the resource faster. 

There are also many APIs to connect to it.

What needs improvement?

I would like to see something more for problems that are not linear. That is what I am looking for. Conic problems, and stuff like that. Though maybe CPLEX has it already and I haven't seen it.

What do I think about the stability of the solution?

From what I've experienced, it doesn't crash that much. There have been a few crashes but compared to the other tools, it is better. 

How are customer service and support?

I haven't used the technical support.

Which solution did I use previously and why did I switch?

When I scaled the problem and it didn't solve as soon as I did it, it was taking too long, people told me, "Try CPLEX."

What other advice do I have?

When it comes to choosing a vendor I look for people who have had a similar problem as me and I ask them how they solved it. If they tell me CPLEX then I go to CPLEX, and if they tell me something else then I go there.

I have only used CPLEX for a few specific cases so I feel it would be unfair to evaluate it without really seeings all of the things that it is capable of doing. But I would recommend it to others who are considering implementing CPLEX. There is a lot of material online of people solving problems with CPLEX, which is also super helpful.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
it_user766599 - PeerSpot reviewer
Associate Professor at Loyola University Chicago
Vendor
Easy to use, provides high quality solutions that make my algorithms run faster and better

What is our primary use case?

I design algorithms to solve transportation problems and then I often use CPLEX as an engine within those algorithms to solve optimization problems.

It has performed very well. I have been using it since 2007 and it has gotten much better over time.

What is most valuable?

The way you can interface with it from a programming perspective, the implementation, is very useful. And, just generally, its performance. 

How has it helped my organization?

CPLEX is fairly easy to use and it does provide very high quality solutions which make my algorithms run faster and better.

What do I think about the stability of the solution?

I have not had any issues with stability.

What do I think about the scalability of the solution?

The algorithms that I design are based on the premise that CPLEX struggles when there is a lot of data. So CPLEX on its own won't scale to the size of problems that I am trying to solve, though I kind of like this because it gives me something to do. But it seems that it can solve bigger and bigger problems every year.

Which solution did I use previously and why did I switch?

CPLEX is sort of what I learned on. I will admit that I have used other products too, but CPLEX is what I know the best.

How was the initial setup?

I have installed it on my own computer and it was easy.

What other advice do I have?

It is still not clear to me what the GPU potential is for CPLEX. Can you leverage GPU technology, essentially? I think that would be interesting given how many processors there seem to be in those types of machines.

As an academic, when I am selecting a vendor, the first question that I ask is, "is it free"?  That plays a big role. But a product's reputation, the recognition of the brand name when I publish my results, that makes a difference too. I want to be able to say that I used a solver that everyone knows and respects. People will say, "Oh, yeah, of course he uses that. He did that the right way." 

If I were to offer advice to colleagues considering CPLEX I would tell them there is a learning curve, but that it is worth doing. That you will really see a benefit from putting the time in.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
it_user766593 - PeerSpot reviewer
Graduate Research Assistant at University Of Tennessee Space Institute
Vendor
The language is simple and intuitive but the infeasibility checks should be easier to set up

What is our primary use case?

I use CPLEX mainly for validation of the algorithms that I develop, such as metaheuristics. I want to compare their performance against CPLEX.

I also use it to validate my models. The math models that I make, mixed-integer programming and stochastic programming. In order to make sure that they are feasible, to test them, I use CPLEX. And if there is a case study that is small, I usually use CPLEX to solve it.

The performance is good for those exact solutions. But, in general, exact methods have this problem of computation time. And the amount of memory they need is considerable, sometimes. It also takes a while to learn how to adjust the settings of the software so it can perform better.

What is most valuable?

I think that it is user-friendly, compared to other methods. 

I also like the optimization studio in Windows. It is really awesome for someone who wants to just start using CPLEX, especially the OPL for writing the model. The language is really, really simple and intuitive and it is very easy to read and write. it's also easy to write control flows in CPLEX.

What needs improvement?

The infeasibility checks should be easier to set up. Currently, you have to name your constraints. It is really hard to find the infeasible constraints. If they could add that to the features, it would be great. 

It would also be awesome if they had a short tutorial that tells someone like me, who is not a new user, about the different features that I might not be aware of. Sometimes I will talk to a friend who will tell me that they are using a CPLEX feature that I didn't even know existed. I know what the software does but it would be helpful to have a tutorial that summarizes all of the features.

It is also a problem that CPLEX does not have a user-interface in Mac.

What do I think about the stability of the solution?

You need to learn how to play with the settings so it doesn't crash. But if you run on the default settings and your program size is large, it might crash after about an hour.

How are customer service and technical support?

I have never personally contacted to ask for support. I usually just google the problems that I have. There is usually a forum where I can find the answer.

Which solution did I use previously and why did I switch?

Beforehand, I was using GAMS for my masters degree. Then my advisor recommended using CPLEX. Once I installed it I found that I loved the OPL and how easy it was to write down the model. So if I want to do something really quickly, I go straight to CPLEX's studio and write it there. 

I also use Gurobi, in conjunction with Python. This is just because one of my course instructors used Gurobi with Python. But it shouldn't be any different, it's the same. 

How was the initial setup?

I had installed Optimization Studio. That was very easy and straightforward. The other one, for Mac, that one was a little tricky. I had to search online for instructions for the installation.

What other advice do I have?

I would definitely recommend CPLEX to colleagues who are thinking of using it. It is very reliable and there is a lot of programming behind it. I am confident that I can rely on the solutions that it gives me.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
it_user766572 - PeerSpot reviewer
Phd Candidate
Vendor
The callbacks allow you to add your own additional nuances to the solver

What is our primary use case?

I use CPLEX for network optimization, and the defaults don't work as well, but fortunately they have the callbacks that allow you to add your own additional nuances to the solver, and then that performs really well. 

What is most valuable?

The ability to actually incorporate some stuff that you have developed within CPLEX's big general framework. 

It is a very good tool. It's very user-friendly with its language, OPL. It can be used by someone who has no idea how to code, while also being very useful for someone who is very advanced in programming and has a lot of knowledge of the matter, of the material. So, I think it is very versatile for a very wide audience.

What needs improvement?

One of the new things in CPLEX is the new benders, the composition that does it automatically. One of the things I realized while testing it is that when it does it at the root node of the branch and bound tree, it doesn't leave with the LP relaxation. It often stops, terminates, before it stops adding cuts before. And it makes for a very weak stopping criteria later on in the branch and cut tree. So maybe polish it a little more. I know it is a very generic framework, but I think just by doing that one thing, it could really improve its performance for a lot of stuff. 

What do I think about the stability of the solution?

The stability is okay. For now, I haven't seen it crash. I have seen it become numerically unstable. One of the nice things about CPLEX is that it lets you know that there are certain numerical instabilities. I think that the new feature that they released in the 12.7 version manages to identify that these things are pernicious before trying to solve them, and it recommends other ways to correct that. 

What do I think about the scalability of the solution?

The scalability really depends on the type of problems. For my particular types of problems, it's not as scalable because there are a large number of constraints to the problems. So, if I increase the number of variables, I significantly increase the number of constraints. For my particular problem, it's not as scalable. But that is the reason why I use these nuances for my problems.

Which solution did I use previously and why did I switch?

I was not using any solutions previously. I ended up working on CPLEX because my adviser told me to.

How was the initial setup?

It was very straightforward.

What other advice do I have?

I would recommend to anyone who is looking to implement CPLEX that they read the documentation. I do not think that it is available on PDF, it is all on HTML now, but they can find the PDF file for the 12.5 version. I find it more friendly for navigation, so I'd tell them to read that one, and then for the particular things that are in the newest versions, they can go online.

Disclosure: PeerSpot contacted the reviewer to collect the review and to validate authenticity. The reviewer was referred by the vendor, but the review is not subject to editing or approval by the vendor.
PeerSpot user
it_user766626 - PeerSpot reviewer
Phd Student at University Of Florida
Vendor
Easy to write code and interpret the results; performance is good

What is our primary use case?

To solve LPN-IP. Performance was pretty good. I had some problems with solving one problem, but the problem was because of my formulation. Once I added it, it worked very well.

What is most valuable?

I have experience in Xpress and Gurobi, also. It is easy to write a code in CPLEX. That's a valuable thing.

How has it helped my organization?

What I'm doing is finding some clusters in a network. I'll build a model and apply  it to CPLEX and find some clusters. I can interpret some useful meanings about that.

What needs improvement?

What I'm looking for is actually nonlinear programming. I don't think CPLEX has that. There are some nonlinear program solvers in open source but they don't work well. So if some major commercial solver corporation has that option, it could be very useful.

What do I think about the stability of the solution?

Stability is fine. It's reasonable. Most of the problems are getting slower if I increase the number of nodes or something, but it's a typical thing.

How are customer service and technical support?

I haven't used it.

Which solution did I use previously and why did I switch?

Xpress and Gurobi. I'm not switching. It depends on the project. I can use all of them.

How was the initial setup?

I wasn't involved. Not in upgrades either. There is just  one size installed. I use it every time.

What other advice do I have?

I think CPLEX is the most familiar, other than Xpress and Gurobi. So, it is easy to recommend to others for general use. If they want some specific options or something then, I have to look for a manual.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
it_user766569 - PeerSpot reviewer
Phd Student at Bogazici University
Vendor
It is easy to use and has large application areas for optimization problems

What is our primary use case?

I used CPLEX for optimization while working on my PhD thesis, as well as for writing papers. As to how it performed, sometimes CPLEX solved the cases better than me and sometimes I solved the cases better than CPLEX.

What is most valuable?

It is easy to use and has very large application areas for optimization problems for networks in teacher optimizations. There is also a lot of documentation available online, which is very helpful when I'm searching for information on how to do something in CPLEX. There is a very large community of people that use CPLEX.

How has it helped my organization?

I consider CPLEX to be a state-of-the-art tool and I can't compare the power of my algorithms with CPLEX and the impact that it has had on my PhD thesis.

What needs improvement?

Actually, when CPLEX adds something it becomes more difficult for me to publish a paper. Maybe CPLEX can sleep a little bit and not make any improvements for a while.

What do I think about the stability of the solution?

It is stable, though, in one case I noticed that the dual values of the decision variables were not in the correct order. But I managed to find the correct way of presenting that situation and I selected it.

How are customer service and technical support?

I did write to IBM once about an issue related to cogeneration. They responded very quickly and were able to help me.

Which solution did I use previously and why did I switch?

No, I didn't try any other programs but I heard about them from my friends who are using these kind of optimization programs.

What other advice do I have?

When choosing to use CPLEX it was important to me that there were a lot of other people who were also using it and knew about it, which is how I knew that it is a good program. 

I would certainly recommend CPLEX to a friend or a colleague.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
it_user766584 - PeerSpot reviewer
Research Assistant
Vendor
I can click on the results and see how they are coming out

What is our primary use case?

I used CPLEX to solve a linear programming problem, where there was a compartment and there were a lot of containers in that compartment, and I had to optimize the space in that compartment to fit in different size containers. 

I am a data science guy and I'm doing optimization, so CPLEX  helps me when I am not able to solve a problem using machine learning data science principles, and I can solve it using CPLEX. CPLEX is a tool that offers something which cannot be done by statistics or machine learning tools. 

The performance was good, but I can't compare it with any other tools, because this is the only tool that I have used.

What is most valuable?

I really like that I can see the results properly. I can click on the results and then look at them to tell how the results are coming out.

What needs improvement?

In future versions, I would like to see them include different kinds of optimization problem techniques. The performance could also be faster.

One more thing that I would like to see added is the ability to find out how much time other solvers take. I know that CPLEX is one of the solvers, but it would be very helpful to be able to figure out what I need in order to optimize my quota in the runtime of a particular problem.

What do I think about the stability of the solution?

I have not experienced any issues with stability but I have heard from my friends that there are other tools which can perform better than CPLEX sometimes, in terms of computation. 

What do I think about the scalability of the solution?

CPLEX is limited to the linear programming and mixed integer programming. It is not extended to nonlinear programming, so I think the scalability can be an issue in that area. Though, most of the programs in the current industry are having linear programming problems, so I think CPLEX has a good future.

Which solution did I use previously and why did I switch?

CPLEX was the first optimization tool that I have used. I started using CPLEX when a supervisor in my previous company told me to try it out.

How was the initial setup?

The initial setup was straightforward. I did not face any issues with the installation.

What other advice do I have?

When selecting a vendor I would check if the performance is faster, the results are more accurate, and the GUI is more user-friendly than the competition.

I might recommend CPLEX to a colleague, depending on the problems that they are working on. If a university is seeking challenging problems in an area which is heuristic optimization or non-linear optimization, I do not think that CPLEX is the best software to do that. 

In terms of linear programming, CPLEX should be the first choice.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
it_user766608 - PeerSpot reviewer
Assistant Professor
Real User
Has the ability to do high-level modeling and also go all the way to the engine extensions

What is our primary use case?

I'm a professor in optimization. I do a lot of VIC routing scheduling problems and for those particular cases I use CPLEX and CP Optimizer a lot.

It performs really well. Sometimes you find bugs in there but the support team is good at getting them fixed.

What is most valuable?

I would say its extensibility, and the ability to do both high-level modeling and also go all the way to the engine extensions.

How has it helped my organization?

Whenever you do optimization, having a good CP solver or integer programming solver is a necessity. So CPLEX is a tool that I cannot do without.

What needs improvement?

What I would love to see is better accessibility of the engine extensions. Currently you can do really low-level stuff, and it's great, but you can only do it in C or C++. Whereas, sometimes the application requires another programming language, like Java or Python, and then you simply can't reach the engine extensions from either the Java or Python interface, and that is really a pity.

It would be really nice if you could write your extension in C++ but edit, or use it, through Java. That would be an improvement. But just being able to do everything completely from Java or Python would be a major improvement, and is probably something that CPLEX's competitors already have. So that is something I would really love to see in CPLEX too.

I am also involved in the open-source community and CPLEX is, unfortunately, not particularly nice because it is very expensive to buy. And I understand that obviously you need to earn money with CPLEX, so charging corporate members is necessary. But it would be nice if academics and people in the open-source community could also have access to it, or to a limited version of CPLEX.   

What do I think about the stability of the solution?

The stability is reasonably good. Every single version has some bug, which I somehow always encounter. Some of these issues are really severe and literally crash the engine. Very rarely, I find issues which actually impact the accuracy of the results. That has happened twice so far. In general, it is okay.

What do I think about the scalability of the solution?

I find scalability to be more of an issue that comes from the modeling. If it doesn't scale, then it is usually the problem of the modeler. Some problems are just too big to give as a whole piece to solve and expect a reasonable answer in a reasonable amount of time.

How are customer service and technical support?

I do not use technical support because that is for enterprise users but as an academic I do have direct connections to the development team. I find that the support from the development team is superb. I have frequently interacted with people from the team and they usually fix my bug within the next version. Sometimes I get access to an early developer version if it is a really crucial issue.

I used to frequently interact on the IBM website but it was a major pain. It is absolutely a garbage website. It takes effort to find, the form is really bad, the markup is really bad - they should just switch to any other platform and make it searchable. There is a search function but it is really bad. 

I download my software through the academic initiative, and obviously I love the initiative, but finding the initiative is an absolutely horrible experience too. Every year or so, there is a new version of CPLEX or CP Optimizer and I think, "Oh that's great, I would love to upgrade." Then I need to search, I actually need to search on Google, to find the link to the academic catalogs and then download it. It is really a painful experience. Try finding anything on the IBM website, and that doesn't work either. So the website is one of the major problems at the moment. 

Which solution did I use previously and why did I switch?

I started using CPLEX because I needed access to an integer programming solver and the CP solver. I wasn't using another product beforehand.

How was the initial setup?

The instillation is super easy. You just download it and run the executable in either Linux or Windows, and three questions later it is done. 

The only thing that is hard is if you connect directly to CPLEX through Java you will have to deal with classpath information and linking, which is not explained well. I frequently see people asking questions on websites like Stack Overflow or on the IBM forms about how to do this. CP is significantly easier, but it is still hard.

What other advice do I have?

When researching a product I consider what the quality, the support, and the documentation are like. The documentation for CPLEX, specifically the accessibility and where to find the documentation, is something that should be majorly improved.

If you are interested in CPLEX I recommend that after you install it, look over the examples that you get. There are some old, very hidden tutorials on how to do this. At some point, somebody from IBM wrote a manual on how to do scheduling in CP. That manual was very hard to find but if you can find it, it is a very valuable source of information.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user