AMBER Archive (2005)

Subject: Re: AMBER: Compile question??

From: Robert Duke (rduke_at_email.unc.edu)
Date: Mon Jun 06 2005 - 09:17:48 CDT


Okay, this config.h looks fine to me; you may just have a really old
compiler that does not do f90 correctly, or that requires a different
configure script than the one set up here (ie., it may require explicit
reference to the f90 library containing cpu_time()). I booted an ancient
sgi box I have that I started the original pmemd development on; it has
mipspro f90 version 7.3 on it. I have not seen any earlier versions. The
compiler on my old machine dates back to Dec 28, 2001. This is ancient in
terms of software, and you have something 3 minor releases before that. I
can't support ancient compilers. What you can do is: 1) upgrade to a more
recent release of the mipspro compilers, or 2) you COULD use a f77 timing
function like etime() (see the man page). You will have to hack the
second() routine in pmemd_lib.f90, and may have to link to libU77.a, or
heaven only knows what. I don't recommend the second alternative, but it is
a way to avoid having to upgrade the compiler. Of course, you may hit other
problems with the old compiler, and it undoubtedly produces slower code than
the newer releases. One could theoretically also just stub out the call to
cpu_time() in second() and return 0.0, but there is some potential for
divide-by-zero problems down the line when cpu time profiling is done (ie.,
I don't recommend that either). Good luck. Hope you can upgrade. Oh, also
I think pmemd 3.00 and 3.01 would work (available at amber web site) because
they use old time calls. However, they produce results compatible with
amber 6 and 7, and because the step integrator has changed in 8, the results
are a little different.
Regards - Bob

----- Original Message -----
From: "Anthony Cruz" <acb15885_at_uprm.edu>
To: <amber_at_scripps.edu>
Sent: Monday, June 06, 2005 9:24 AM
Subject: Re: AMBER: Compile question??

>I used configure sgi_mips f90 mpi and this is my config.h.
> -------------------- config.h -------------------------------
> #!/bin/csh -f
> setenv PREPROCFLAGS "-DMPI -DDIRFRC_VECT_OPT"
> setenv CPP /lib/cpp
>
> # SGI specific ``code'' to recognize the type of machine and its
> environment
> set cpuarch = ` hinv -t cpu | awk ' { print $3 } ' | head -1 `
>
> # Do we have the FFT libraries in libcomplib.sgimath.a?
> if ( -e /usr/lib/libcomplib.sgimath.a | \
> -e /usr/lib32/mips4/libcomplib.sgimath.a | \
> -e /usr/lib32/mips4/libcomplib.sgimath.so | \
> -e /usr/lib64/mips4/libcomplib.sgimath.a ) then
> setenv PREPROCFLAGS "$PREPROCFLAGS -DSGIFFT"
> set sgimathlib = "-lcomplib.sgimath "
> endif
>
> if ( $cpuarch == R8000) then
> set mipsflag = "-mips4 -n32 -r8000 "
> set nflags = (-WK,-dr=AKC -OPT:cis=off:roundoff=3:IEEE_arithmetic=3
> -SWP:strict_ivdep=OFF -TENV:X=3 )
> else
> if ($cpuarch == R10000) then
> set mipsflag = -r10000
> else if ($cpuarch == R12000) then
> set mipsflag = -r10000
> else if ($cpuarch == R14000) then
> set mipsflag = -r14000
> else if ($cpuarch == R16000) then
> set mipsflag = -r16000
> else
> echo "Error - unsupported SGI CPU type $cpuarch!"
> exit(1)
> endif
> set mipsflag = "$mipsflag -mips4 -n32"
> set nflags = ( -OPT:roundoff=3:IEEE_arithmetic=3:fast_bit_intrinsics=ON )
> endif
>
> setenv CC "cc $mipsflag"
> setenv CFLAGS "-O3 $nflags "
>
> setenv OPT_LO "f90 -nocpp $mipsflag -c -O1 -old_rl $nflags "
> setenv OPT_MED "f90 -nocpp $mipsflag -c -O3 -old_rl $nflags "
> setenv OPT_HI "f90 -nocpp $mipsflag -c -O3 -old_rl $nflags "
>
> setenv LOAD "f90 $mipsflag "
> setenv LOADLIB " $sgimathlib -lfastm -lmpi"
>
> Best wishes,
> Anthony
>
> On Monday 06 June 2005 8:38 am, Robert Duke wrote:
>> This is known to work for version 7.4.3, and I have no reason to suspect
>> difficulties with earlier versions (I am basically sure that we have
>> built
>> with earlier versions, but as the compilers on various platforms have
>> been
>> upgraded over the last year or two, I am not sure how far back in the
>> mips
>> f90 compiler line we go). The call you are not linking to is an f90
>> intrinsic, cpu_time(). I suspect you did not do the pmemd configure
>> correctly and are invoking some other compiler or the fortran compiler in
>> another mode (f77) but of course don't know. What does your config.h in
>> the pmemd directory look like? It should have been built there using
>> './configure sgi_mips f90 mpi'. Could you possibly have a problem with
>> the
>> f90 installation (missing libraries for the intrinsics, or stuff in the
>> wrong place)?
>> Regards - Bob Duke
>>
>> ----- Original Message -----
>> From: "Anthony Cruz" <acb15885_at_uprm.edu>
>> To: <amber_at_scripps.edu>
>> Sent: Monday, June 06, 2005 7:59 AM
>> Subject: AMBER: Compile question??
>>
>> > Can pmemd be compiled with MipsPro 7.2.1 to run in parallel? I am
>> > having
>> > problems compiling the parallel version of pmemd. It gives the
>> > following
>> > error:
>> > ld32: ERROR 33: Unresolved text symbol "cpu_time_" -- 1st referenced by
>> > pmemd_lib.o.
>> > Use linker option -v to see when and which objects, archives and
>> > dsos
>> > are loaded.
>> > ld32: INFO 152: Output file removed because of error.
>> > *** Error code 1 (bu21)
>> > *** Error code 1 (bu21)
>> >
>> > --
>> > Best wishes,
>> > Anthony
>> > -----------------------------------------------------------------------
>> > The AMBER Mail Reflector
>> > To post, send mail to amber_at_scripps.edu
>> > To unsubscribe, send "unsubscribe amber" to majordomo_at_scripps.edu
>
> -----------------------------------------------------------------------
> The AMBER Mail Reflector
> To post, send mail to amber_at_scripps.edu
> To unsubscribe, send "unsubscribe amber" to majordomo_at_scripps.edu
>

-----------------------------------------------------------------------
The AMBER Mail Reflector
To post, send mail to amber_at_scripps.edu
To unsubscribe, send "unsubscribe amber" to majordomo_at_scripps.edu