I'm solving a MIP using CPLEX version 12.1, with several custom callbacks applied (such as branch, cut and heuristic callbacks), using the Java API, on a single thread. I'm running on WXP SP3, JRE 1.6.0_16.

I was wondering if anyone has experienced any significative performance differences between running cplex on a windows environment and on a linux environment. If that is the case, using which Windows version and Linux distribution?


asked 01 Oct '10, 21:34

spalladino's gravatar image

accept rate: 0%

Have you considered simply installing an Ubuntu or Fedora next to your windows? It's very simple and doesn't take long. Create a bootable CD or USB, boot from it, start installation, choice radiobutton "dual boot" (not "delete my entire hard disk"), wait half an hour and you're done. And you can access your windows data from inside Ubuntu/Fedora. Then install CPLEX and run your program.

(28 Feb '11, 13:52) Geoffrey De ... ♦

There is another variable in terms of CPLEX performance between Windows and Linux, even running on the same box. IBM uses different compilers on each operating system to build CPLEX, so the numerical operations can be slightly different under the two operating systems based on the compiler optimizations, causing different paths to be taken, and thus you get different performance.


answered 02 Oct '10, 02:15

Irv%20Lustig's gravatar image

Irv Lustig
accept rate: 0%

I have no experience about benchmarking cplex on linux and windows. But I have made benchmark of other optimization software on exact the same machine running both windows and linux and compiled with the same compiler. The results even out on a larger problem set i.e they run in about the same speed. This was for a single threaded run, there might be some issues with multi threaded application, though I am not sure.

I should say, if you google the subject about linux vs. windows, i think you will see a flame war, but as said I have seen no difference for console applications.

I would guess any performance issue you see is random. The randomness might even be consistent on your problem structure i.e you see it on all similar models. It can also be related to different compilers, as Irv suggested, but on average I doubt the difference will be significant.


answered 02 Oct '10, 05:41

Bo%20Jensen's gravatar image

Bo Jensen ♦
accept rate: 14%

I 've done benchmarks of a large build (= lots of compiling and file access) on the same hardware in the same way on Ubuntu linux 9.10 and Windows Vista. That version of linux was 50% (2min vs 3mins) faster. However, for pure CPU calculation it probably depends more on the hotspot compilation/optimization, server mode, max memory, thread priority, etc. And for graphical stuff, the easiest way to make windows beat linux is to use DirectX (because DirectX only uses the GPU on windows) and not use opengl (uses GPU on both).

All in all, just try it yourself. Your mileage maybe vary.


answered 21 Nov '10, 19:36

Geoffrey%20De%20Smet's gravatar image

Geoffrey De ... ♦
accept rate: 6%

edited 22 Nov '10, 07:58

There is no information about graphical applications, in fact the OP specifically asks about custom MIP, I think it's safe to assume we talk about number crunchers here.

(21 Nov '10, 20:20) Bo Jensen ♦

Did quite a bit of testing of cplex v gurobi earlier this year for MIPs on multi-core linux box. You have to be very cautious about how you interpret the results. Make sure there is an equivalent load on the machine during testing. Else, it can look as if one solver outperforms the other. You can set the solver priority and number of cores/threads allocated to the process.

This is tricky stuff. You'll also probably need to test across a variety of MIPs. We found that some MIPs do better on one solver than another. Be very cautious about drawing broad conclusions based on a limited set of problems. It can be really easy to draw the wrong inferences about performance.

Good luck.


answered 27 Feb '11, 18:06

Jerry%20Shaw's gravatar image

Jerry Shaw
accept rate: 0%

I've run code (CPLEX via Java API) on both Win XP and Linux (first Ubuntu, then Mint), but the hardware platforms were different, which makes comparisons hard. In particular, the Linux machines have significantly faster CPUs than the XP box. My sense is that, assuming identical hardware, the code on Linux is no slower than the code on XP; it may be faster, but I can't be positive. To me, though, the more critical issue is that I have more confidence that long runs will execute uninterrupted on Linux than on Windows (by "uninterrupted" I mean without the OS crashing or in some way significantly inhibiting the thread). I also think my production runs face less competition for processor time under Linux, partly because the system is burdened with fewer security programs that actively eat CPU cycles and partly because when I'm logged out with a job running on Linux (single user machine), I'm confident the X system is not eating cycles. With XP, I'm not sure it's possible to prevent the GUI from running in the background, although it should theoretically be idle. (Win 7 may be better about this, but again I'm not sure.)


answered 01 Oct '10, 23:38

Paul%20Rubin's gravatar image

Paul Rubin ♦♦
accept rate: 19%

Speeds may be differ, but not significantly for the real life instances i ran recently. However, for large problem instances, i was able to allocate considerably larger contiguous heap space for JVM on ubuntu versus windows in a 32-bit environment (same machine, dual boot). Since this was a big deal for me, i do all my cplex and gurobi runs primarily on ubuntu.


answered 23 Nov '10, 06:28

shiva%204's gravatar image

shiva 4
accept rate: 11%

If you can move your data, then Amazon EC2 has some big *** machines, which you can run in no time at low cost.

(23 Nov '10, 08:25) Bo Jensen ♦

Are you working on Win32 or Win64? Win 32-bit cannot allocate more than 2-3GB of RAM, correct? So you should at least try with a 64-bit system&complier to avoid writing the nodefile too early (or to stop because of memory limit)


answered 13 Aug '15, 13:07

Matteo%20Fischetti's gravatar image

Matteo Fisch...
accept rate: 0%

This discussion took place almost five years ago. :-)

(13 Aug '15, 15:05) Slavko
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here



Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "Title")
  • image?![alt text](/path/img.jpg "Title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported



Asked: 01 Oct '10, 21:34

Seen: 6,191 times

Last updated: 13 Aug '15, 15:05

OR-Exchange! Your site for questions, answers, and announcements about operations research.