|
|
Joined: Jan 2005
Posts: 86
Forum Member
|
OP
Forum Member
Joined: Jan 2005
Posts: 86 |
Dear Charmm users, I have been trying to compile charmm version c29b2 on a linux cluster 64 bit 2.4 GHZ Oeptron AMD machine. The steps that I am following are:
1. Making the changes in c29b2/source/socket.c by introducing
#include lt errno.h gt
2. ./install.com gnu large M MPICH
gnu.log gives the error that -malign-double has problems with 64-bit machine.
3. I looked into the forum for a similar type of error and hence deleted -malign-double from the Makefile_gnu and ran the install command again.
4. This time I am getting the following error:
/usr/bin/ld: cannot find -lfmpich collect2: ld returned 1 exit status
and the follwoing warning messages also occur in the gnu.log mpicc -Dnographics -O -Dgnu -c /users/bsbe/phd/priyaps/charmm/c29b2/source/machdep/socket.c /users/bsbe/phd/priyaps/charmm/c29b2/source/machdep/socket.c: In function `initsock_': /users/bsbe/phd/priyaps/charmm/c29b2/source/machdep/socket.c:79: warning: passing arg 2 of `strcpy' makes pointer from integer without a cast /users/bsbe/phd/priyaps/charmm/c29b2/source/machdep/socket.c:98: warning: passing arg 2 of `bind' from incompatible pointer type /users/bsbe/phd/priyaps/charmm/c29b2/source/machdep/socket.c:102: warning: passing arg 2 of `getsockname' from incompatible pointer type /users/bsbe/phd/priyaps/charmm/c29b2/source/machdep/socket.c: In function `fconnect_': /users/bsbe/phd/priyaps/charmm/c29b2/source/machdep/socket.c:175: warning: passing arg 2 of `connect' from incompatible pointer type /users/bsbe/phd/priyaps/charmm/c29b2/source/machdep/socket.c:202: warning: passing arg 2 of `accept' from incompatible pointer type ar rucv /users/bsbe/phd/priyaps/charmm/c29b2/lib/gnu/machdep.a socket.o a - socket.o rm socket.o
Also, I have checked the mpi directory in the build/gnu and .h files as well as libmpi.a file is there and MSGLIB defined in the Makefile is as follows:
MSGLIB = -Lmpi -lfmpich -lmpich
I have searched the forum for the similar kind of error, if any and I found one too with the following subject "/usr/bin/ld: cannot find -lmpi for c30b1 install " but that does not help me too!
I would be really grateful for any suggestions on this.
Eagerly waiting for the charmmers reply, Priyanka.
|
|
|
|
Joined: Sep 2003
Posts: 8,659 Likes: 26
Forum Member
|
Forum Member
Joined: Sep 2003
Posts: 8,659 Likes: 26 |
I suggest either reverting to a 32-bit OS, or else getting a more recent CHARMM version. That combination of c29b2, AMD64, and g77 can be problematic.
Rick Venable computational chemist
|
|
|
|
Joined: Jan 2005
Posts: 86
Forum Member
|
OP
Forum Member
Joined: Jan 2005
Posts: 86 |
Dear Prof Rick, Thank you so much for your reply. I apologize for troubling you again but could you please guide me a little bit as to how could I solve this problem? Right now I only have access to AMD opetron linux cluster. Can I try changing the compiler if g77 is problematic?
Regards, Priyanka.
|
|
|
|
Joined: Feb 2004
Posts: 147
Forum Member
|
Forum Member
Joined: Feb 2004
Posts: 147 |
It's not compiler only, there are code changes as well. You'd have to make significant changes to c29 to add support for I8 as in the later versions. And you'd need the source for the later version as a basis anyway...
A 64bit system can usually execute 32bit code as well, if the 32bit system libraries are installed. So you could: 1. ask the sysadmin if the 32bit libraries are installed and what kind of Linux distribution is installed 2. try to find a 32bit system with the same Linux distribution or install one yourself 3. install on the 32bit system a MPI library in its own installation directory (don't use MPI packages that might come with the Linux distribution) 4. compile CHARMM on the 32bit system 5. copy the MPI installation directory to the same location on the 64bit system and copy the CHARMM executable as well (the location of the CHARMM executable doesn't matter) 6. run on the 64bit system the CHARMM executable using the startup mechanism from the MPI installation directory that you copied; this might invove setting PATH and/or LD_LIBRARY_PATH to point to this directory
The above recipe fails if the Opteron cluster has some hardware features that are not easily "reproducible" on the 32bit system, like GM libraries for use of Myrinet.
|
|
|
|
Joined: Jan 2005
Posts: 86
Forum Member
|
OP
Forum Member
Joined: Jan 2005
Posts: 86 |
Thank you so much for your prompt reply.
Actually, it appears that I have compiled Charmm successfully on the AMD Oeptron 64-bit machine.(by making modifications in the Makefile_gnu only very similar to the one which i have stated in my very first post) Why I am not sure of this is because, I get a warning message in the gnu.log at the end which says: make:warning: clock skew detected: your build may not be complete.
So, I am testing some jobs on the cluster so that i can compare the wait and comm time.Also, the speed has been increased tremendously (compared with the previous runs on other smaller machines) but this is true for those input files which uses spherical cutoffs. With the same cutoff if i submit the PME calculation then i get the following error:
VEHEAP> Expanding heap size by 163840 words. p0_2392: p4_error: interrupt SIGSEGV: 11
Following the post on the forum with subject "Compilation error after increasing heap size" I have located the file heap.fcm which has the HEAPDM defined as 10240000. But i could not exactly follow what it means my -mcmodel. I am unable to locate this flag.
Kindly suggest me something on this. Thanks in advance, Eagerly waiting for you reply, Priyanka.
Last edited by mzzt; 09/30/05 01:40 PM.
|
|
|
|
Joined: Jan 2005
Posts: 86
Forum Member
|
OP
Forum Member
Joined: Jan 2005
Posts: 86 |
Dear charmmers, When I am trying to run PME on the AMD optron 64-bit there is some problem related to the heap storage. Earlier it gave me the error which is explained in my previous post in this thread only, so i made the following change in the heap.fcm. HEAPDM=10240000 to HEAPDM=20480000 ( I am taking into consideration the 2**N rule and hence taking 1024*2 = 2048) I am getting the following error. p2_21881: p4_error: : 12 ***** LEVEL -5 WARNING FROM ***** ***** non 2**N PE count in transpose ****************************************** BOMLEV ( 0) IS REACHED - TERMINATING. WRNLEV IS -5
ABNORMAL TERMINATION MAXIMUM STACK SPACE USED IS 108024 STACK CURRENTLY IN USE IS 0 MOST SEVERE WARNING WAS AT LEVEL -5
$$$$$ JOB ACCOUNTING INFORMATION $$$$$ ELAPSED TIME: 1.02 SECONDS CPU TIME: 0.00 SECONDS p3_25832: p4_error: : 12
***** LEVEL -5 WARNING FROM ***** ***** non 2**N PE count in transpose ****************************************** BOMLEV ( 0) IS REACHED - TERMINATING. WRNLEV IS -5
ABNORMAL TERMINATION MAXIMUM STACK SPACE USED IS 108024 STACK CURRENTLY IN USE IS 0 MOST SEVERE WARNING WAS AT LEVEL -5
$$$$$ JOB ACCOUNTING INFORMATION $$$$$ ELAPSED TIME: 1.03 SECONDS CPU TIME: 0.00 SECONDS p5_27335: p4_error: : 12
Also I am getting the following warning messages in the gnu.log:
pif77 -O3 -ffast-math -funroll-loops -fugly-complex -fno-backslash -fno-globals -Wno-globals -DGNU -c space.f space.f: In subroutine `veheap': space.f:304: warning: locheap=loc(heap) ^ Explicit type declaration for intrinsic `LOC' disagrees with invocation at (^) space.f:336: warning: B8=(B8-LOC(HEAP))/4+1 ^ Explicit type declaration for intrinsic `LOC' disagrees with invocation at (^)
Probably I have to somehow stop calling the source/machdep/space.src VEHEAP subroutine. How can I avoid that subroutine? Am I correct in saying that I have to stop calling the above-mentioned subroutine? Kindly suggest me something. It is running fine for the spherical cutoffs and PME with very small values.
Eagerly waiting for the reply, Regards, Priyanka.
|
|
|
|
Joined: Sep 2003
Posts: 8,659 Likes: 26
Forum Member
|
Forum Member
Joined: Sep 2003
Posts: 8,659 Likes: 26 |
Upgrade your CHARMM version.
|
|
|
|
|
|