[daip] 32 bit vs. 64 bit

Eric Greisen egreisen at nrao.edu
Tue Dec 13 15:43:11 EST 2005


Carl Gross writes:
 > Hello.  I am a radio astronomer at the Naval Research Lab and I have a
 > computing question.  Our group regularly uses AIPS to reduce VLA data.  We
 > have recently purchased two new workstations from Penguin Computing which
 > use the AMD Opteron processor.  The Opteron is a processor which can run in
 > either 32-bit or 64-bit mode.  I understand that there may be small
 > reliability issues with running AIPS in 64-bit mode.  Penguin Computing tech
 > support tells me that the decision to run in 32-bit or 64-bit mode is made
 > by each application on the computer, and not by a BIOS or other system
 > setting.  My question is:  Does AIPS have some control over whether it runs
 > in 32-bit mode or 64-bit mode?  If so, what are the control parameters and
 > how do I use them?  If not, do you know of another method which might
 > instruct AIPS to run in 32-bit mode?  We are running Redhat Enterprise
 > version 4 on each machine.  I briefly nosed around the AIPS website for such
 > information but could not find any.  If there is any documentation that I
 > may have missed regarding this issue, please direct me there.

You have multiple choices.  If you install aips with a binary
installation you will get load modules compiled by the Intel compiler
which actually outperform those done on our AMD with the gnu 3.4.4
compiler by a modest percentage.  We have tried the compiler option
available with the gnu compilers to order them to make 32-bit load
modules rather than 64-bit.  The resulting load modules ran about 20%
slower if I remember the number correctly.  The only real difference
in the 64-bit is the size of an address pointer and the addresses
returned by malloc when allocating memory.  Not only are they 64-bits
long but they are inclined to use the full range of virtual address
space (48 bits I think) which causes one place where our dynamic
memory will not be full functional (all others are okay).  The data
and things like INTEGER in Fortran and int in C are still 32 bits long
unless you order the compilers to do differently which AIPS certainly
does not require.

We have solved the dynamic memory issues except fro FRING which tried
to do dynamic memory with the "pseudo-AP" code.  In that case, we
would have to re-code 1000's of variables to be LONGINT (translated to
INTEGER*8 on a real 64-bit addressing box or INTEGER on a 32-bit one)
and we have not done that work yet.

So you can use either binary or text and so far as I know all of aips
works fine on our AMD64.

Eric Greisen




More information about the Daip mailing list