[Developers] New script options

Arni Magnusson arnima at hafro.is
Thu Mar 28 10:23:47 PDT 2013

Safe compilation will be the default in all scripts, and that default will 
carry over to ADMB-IDE.

The idea was to introduce a new option -o to explicitly build an optimized 
model. So "admb -o simple" would do exactly what the scripts do today, and 
"admb -s simple" would be equivalent to "admb simple".

I don't have a model that takes long to build, but can someone benchmark 

                       Build time | Executable size | Run time
   admb bigmodel
   admb -s bigmodel
   admb -g bigmodel
   admb -g -s bigmodel

The results will help us decide how the compilation scripts should work. 
For example, we could have safe compilation turn off the -O3 optimization 
- like Ian suggests. In this way, safe compilation would be safe (checking 
array bounds) and also build fast. Sounds like a reasonable default while 
developing a model.

It's tempting to keep the script UI simple and couple together 
functionality (bounds, optimization, libraries, debug) that would be 
sensible to use together. I think this coupling should be based on the 
results from the above benchmark.


On Thu, 28 Mar 2013, Ian Taylor - NOAA Federal wrote:

> Hi Developers,
> I know it's not that helpful for folks like me to make suggestions that 
> they're not skilled enough to implement, but how hard would it be for 
> ADMB to add a -o option that would turn on or off the -O3 or -Ox? And 
> wasn't -s going to become the default at some point, or was the only 
> proposed change the one that Arni to set this as default in the IDE?
> -Ian
> On Thu, 28 Mar 2013, Larry Jacobson wrote:
>> Sorry, my original note summarizing approaches to reducing compile time 
>> for ADMB using the MinGW or Visual C++ 2010 Express compilersin Windows 
>> left out 3 important items.  Unfortunately, one cannot recompile 
>> e-mails.
>> In any case:
>> 1) Optimization is turned off using the MinGW compiler by changing line 
>> line sym=-O3 in adcomp.bat so that it reads sym=-O.
>> 2) Optimization is turned off using the Microsoft compiler by omitting 
>> -Ox from the first call to the compiler.  That is, use:
>>> cl -c /EHsc -DUSE_LAPLACE -DWIN32 %opt% -D__MSVC32__=8 -I. 
>>> -I"%ADMB_HOME%"\include -I"%ADMB_HOME%"\contrib %1.cpp
>> instead of:
>>> cl -c /EHsc -DUSE_LAPLACE -DWIN32 %opt% /Ox -D__MSVC32__=8 -I. 
>>> -I"%ADMB_HOME%"\include -I"%ADMB_HOME%"\contrib %1.cpp
>> 3) The popular IDE for Windows uses the MinGW compilerwith a slightly 
>> different adcomp.bat file that is probably in a directory named 
>> something like C:\admb\admb101-gcc452-win32\**bin. To turn off 
>> optimization in the IDE, change theline sym=-O3 in adcomp.bat so that 
>> it reads sym=-O(same as #1).  See Arni's note belowand an additional 
>> one from John Sibert below Arni's.
>> Cheers!
>>  Hi Larry,

More information about the Developers mailing list