[Developers] beta compile failure on Ubuntu?

dave fournier davef at otter-rsch.com
Fri Nov 12 06:53:08 PST 2010


Ian Taylor wrote:

You could compile it for profiling and find out where the time is spent
with gprof.
> After sending the yesterday, I caught the missing -O3. I tried adding 
> it back and also just doing the compiling with the old script. But as 
> long as I used the new libraries at the adlink stage, it went slow. 
> And by slow, I mean more than 8 minutes for a model that previously 
> took 2 1/2 minutes in ADMB version 9 if optimized and just over 3 
> minutes in safe mode (which also suggests that it's not just a matter 
> of optimizing).
>
> I can try other models to see if the pattern I saw was consistent, but 
> I'm also curious if anyone else has compared the speeds between 
> versions. I don't know if this is in the documentation, but run times 
> can be quantified with code like the following.
> -Ian
>
>     TOP_OF_MAIN_SECTION
>       time(&start);
>
>     GLOBALS_SECTION
>       #include <time.h>
>       time_t start,finish;
>       double elapsed_time;
>
>     FINAL_SECTION
>       time(&finish);
>       elapsed_time = difftime(finish,start);
>
> On 11/12/2010 2:09 PM, Johnoel Ancheta wrote:
>> Opps... Sorry...
>>
>> I accidentally committed the Makefile without the -O3 option.
>>
>> I'll correct and commit the changes.
>>
>> Thanks Dave for catching that.
>>
>> Johnoel
>>
>> On 11/12/10 4:09 AM, dave fournier wrote:
>>> Ian Taylor wrote:
>>>
>>> Just a thought Re speed. I don't see a -O3 flag for gcc for 
>>> optimization.
>>>> Hi Johnoel and others,
>>>>
>>>> Compiling ADMB 10 Beta on with 64-bit linux worked perfectly for me 
>>>> with the files in the download.
>>>>
>>>> However, the new script you sent by email failed. From the commands 
>>>> below (fuller notes attached), it looks like for Ubuntu at least, 
>>>> it would be better to test for 64 vs 32 using uname -m rather than 
>>>> uname -p.
>>>>
>>>>     ~/admb/admb-10.0Beta $ uname -a
>>>>     Linux ian-laptop 2.6.32-25-generic #45-Ubuntu SMP Sat Oct 16
>>>>     19:52:42 UTC 2010 x86_64 GNU/Linux
>>>>     ~/admb/admb-10.0Beta $ uname -s
>>>>     Linux
>>>>     ~/admb/admb-10.0Beta $ uname -p
>>>>     unknown
>>>>     ~/admb/admb-10.0Beta $ uname -m
>>>>     x86_64
>>>>
>>>> Aside from the good news of the successful install, this version 10 
>>>> Beta also produced identical results, which is also good news. 
>>>> However, it seems to be running slower than version 9, by a large 
>>>> margin, at least for a single model that I tried. Perhaps related 
>>>> to this, when I compiled using GCC in and ADMB version 9, the safe 
>>>> executable was about double the size of the optimized. Compiling 
>>>> with ADMB version 10, the file sizes are similar, and in between 
>>>> the old sizes. Perhaps the speed and file size differences are 
>>>> related to changes in the compile scripts? My old script was dated 
>>>> "23 May 2009".
>>>>
>>>> Finally, thank you, Johnoel, and all the others who've contributed 
>>>> to the developments that have gone into this new beta release.
>>>> -Ian
>>>>
>>>> On 11/10/2010 02:44 PM, Johnoel Ancheta wrote:
>>>>> Updated configure script is available.
>>>>>
>>>>> http://admb-project.googlecode.com/files/configure
>>>>>
>>>>> Download and replace the configure script in the admb-10.0Beta 
>>>>> distribution.
>>>>>
>>>>>
>>>>> On 11/10/10 11:09 AM, Ben Bolker wrote:
>>>>>>    (running under VMWare Fusion on Mac OS X.6, but I don't think 
>>>>>> that
>>>>>> matters)
>>>>>>
>>>>>>    It looks like configure is getting confused and thinking my 
>>>>>> system is
>>>>>> 64-bit ... ?
>>>>>>
>>>>>>> uname -a
>>>>>> Linux ubuntu-10 2.6.32-25-generic #45-Ubuntu SMP Sat Oct 16 
>>>>>> 19:48:22 UTC
>>>>>> 2010 i686 GNU/Linux
>>>>>>
>>>>>> uname -m
>>>>>> i686  ## indicates 32-bit kernel
>>>>>>
>>>>>> $ gcc -v
>>>>>> Using built-in specs.
>>>>>> Target: i486-linux-gnu
>>>>>> Configured with: ../src/configure -v --with-pkgversion='Ubuntu
>>>>>> 4.4.3-4ubuntu5' 
>>>>>> --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs
>>>>>> --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr
>>>>>> --enable-shared --enable-multiarch --enable-linker-build-id
>>>>>> --with-system-zlib --libexecdir=/usr/lib --without-included-gettext
>>>>>> --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4
>>>>>> --program-suffix=-4.4 --enable-nls --enable-clocale=gnu
>>>>>> --enable-libstdcxx-debug --enable-plugin --enable-objc-gc
>>>>>> --enable-targets=all --disable-werror --with-arch-32=i486
>>>>>> --with-tune=generic --enable-checking=release --build=i486-linux-gnu
>>>>>> --host=i486-linux-gnu --target=i486-linux-gnu
>>>>>> Thread model: posix
>>>>>> gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5)
>>>>>>
>>>>>>
>>>>>>
>>>>>> bolker at ubuntu-10:/usr/local/src/admb-10.0Beta$ 
>>>>>> <mailto:bolker at ubuntu-10:/usr/local/src/admb-10.0Beta$> 
>>>>>> <mailto:bolker at ubuntu-10:/usr/local/src/admb-10.0Beta$> sudo 
>>>>>> ./configure
>>>>>> checking for gcc... gcc
>>>>>> checking whether the C compiler works... yes
>>>>>> checking for C compiler default output file name... a.out
>>>>>> checking for suffix of executables...
>>>>>> checking whether we are cross compiling... no
>>>>>> checking for suffix of object files... o
>>>>>> checking whether we are using the GNU C compiler... yes
>>>>>> checking whether gcc accepts -g... yes
>>>>>> checking for gcc option to accept ISO C89... none needed
>>>>>> checking for g++... g++
>>>>>> checking whether we are using the GNU C++ compiler... yes
>>>>>> checking whether g++ accepts -g... yes
>>>>>> checking how to run the C++ preprocessor... g++ -E
>>>>>> checking for grep that handles long lines and -e... /bin/grep
>>>>>> checking for egrep... /bin/grep -E
>>>>>> checking for ANSI C header files... yes
>>>>>> checking for sys/types.h... yes
>>>>>> checking for sys/stat.h... yes
>>>>>> checking for stdlib.h... yes
>>>>>> checking for string.h... yes
>>>>>> checking for memory.h... yes
>>>>>> checking for strings.h... yes
>>>>>> checking for inttypes.h... yes
>>>>>> checking for stdint.h... yes
>>>>>> checking for unistd.h... yes
>>>>>> checking iostream usability... yes
>>>>>> checking iostream presence... yes
>>>>>> checking for iostream... yes
>>>>>> checking for flex... flex
>>>>>> checking lex output file root... lex.yy
>>>>>> checking lex library... none needed
>>>>>> checking whether yytext is a pointer... no
>>>>>> checking for sed... yes
>>>>>> checking whether C++ compiler is 64-bit enabled... yes
>>>>>> checking for svnversion... yes
>>>>>> configure: creating ./config.status
>>>>>> config.status: creating GNUmakefile
>>>>>> config.status: creating admb_configure.h
>>>>>> config.status: creating scripts/bash/admb-bin
>>>>>>
>>>>>> Configure completed for admb10.0Beta-linux-gcc4.4.3-64bit
>>>>>> To build ADMB, type 'make'
>>>>>> bolker at ubuntu-10:/usr/local/src/admb-10.0Beta$ 
>>>>>> <mailto:bolker at ubuntu-10:/usr/local/src/admb-10.0Beta$> 
>>>>>> <mailto:bolker at ubuntu-10:/usr/local/src/admb-10.0Beta$> sudo make
>>>>>> CXX=g++ CXXFLAGS="-m64"
>>>>>> LIBPATH=../build/admb10.0Beta-linux-gcc4.4.3-64bit/objects
>>>>>> DISK=../build/admb10.0Beta-linux-gcc4.4.3-64bit/dist 
>>>>>> ADMB_CONFIGURE=1
>>>>>> make --directory=src --file=linux.mak
>>>>>> make[1]: Entering directory `/usr/local/src/admb-10.0Beta/src'
>>>>>> rm -rf ../build/admb10.0Beta-linux-gcc4.4.3-64bit/dist
>>>>>> mkdir -p
>>>>>> ../build/admb10.0Beta-linux-gcc4.4.3-64bit/dist/{bin,lib,include,docs,docs/manuals,examples} 
>>>>>>
>>>>>> mkdir -p 
>>>>>> ../build/admb10.0Beta-linux-gcc4.4.3-64bit/objects/linad99-olp
>>>>>> mkdir -p 
>>>>>> ../build/admb10.0Beta-linux-gcc4.4.3-64bit/objects/linad99-slp
>>>>>> mkdir -p ../build/admb10.0Beta-linux-gcc4.4.3-64bit/objects/nh99-olp
>>>>>> mkdir -p 
>>>>>> ../build/admb10.0Beta-linux-gcc4.4.3-64bit/objects/nh99-olp-stub
>>>>>> mkdir -p 
>>>>>> ../build/admb10.0Beta-linux-gcc4.4.3-64bit/objects/tools99-olp
>>>>>> mkdir -p
>>>>>> ../build/admb10.0Beta-linux-gcc4.4.3-64bit/objects/df1b2-separable-slp 
>>>>>>
>>>>>> mkdir -p
>>>>>> ../build/admb10.0Beta-linux-gcc4.4.3-64bit/objects/df1b2-separable-olp 
>>>>>>
>>>>>> make --directory=df1b2-separable CC=gcc CXXFLAGS="-c -m64 -Wall
>>>>>> -Wno-deprecated -DUSE_LAPLACE -fpermissive -I../df1b2-separable
>>>>>> -I../nh99 -I../linad99 -I../tools99 -D__SPDLL__ -D__GNUDOS__ -Dlinux
>>>>>> -DOPT_LIB"
>>>>>> LIBPATH=../../build/admb10.0Beta-linux-gcc4.4.3-64bit/objects/df1b2-separable-olp 
>>>>>>
>>>>>> DISKDIR=../../build/admb10.0Beta-linux-gcc4.4.3-64bit/dist -f
>>>>>> optg32-rh8-laplace.mak disk
>>>>>> make[2]: Entering directory
>>>>>> `/usr/local/src/admb-10.0Beta/src/df1b2-separable'
>>>>>> g++ -c -m64 -Wall -Wno-deprecated -DUSE_LAPLACE -fpermissive
>>>>>> -I../df1b2-separable -I../nh99 -I../linad99 -I../tools99 -D__SPDLL__
>>>>>> -D__GNUDOS__ -Dlinux -DOPT_LIB  df1b2impspf.cpp -o
>>>>>> ../../build/admb10.0Beta-linux-gcc4.4.3-64bit/objects/df1b2-separable-olp/df1b2impspf.obj 
>>>>>>
>>>>>> In file included from /usr/include/features.h:378,
>>>>>>                   from /usr/include/unistd.h:26,
>>>>>>                   from ../linad99/fvar.hpp:173,
>>>>>>                   from ../nh99/admodel.h:69,
>>>>>>                   from df1b2impspf.cpp:8:
>>>>>> /usr/include/gnu/stubs.h:9:27: error: gnu/stubs-64.h: No such 
>>>>>> file or
>>>>>> directory
>>>>>> df1b2impspf.cpp: In function ‘double
>>>>>> calculate_importance_sample_shess(const dvector&, const dvector&, 
>>>>>> const
>>>>>> dmatrix&, const dvector&, const dvector&, const dmatrix&,
>>>>>> function_minimizer*)’:
>>>>>> df1b2impspf.cpp:20: warning: unused variable ‘Hessadjoint’
>>>>>> df1b2impspf.cpp:44: warning: unused variable ‘onvar’
>>>>>> df1b2impspf.cpp:49: warning: unused variable ‘j’
>>>>>> make[2]: *** [df1b2impspf.obj] Error 1
>>>>>> make[2]: Leaving directory
>>>>>> `/usr/local/src/admb-10.0Beta/src/df1b2-separable'
>>>>>> make[1]: *** [dist] Error 2
>>>>>> make[1]: Leaving directory `/usr/local/src/admb-10.0Beta/src'
>>>>>> make: *** [all] Error 2
>>>>>> _______________________________________________
>>>>>> Developers mailing list
>>>>>> Developers at admb-project.org <mailto:Developers at admb-project.org> 
>>>>>> <mailto:Developers at admb-project.org>
>>>>>> http://lists.admb-project.org/mailman/listinfo/developers
>>>>>
>>>>> _______________________________________________
>>>>> Developers mailing list
>>>>> Developers at admb-project.org <mailto:Developers at admb-project.org> 
>>>>> <mailto:Developers at admb-project.org>
>>>>> http://lists.admb-project.org/mailman/listinfo/developers
>>>> ------------------------------------------------------------------------ 
>>>>
>>>>
>>>> _______________________________________________
>>>> Developers mailing list
>>>> Developers at admb-project.org <mailto:Developers at admb-project.org>
>>>> http://lists.admb-project.org/mailman/listinfo/developers
>>>
>>



More information about the Developers mailing list