[Ipopt] Multiple Cores

Tony Kelman kelman at berkeley.edu
Mon May 13 13:28:01 EDT 2013


Quick correction. In my last email when I said “Here’s how I most recently configured Ipopt to use sequential MKL,” that was actually what I used for mulithreaded MKL, sorry.

And regarding use with MA86 or MA97, be sure you compile them with OpenMP support (hence the FFLAGS=-fopenmp, assuming gfortran compiler). You control the number of threads used by an OpenMP solver (MA86, MA97, and Pardiso) by setting the environment variable OMP_NUM_THREADS.

If you’re using the bash shell, you set an environment variable as follows (example for 4 threads):
export OMP_NUM_THREADS=4
With C shell, the corresponding command is:
setenv OMP_NUM_THREADS 4
When you use both multithreaded MKL and a multithreaded linear solver, you should control the number of threads used by MKL specifically with the MKL_NUM_THREADS environment variable, otherwise it will use the OMP_NUM_THREADS setting (which may not be what you want, if you’ve got a parallel linear solver calling parallel BLAS).
WSMP uses pthreads rather than OpenMP, so you control the number of threads used with that solver by an Ipopt option wsmp_num_threads instead of an environment variable.
One thing I’ve noticed when running Ipopt with a parallel linear solver is the “Total CPU secs in IPOPT” will be higher than the wall time (multiple CPU’s are being used, so I guess it means what it says). With print_timing_statistics set to yes you will get the CPU time, system time, and wall time all broken down.
-Tony
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20130513/6e11dbf8/attachment.html>


More information about the Ipopt mailing list