[Ipopt] MA86 and MA97 Segfault with OpenMP

Breannan Smith smith at cs.columbia.edu
Wed May 22 23:32:45 EDT 2013


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



On Wed, May 22, 2013 at 12:59 PM, Breannan Smith <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
>
> 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 ()
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20130522/cc35f210/attachment-0001.html>


More information about the Ipopt mailing list