[daip] Moving user files

Eric Greisen egreisen at nrao.edu
Tue Aug 30 13:06:06 EDT 2005


Roderick Johnstone writes:

 > The Intel compiler is well known for having tons of high-level 
 > optimizations switched on by default. Thats one reason its produces code 
 > that runs so fast. At one time it used to miscompile a lot of stuff, but 
 > that was version 7.x.
 > 
 > Ideally, what you should do is send the compiler switches to make fat 
 > binaries. These have two or three sets of machine code and take a 
 > run-time decision which is the best to use. That way you get to have 
 > code that runs full speed on the P4 using all its whizzy instructions 
 > but also has generic code that will run on anything.
 > 
 > This is documented in:
 > http://www.intel.com/cd/software/products/asmo-na/eng/219281.htm
 > http://www.intel.com/cd/software/products/asmo-na/eng/222300.htm
 > 
 > Using a compiler switch something like -axNP, would be good (exact 
 > options depend on which version of the compiler you have). This makes a 
 > binary with generic x86 code (ax) and code optimised for P4 sse, sse2 
 > (N) and sse3 (P). There are several possibilities for N and P, see first 
 > html reference above. K would optimise for Athlon XP, but you can only 
 > have 2 letters so someone has to make a decision which things to 
 > optimise for!
 > 
 > So, could I request please either:
 > 
 > 1) You consider rebuilding aips with something like -axNP or -axKN

    I will look at this but it may take time.  We tried a bunch of
other stuff that did not work so it will take serious testing.

We tell the compiler (version 9.0)
   COMPSWIT="-c -xW -w90 -w95 -cm -ip -save -align all"
   OPT0='-O0'; OPT1='-O3'; OPT2='-O3';
and the linker
   LINK="-lsvml -Vaxlib -L/usr/local/lib -O3 -static-libcxa -save -align all"
and the C compiler
   OPT0="-O3 -xW -ip"
   COMP="-c $OPT0 -I$INC -D_FILE_OFFSET_BITS=64 -DHAVE_LINUX_GLIBC"


 > 
 > 2) You send me instructions on turning my binary aips installation into 
 > a source code compiled one. Do I need to delete my 31DEC05 directory and 
 > download the source afresh, and build or can I somehow coax the system 
 > into rebuilding my binary intallation, given that I probably have to 
 > tell it how to use a custom compiler? The default version we have is gcc 
 > 3.4.3.

cd $AIPS_ROOT
source LOGIN.CSH
$CDTST

This is pretty easy - cd to your $SYSLOCAL and edit CCOPTS.SH,
LDOPTS.SH, and FDEFAULT.SH.  They select the compiler - choose 3.4.3
which should be fine (3.4.2 had problems we found that they fixed in
3.4.3).  In $SYSLOCAL, rename RSYNC.ME which is the flag that tells
the MNJ to use rsync.

cd $TST/$ARCH/INSTALL
rm *.LIS *.LOG
rm $LIBR/*/SUBLIB
INSTEP2
INSTEP4

and you are done in, depending on the machine, 1-4 hours.  This is
probably better than running generic code from Intel.  My experience
was that it ran no faster than the GNU code.

Eric Greisen




More information about the Daip mailing list