[Ipopt] MA86 and MA97 Segfault with OpenMP

Jonathan Hogg jonathan.hogg at stfc.ac.uk
Thu May 23 04:05:54 EDT 2013


First question, does adding FC=ifort ADD_FCFLAGS="-openmp" to configure 
and recompiling from scratch fix things?

If not, is it possible to supply me with a copy of your code so I can 
attempt to reproduce the problem? I can't recall whether the Ipopt 
driver shipped with the option to dump matrices, but if it did a matrix 
dump of iteration zero might be easier?

Thanks,

Jonathan.

On 23/05/13 04:32, Breannan Smith wrote:
> Further investigation reveals that this problem arises with the Intel 
> compiler suite but not with the GCC suite. More concretely:
>
> # Configuring/building with the Intel compiler suite leads to a 
> segfault with MA86 and MA97 for hs071_main
> ../configure CXX=icpc CC=icc F77=ifort ADD_CFLAGS="-openmp" 
> ADD_FFLAGS="-openmp" ADD_CXXFLAGS="-openmp"
>
> # Configuring/building with the GCC suite works with MA86 and MA97 for 
> hs071_main
> ../configure CXX=g++ CC=gcc F77=gfortran ADD_CFLAGS="-fopenmp" 
> ADD_FFLAGS="-fopenmp" ADD_CXXFLAGS="-fopenmp"
>
> For reference, I have run these tests with GCC 4.6.3 and ICC 13.1.1 
> 20130313.
>
> Best regards,
> Breannan Smith
> smith at cs.columbia.edu <mailto:smith at cs.columbia.edu>
>
>
>
> On Wed, May 22, 2013 at 12:59 PM, Breannan Smith 
> <smith at cs.columbia.edu <mailto:smith at cs.columbia.edu>> wrote:
>
>     Dear Ipopt Community,
>
>     I'm attempting to run Ipopt-3.11.0 with the parallel HSL solvers
>     (http://www.hsl.rl.ac.uk/ipopt/) on 64-bit Linux with Intel's
>     compilers (version 13.1.1 20130313), but I encounter a segfault if
>     I execute Ipopt with MA86 or MA97 with OpenMP enabled. I am
>     configuring Ipopt with:
>
>     ../configure CXX=icpc CC=icc F77=ifort ADD_CFLAGS=-openmp
>     ADD_FFLAGS=-openmp ADD_CXXFLAGS=-openmp
>     --with-blas="-L$MKLROOT/lib -lmkl_intel_lp64 -lmkl_sequential
>     -lmkl_core"
>
>     I am building the HSL libraries with Ipopt as described in
>     the documentation (that is copying coinhsl into ThirdParty/HSL).
>
>     If I then modify the C++ test example hs071_main.cpp to use ma97
>     (e.g. app->Options()->SetStringValue( "linear_solver", "ma97" )),
>     build, and execute, the code segfaults in
>     hsl_mc78_integer_mp_mc78_col_counts_integer_ (backtrace included
>     below). This same example runs fine with ma27, ma57, and mumps.
>
>     Any thoughts, tips, tricks, or suggestions as to the cause of this
>     segfault?
>
>     Thanks, I'm happy to run more tests or provide more details!
>
>     Best regards,
>     Breannan Smith
>     smith at cs.columbia.edu <mailto:smith at cs.columbia.edu>
>
>     The backtrace:
>
>     Program received signal SIGSEGV, Segmentation fault.
>     0x00007ffff71b9701 in hsl_mc78_integer_mp_mc78_col_counts_integer_ ()
>        from
>     /proj/cg/users/smith/research_current/gr/code/libs/Ipopt-3.11.0/build/ThirdParty/HSL/.libs/libcoinhsl.so.1
>     (gdb) bt
>     #0  0x00007ffff71b9701 in
>     hsl_mc78_integer_mp_mc78_col_counts_integer_ ()
>        from
>     /proj/cg/users/smith/research_current/gr/code/libs/Ipopt-3.11.0/build/ThirdParty/HSL/.libs/libcoinhsl.so.1
>     #1  0x00007ffff729b031 in hsl_ma97_double_mp_get_nzl_ ()
>        from
>     /proj/cg/users/smith/research_current/gr/code/libs/Ipopt-3.11.0/build/ThirdParty/HSL/.libs/libcoinhsl.so.1
>     #2  0x00007ffff7298d9e in hsl_ma97_double_mp_compute_order_ ()
>        from
>     /proj/cg/users/smith/research_current/gr/code/libs/Ipopt-3.11.0/build/ThirdParty/HSL/.libs/libcoinhsl.so.1
>     #3  0x00007ffff72962ea in hsl_ma97_double_mp_analyse_double_ ()
>        from
>     /proj/cg/users/smith/research_current/gr/code/libs/Ipopt-3.11.0/build/ThirdParty/HSL/.libs/libcoinhsl.so.1
>     #4  0x00007ffff72cd1c1 in ma97_analyse_d ()
>        from
>     /proj/cg/users/smith/research_current/gr/code/libs/Ipopt-3.11.0/build/ThirdParty/HSL/.libs/libcoinhsl.so.1
>     #5  0x00007ffff7adf37e in
>     Ipopt::Ma97SolverInterface::InitializeStructure(int, int, int
>     const*, int const*) ()
>        from
>     /proj/cg/users/smith/research_current/gr/code/libs/Ipopt-3.11.0/build/Ipopt/src/Interfaces/.libs/libipopt.so.1
>     #6  0x00007ffff7ad2e19 in
>     Ipopt::TSymLinearSolver::InitializeStructure(Ipopt::SymMatrix
>     const&) ()
>        from
>     /proj/cg/users/smith/research_current/gr/code/libs/Ipopt-3.11.0/build/Ipopt/src/Interfaces/.libs/libipopt.so.1
>     #7  0x00007ffff7ad1a35 in
>     Ipopt::TSymLinearSolver::MultiSolve(Ipopt::SymMatrix const&,
>     std::vector<Ipopt::SmartPtr<Ipopt::Vector const>,
>     std::allocator<Ipopt::SmartPtr<Ipopt::Vector const> > >&,
>     std::vector<Ipopt::SmartPtr<Ipopt::Vector>,
>     std::allocator<Ipopt::SmartPtr<Ipopt::Vector> > >&, bool, int) ()
>     from
>     /proj/cg/users/smith/research_current/gr/code/libs/Ipopt-3.11.0/build/Ipopt/src/Interfaces/.libs/libipopt.so.1
>     #8  0x00007ffff7ac2d1f in
>     Ipopt::StdAugSystemSolver::MultiSolve(Ipopt::SymMatrix const*,
>     double, Ipopt::Vector const*, double, Ipopt::Vector const*,
>     double, Ipopt::Matrix const*, Ipopt::Vector const*, double,
>     Ipopt::Matrix const*, Ipopt::Vector const*, double,
>     std::vector<Ipopt::SmartPtr<Ipopt::Vector const>,
>     std::allocator<Ipopt::SmartPtr<Ipopt::Vector const> > >&,
>     std::vector<Ipopt::SmartPtr<Ipopt::Vector const>,
>     std::allocator<Ipopt::SmartPtr<Ipopt::Vector const> > >&,
>     std::vector<Ipopt::SmartPtr<Ipopt::Vector const>,
>     std::allocator<Ipopt::SmartPtr<Ipopt::Vector const> > >&,
>     std::vector<Ipopt::SmartPtr<Ipopt::Vector const>,
>     std::allocator<Ipopt::SmartPtr<Ipopt::Vector const> > >&,
>     std::vector<Ipopt::SmartPtr<Ipopt::Vector>,
>     std::allocator<Ipopt::SmartPtr<Ipopt::Vector> > >&,
>     std::vector<Ipopt::SmartPtr<Ipopt::Vector>,
>     std::allocator<Ipopt::SmartPtr<Ipopt::Vector> > >&,
>     std::vector<Ipopt::SmartPtr<Ipopt::Vector>,
>     std::allocator<Ipopt::SmartPtr<Ipopt::Vector> > >&,
>     std::vector<Ipopt::SmartPtr<Ipopt::Vector>,
>     std::allocator<Ipopt::SmartPtr<Ipopt::Vector> > >&, bool, int) ()
>        from
>     /proj/cg/users/smith/research_current/gr/code/libs/Ipopt-3.11.0/build/Ipopt/src/Interfaces/.libs/libipopt.so.1
>     #9  0x00007ffff79e81c2 in
>     Ipopt::AugSystemSolver::Solve(Ipopt::SymMatrix const*, double,
>     Ipopt::Vector const*, double, Ipopt::Vector const*, double,
>     Ipopt::Matrix const*, Ipopt::Vector const*, double, Ipopt::Matrix
>     const*, Ipopt::Vector const*, double, Ipopt::Vector const&,
>     Ipopt::Vector const&, Ipopt::Vector const&, Ipopt::Vector const&,
>     Ipopt::Vector&, Ipopt::Vector&, Ipopt::Vector&, Ipopt::Vector&,
>     bool, int) ()
>        from
>     /proj/cg/users/smith/research_current/gr/code/libs/Ipopt-3.11.0/build/Ipopt/src/Interfaces/.libs/libipopt.so.1
>     #10 0x00007ffff7a558d6 in
>     Ipopt::LeastSquareMultipliers::CalculateMultipliers(Ipopt::Vector&, Ipopt::Vector&)
>     ()
>        from
>     /proj/cg/users/smith/research_current/gr/code/libs/Ipopt-3.11.0/build/Ipopt/src/Interfaces/.libs/libipopt.so.1
>     #11 0x00007ffff79fea70 in
>     Ipopt::DefaultIterateInitializer::least_square_mults(Ipopt::Journalist
>     const&, Ipopt::IpoptNLP&, Ipopt::IpoptData&,
>     Ipopt::IpoptCalculatedQuantities&,
>     Ipopt::SmartPtr<Ipopt::EqMultiplierCalculator> const&, double) ()
>        from
>     /proj/cg/users/smith/research_current/gr/code/libs/Ipopt-3.11.0/build/Ipopt/src/Interfaces/.libs/libipopt.so.1
>     #12 0x00007ffff7a02862 in
>     Ipopt::DefaultIterateInitializer::SetInitialIterates() ()
>        from
>     /proj/cg/users/smith/research_current/gr/code/libs/Ipopt-3.11.0/build/Ipopt/src/Interfaces/.libs/libipopt.so.1
>     #13 0x00007ffff7a195c2 in
>     Ipopt::IpoptAlgorithm::InitializeIterates() ()
>        from
>     /proj/cg/users/smith/research_current/gr/code/libs/Ipopt-3.11.0/build/Ipopt/src/Interfaces/.libs/libipopt.so.1
>     #14 0x00007ffff7a127e1 in Ipopt::IpoptAlgorithm::Optimize(bool) ()
>        from
>     /proj/cg/users/smith/research_current/gr/code/libs/Ipopt-3.11.0/build/Ipopt/src/Interfaces/.libs/libipopt.so.1
>     #15 0x00007ffff798a542 in Ipopt::IpoptApplication::call_optimize() ()
>        from
>     /proj/cg/users/smith/research_current/gr/code/libs/Ipopt-3.11.0/build/Ipopt/src/Interfaces/.libs/libipopt.so.1
>     #16 0x00007ffff7989ca0 in
>     Ipopt::IpoptApplication::OptimizeNLP(Ipopt::SmartPtr<Ipopt::NLP>
>     const&, Ipopt::SmartPtr<Ipopt::AlgorithmBuilder>&) ()
>        from
>     /proj/cg/users/smith/research_current/gr/code/libs/Ipopt-3.11.0/build/Ipopt/src/Interfaces/.libs/libipopt.so.1
>     #17 0x00007ffff7989978 in
>     Ipopt::IpoptApplication::OptimizeNLP(Ipopt::SmartPtr<Ipopt::NLP>
>     const&) ()
>        from
>     /proj/cg/users/smith/research_current/gr/code/libs/Ipopt-3.11.0/build/Ipopt/src/Interfaces/.libs/libipopt.so.1
>     #18 0x00007ffff79898fa in
>     Ipopt::IpoptApplication::OptimizeTNLP(Ipopt::SmartPtr<Ipopt::TNLP>
>     const&) ()
>        from
>     /proj/cg/users/smith/research_current/gr/code/libs/Ipopt-3.11.0/build/Ipopt/src/Interfaces/.libs/libipopt.so.1
>     #19 0x0000000000402047 in main ()
>
>
>
>
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt


-- 
Scanned by iCritical.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20130523/6ac5fcde/attachment.html>


More information about the Ipopt mailing list