[BuildTools-tickets] [BuildTools] #80: configure for profiling

BuildTools coin-trac at coin-or.org
Thu Nov 25 11:17:14 EST 2010


#80: configure for profiling
------------------------+---------------------------------------------------
Reporter:  Gassmann     |        Owner:  somebody          
    Type:  enhancement  |       Status:  closed            
Priority:  minor        |    Component:  Wiki documentation
 Version:  0.5          |   Resolution:  fixed             
Keywords:               |  
------------------------+---------------------------------------------------
Changes (by stefan):

  * status:  new => closed
  * resolution:  => fixed


Comment:

 Hi,

 last one...

 On {{{http://www.redhat.com/archives/enigma-
 list/2001-December/msg00109.html}}} it sounds like adding -static makes
 g++ call the linker in a way that it automatically uses the profiling
 version of libc, i.e., -lc_p instead of -lc.

 Unfortunately, adding -static to the LDFLAGS does not work for me, because
 libtool seems to remove it:
 {{{
 /bin/sh ../../libtool --tag=CXX --mode=link g++  -O2 -g -pipe -DNDEBUG -pg
 -pg -static -o hs071_cpp  hs071_main.o hs071_nlp.o
 ../src/Interfaces/libipopt.la -lpthread -llapack -lblas -lm  -ldl
 -L/usr/lib64/gcc/x86_64-suse-linux/4.4 -L/usr/lib64/gcc/x86_64-suse-
 linux/4.4/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64
 -L/usr/lib64/gcc/x86_64-suse-linux/4.4/../../../../x86_64-suse-linux/lib
 -L/usr/lib64/gcc/x86_64-suse-linux/4.4/../../.. -lgfortranbegin -lgfortran
 -lm -lgcc_eh -ldl
 g++ -O2 -g -pipe -DNDEBUG -pg -pg -o hs071_cpp hs071_main.o hs071_nlp.o
 ../src/Interfaces/.libs/libipopt.a -lpthread -llapack -lblas
 -L/usr/lib64/gcc/x86_64-suse-linux/4.4 -L/usr/lib64/gcc/x86_64-suse-
 linux/4.4/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64
 -L/usr/lib64/gcc/x86_64-suse-linux/4.4/../../../../x86_64-suse-linux/lib
 -L/usr/lib64/gcc/x86_64-suse-linux/4.4/../../.. -lgfortranbegin -lgfortran
 -lm -lgcc_eh -ldl
 }}}

 However, if I add -static to the examples Makefile by hand and run the
 same example again, then I also get profiling information from system
 libraries:
 {{{
 Each sample counts as 0.01 seconds.
   %   cumulative   self              self     total
  time   seconds   seconds    calls  ms/call  ms/call  name
  89.28     14.83    14.83                             ma27od_
   3.79     15.46     0.63                             ma27rd_
   3.25     16.00     0.54                             ma27qd_
   0.60     16.10     0.10                             ma27nd_
   0.42     16.17     0.07                             logf
   0.36     16.23     0.06                             ma27hd_
   0.36     16.29     0.06                             mc19ad_
   0.24     16.33     0.04      188     0.21     0.21
 Ipopt::GenTMatrix::TransMultVectorImpl(double, Ipopt::Vector const&,
 double, Ipopt::Vector&) const
   0.24     16.37     0.04                             dcopy_
   0.18     16.40     0.03      312     0.10     0.10
 Ipopt::ExpansionMatrix::SinvBlrmZMTdBrImpl(double, Ipopt::Vector const&,
 Ipopt::Vector const&, Ipopt::Vector const&, Ipopt::Vector const&,
 Ipopt::Vector&) const
   0.18     16.43     0.03                             daxpy_
   0.18     16.46     0.03                             idamax_
   0.12     16.48     0.02      424     0.05     0.05
 Ipopt::ExpansionMatrix::AddMSinvZImpl(double, Ipopt::Vector const&,
 Ipopt::Vector const&, Ipopt::Vector&) const
   0.12     16.50     0.02      154     0.13     0.13
 Ipopt::GenTMatrix::MultVectorImpl(double, Ipopt::Vector const&, double,
 Ipopt::Vector&) const
   0.12     16.52     0.02       12     1.67     1.67
 Ipopt::Mc19TSymScalingMethod::ComputeSymTScalingFactors(int, int, int
 const*, int const*, double const*, double*)
   0.12     16.54     0.02                             dnrm2_
   0.06     16.55     0.01       79     0.13     0.51
 Ipopt::TSymLinearSolver::MultiSolve(Ipopt::SymMatrix const&,
 std::vector<Ipopt::SmartPtr<Ipopt::Vector const>,
 std::allocator<Ipopt::SmartPtr<Ipopt::Vector const> > >&,
   0.06     16.56     0.01       18     0.56     0.56
 MittelmannBndryCntrlDiriBase::eval_grad_f(int, double const*, bool,
 double*)
   0.06     16.57     0.01       18     0.56     0.56
 Ipopt::TNLPAdapter::Eval_jac_c(Ipopt::Vector const&, Ipopt::Matrix&)
   0.06     16.58     0.01       18     0.56     1.67
 Ipopt::TSymLinearSolver::GiveMatrixToSolver(bool, Ipopt::SymMatrix const&)
   0.06     16.59     0.01        1    10.00    10.00
 Ipopt::TNLPAdapter::GetSpaces(Ipopt::SmartPtr<Ipopt::VectorSpace const>&,
 Ipopt::SmartPtr<Ipopt::VectorSpace const>&,
 Ipopt::SmartPtr<Ipopt::VectorSpace const>&, Ipopt::
   0.06     16.60     0.01                             log
   0.06     16.61     0.01                             munmap
   0.00     16.61     0.00    45602     0.00     0.00
 Ipopt::SmartPtr<Ipopt::Vector const>::ReleasePointer_()
   0.00     16.61     0.00    20113     0.00     0.00
 Ipopt::SmartPtr<Ipopt::Vector>::ReleasePointer_()
   0.00     16.61     0.00    12965     0.00     0.00
 Ipopt::SmartPtr<Ipopt::IteratesVector const>::ReleasePointer_()
   0.00     16.61     0.00    12353     0.00     0.00
 Ipopt::SmartPtr<Ipopt::VectorSpace const>::ReleasePointer_()
   0.00     16.61     0.00    10404     0.00     0.00
 MittelmannBndryCntrlDiri1::y_d_cont(double, double) const
 }}}

-- 
Ticket URL: <https://projects.coin-or.org/BuildTools/ticket/80#comment:3>
BuildTools <http://projects.coin-or.org/BuildTools>
Tools for configuring and compiling COIN-OR codes



More information about the BuildTools-tickets mailing list