NAMD

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, salk, and warhol.

Please read the license agreement.

Blacklight Version

Improving Performance Using Hyperthreading

Your performance may be improved by using hyperthreading with NAMD, but it is dependent on the specific application. We have seen significant improvements in some test cases. We recommend that you test hyperthreading with your application and determine its effect.

To use hyperthreading, replace $PBS_NCPUS with $PBS_HT_NCPUS in the mpirun command. This will run two threads on a single core.

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. In this case, defining the MPI_MAPPED_STACK_SIZE variable will solve the problem. This is true whether you are passing $PBS_NCPUS or $PBS_HT_NCPUS to -np.

For example:

  • If you request 32 cores with the PBS directive
    $PBS -l ncpus=32
    and use $PBS_NCPUS in the mpirun command
    mpirun -np $PBS_NCPUS ... 
    you should define MPI_MAPPED_STACK_SIZE in your job script before the mpirun command:
    export MPI_MAPPED_STACK_SIZE=64M   ! for the bash shell
    setenv MPI_MAPPED_STACK_SIZE 64M   ! for the C shell
    
  • If you request 16 cores with the PBS directive
    $PBS -l ncpus=16
    and use hyperthreading by using $PBS_HT_NCPUS in the mpirun command
    mpirun -np $PBS_HT_NCPUS ... 
    you should define MPI_MAPPED_STACK_SIZE in your job script before the mpirun command:
    export MPI_MAPPED_STACK_SIZE=64M   ! for the bash shell
    setenv MPI_MAPPED_STACK_SIZE 64M   ! for the C shell
    

Usage

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.

  1. Prepare a job script containing commands to:
    1. Set up the module command
    2. Load the NAMD module. First, check to see the available versions and choose which module to load.
      module avail namd
      module load namd
      loads the default version.
    3. Use an MPI command like:
      mpirun -np $PBS_NCPUS dplace -s1  namd2 prog.namd > prog.log 
      To use hyperthreading, replace $PBS_NCPUS with $PBS_HT_NCPUS. This will run two threads on a single core.
  2. Submit the job script with a qsub command.

See the example job.

Salk versions

Versions 2.6, 2.7b1 and 2.7b2 are installed; the executables are named namd2. To use NAMD:

  1. Prepare a job script containing commands to:
    1. Set up the module command
    2. Load the NAMD module. First, check to see the available versions and choose which module to load.
      module avail namd
      module load namd
      loads the default version.
    3. Use an MPI command like:
      mpirun -np $PBS_PPN dplace -s1  namd2 prog.namd > prog.log 
  2. Submit the job script with a qsub command.

See the example job.

Warhol version

Version 2.7 is installed in directory /usr/local/packages/namd2/NAMD2.7b1/. The executable is named namd2. To use NAMD:

  1. Prepare a job script containing commands to:
    1. Load the appropriate compilers:
      module unload openmpi_gcc
      module load icc
      module load mvapich_intel
      
    2. Execute a NAMD program.
      mpirun /usr/local/packages/namd2/NAMD2.7b1/namd2 
  2. Submit the job script with a qsub command.

See the example job.