[Ipopt] IpOpt code: Detereministic or Random across various runs?
Jonathan Hogg
jonathan.hogg at stfc.ac.uk
Mon Dec 17 12:05:51 EST 2012
I'd try something along the lines of
OMP_NUM_THREADS=1 matlab -singleCompThread
when launching from the command line in linux to cover as many options
as possible.
You can presumably monitor the number of threads being used, for example
I tend to use
top -d 0.5
Jonathan
On 17/12/12 17:02, AliReza Khoshgoftar Monfared wrote:
>
> Thanks Vivek and Jonathan,
>
> I also suspect that this issue has something to do with MATLAB (or
> settings of BLAS and LAPACK).
> My original MATLAB code should be single-threaded, but I am suspicious
> that when I call Ipopt(), which uses the corresponding mex file, there
> might be multiple threads involved.
> Is there a way to force a single thread in MATLAB though?
>
> Alireza
>
>
> Might also be worth seeing if you can force everything to run
> single-threaded and seeing if that has any effect. Some parallel
> algorithms will produce different results on different runs, and even
> small changes in the descend direction can produce different
> results as
> you describe.
> Jonathan.
> On 15/12/12 11:52, Vivek Periaraj wrote:
> >/Maybe the data structures interfaced from MATLAB to IPOPT are in
> different orders in each run? Sometimes the order in which the
> variables are created affect the solution the algorithm converges
> to in the end. Especially true when multiple optimal solutions exists.
> />
> >/Regards,
> />/Vivek
> />
> >
> >/Hi,
> />
> >/I have been trying to solve an optimization with Ipopt.
> />
> >/I'm using the MATLAB interface of Ipopt, and my optimization
> problem is a
> />/not so complicated quadratic problem satisfying a number of
> distance
> />/inequalities for some points.
> />
> >/I have noticed that in different cases of my problem, whether it
> is solved
> />/(status 0), detected infeasible (status 2) or exceeded maximum
> iterations
> />/(status -2), even if I run the code with the exact same initial
> point and
> />/exact same options, I get results that are different.
> />/Now, I know that my problem does not have a unique solution,
> e.g. in case
> />/of instances that are solved completely I get different results
> while all
> />/satisfy the constraints. But still, I expect ipopt to give
> />/me similar results when I run it with similar conditions.
> />
> >/Is there any option in Ipopt that accounts to randomness. Or is it a
> />/behavior of MATLAB?
> />
> >/I have noticed that building Ipopt with various versions of BLAS
> and LAPACK
> />/does not affect this in my case (I tried third party versions
> provided, and
> />/also ATLAS implementations of libraries in Liunx), but forcing
> MALTAB to
> />/use different BLAS and LAPACK versions (through environment
> variables
> />/BLAS_VERSION and LAPACK_VERSION) has an effect (although in no
> case, I get
> />/exactly similar results) .
> />
> >/Has anybody else had such an experience with IpOpt? Should I
> change a
> />/setting in Ipopt ot MATLAB?
> />
> >/Thanks
> />/ALireza
> />
> >
> >/PS: If it helps, here is a summary of Ipopt options I have changed:
> />
> >/ipopt.hessian_approximation = 'limited-memory';
> />>/ipopt.mu_strategy = 'adaptive'; > tols = [1e-6; Options.MaxR;
> Options.MaxR]; > ipopt.tol = sum(tols); > ipopt.constr_viol_tol =
> tols(1); > ipopt.compl_inf_tol = tols(2); > ipopt.dual_inf_tol =
> tols(3); > hessian_constant = 'yes'; > ipopt.warm_start_init_point
> = 'yes';
> />/_______________________________________________
> />/Ipopt mailing list
> />/Ipopt at list.coin-or.org
> <http://list.coin-or.org/mailman/listinfo/ipopt>
> />/http://list.coin-or.org/mailman/listinfo/ipopt
> / --
> Scanned by iCritical.
>
>
>
> On Fri, Dec 14, 2012 at 7:11 PM, AliReza Khoshgoftar Monfared
> <khoshgoftar at gmail.com <mailto:khoshgoftar at gmail.com>> wrote:
>
> Hi,
>
> I have been trying to solve an optimization with Ipopt.
>
> I'm using the MATLAB interface of Ipopt, and my optimization
> problem is a not so complicated quadratic problem satisfying a
> number of distance inequalities for some points.
>
> I have noticed that in different cases of my problem, whether it
> is solved (status 0), detected infeasible (status 2) or exceeded
> maximum iterations (status -2), even if I run the code with the
> exact same initial point and exact same options, I get results
> that are different.
> Now, I know that my problem does not have a unique solution, e.g.
> in case of instances that are solved completely I get different
> results while all satisfy the constraints. But still, I expect
> ipopt to give me similar results when I run it with similar
> conditions.
>
> Is there any option in Ipopt that accounts to randomness. Or is it
> a behavior of MATLAB?
>
> I have noticed that building Ipopt with various versions of BLAS
> and LAPACK does not affect this in my case (I tried third party
> versions provided, and also ATLAS implementations of libraries in
> Liunx), but forcing MALTAB to use different BLAS and LAPACK
> versions (through environment variables BLAS_VERSION and
> LAPACK_VERSION) has an effect (although in no case, I get exactly
> similar results) .
>
> Has anybody else had such an experience with IpOpt? Should I
> change a setting in Ipopt ot MATLAB?
>
> Thanks
> ALireza
>
>
> PS: If it helps, here is a summary of Ipopt options I have changed:
>
> ipopt.hessian_approximation = 'limited-memory';
> ipopt.mu_strategy = 'adaptive';
> tols = [1e-6; Options.MaxR; Options.MaxR];
> ipopt.tol = sum(tols);
> ipopt.constr_viol_tol = tols(1);
> ipopt.compl_inf_tol = tols(2);
> ipopt.dual_inf_tol = tols(3);
> hessian_constant = 'yes';
> ipopt.warm_start_init_point = 'yes';
>
>
--
Scanned by iCritical.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20121217/5ecef386/attachment-0001.html>
More information about the Ipopt
mailing list