NAMD is a parallel, object-oriented molecular dynamics code designed for high-performance simulation of large biomolecular systems. It is file-compatible with AMBER, CHARMM and X-PLOR.
Installed on: blacklight.
Please read the license agreement.
Improving Performance Using Hyperthreading
Your performance can be improved by using hyperthreading with NAMD. In hyperthreading, two threads are run on each core. We have seen significant improvements in some test cases, and recommend that you always use it.
To use hyperthreading, replace
$PBS_HT_NCPUS in the
mpirun command. This will run two threads on a single core. The number of processess passed to
mpirun is double the number of cores requested in the
#PBS -l ncpus
Bug: Passing -np 32 to mpirun
If the value that you are passing to the
mpirun command with
-np is 32, your job will fail with no indication of what went wrong. There are two ways to pass
-np 32 to mpirun, and they both trigger this bug. They are
- Request 32 cores and do not use hyperthreading. We recommend that you always use hyperthreading. This eliminates this bug and will improve performance.
- Request 16 cores and use hyperthreading. To work around this bug, define the
MPI_MAPPED_STACK_SIZEvariable. You should define
MPI_MAPPED_STACK_SIZEin your job script before the
#PBS -l ncpus=16 . . export MPI_MAPPED_STACK_SIZE=64M ! for the bash shell setenv MPI_MAPPED_STACK_SIZE 64M ! for the C shell . . mpirun -np $PBS_HT_NCPUS...
If the value you are passing to
mpirun -np is not 32, do not set the value of
The executable is named namd2.
To use NAMD:
Currently, NAMD can be run only from the bash shell. We are working to make it available under all shells.
- Prepare a job script containing commands to:
- Set up the module command
- Load the NAMD module. First, check to see the available versions and choose which module to load.
module avail namd module load namdloads the default version.
- Use an MPI command like:
mpirun -np $PBS_HT_NCPUS dplace -s1 namd2 prog.namd > prog.logNote that this example uses hyperthreading, which will run two threads on each core. We recommend that you always do this.
- Submit the job script with a qsub command.