NAMD Wiki: NamdOnAltix
This page is about the old Itanium-based Altix system.
For the new Xeon-based Altix UV see NamdOnAltixUV.
See also NamdOnIA64 and NamdAtNCSA.
Performance issues with the Intel 8.1 and later compilers are described at NamdOnIA64.
Compile Charm++ for SGI Altix
Download the latest development version of Charm++ from Charm++ Automated-Build website: http://charm.cs.uiuc.edu/autobuild/cur. Download the latest nightly build Charm++ source from link "Charm++ source code".
Build charm++ by:
./build charm++ mpi-linux-ia64 mpt
or, if you wish intel compiler:
./build charm++ mpi-linux-ia64 mpt icc
Config NAMD using Linux-ia64-MPT-icc:
./config fftw ... Linux-ia64-MPT-icc
"Array services not available" error with MPT (SGI MPI)
From Edward Chrzanowski:
o Add the following entry to /etc/services for arrayd service and port. The default port number is 5434 and is specified in the arrayd.conf configuration file. sgi-arrayd 5434/tcp # SGI Array Services daemon o If necessary, modify the default authentication configuration. The default authentication is AUTHENTICATION NOREMOTE, which does not allow access from remote hosts. The authentication model is specified in the /usr/lib/array/arrayd.auth configuration file. o The array services will not become active until they are enabled with the chkconfig(1) command: chkconfig --add array chkconfig --level 2345 array on o It is not necessary to reboot the system after installing the array services, to make them active, but if you do not reboot, it will be necessary to restart them manually. To do so, use the following command: /etc/init.d/array start
I tracked down the source of the problem with NAMD performance on NCSA's Altix system. On July 5, the environment variable MPI_DSM_DISTRIBUTE was inadvertently removed from the default environment. Here is a description of what it does from the mpi man page:
MPI_DSM_DISTRIBUTE
Ensures that each MPI process gets a unique CPU and physical memory on the node with which that CPU is associated. Currently, the CPUs are chosen by simply starting at relative CPU 0 and incrementing until all MPI processes have been forked. To choose specific CPUs, use the MPI_DSM_CPULIST environment variable. This feature is most useful if running on a dedicated system or running within a cpuset. Some batch schedulers including LSF 5.1 will cause MPI_DSM_DISTRIBUTE to be set automatically when using dynamic cpusets.
It was added again yesterday afternoon. To ensure the environment variable is always set, you can add the following line to your .cshrc file:
setenv MPI_DSM_DISTRIBUTE
We apologize for the problem.
Dave McWilliams, NCSA Consulting Services