Building NAMD

This file documents the use of the x86 Open64 Compiler Suite.
© 2009 Advanced Micro Devices, Inc.


NAMD is a parallel molecular dynamics code designed for high-performance simulation of large biomolecular systems. Based on Charm++ parallel objects, NAMD scales to hundreds of processors on high-end parallel platforms and tens of processors on commodity clusters using gigabit ethernet. NAMD is file-compatible with AMBER, Charm, and X-PLOR and is distributed free of charge with source code. To build NAMD, you will need the source for NAMD, along with the Charm++ software and the FFTW software. The steps for configuring and building each of these codes, and any known limitations, are described in the sections below.

Download: NAMD (version 2.5).

Download: FFTW (version 2.1.5).

Download: Charm++ (version 5.9)

Building NAMD

In brief, the following steps are sufficient to build Namd and its dependent applications from the command line:

Part 1, FFTW: see building FFTW with a single change, use FFTW version(2.1.5)

Part 2, Charm++: see building Charm++

Part 3, NAMD: Now build the NAMD code.

Copy the file Linux-amd64-MPI-open64.arch into the arch subdirectory and then build NAMD.

Note: Linux-amd64-MPI-open64.arch assumes that Charm++ was installed in $(HOME)/charm-5.9. If this is not the case, you need to modify CHARM_LOC in this file. The file Make.charm also needs to point to the directory where Charm++ is installed.

There is also an implicit assumption in the file arch/Linux-amd64.fftw that assumes FFTW was built in $(HOME)/fftw. If this is not true, you need to modify that file as well.

Now we continue as follows on command line:

     >cd ../namd_2.6

Then download the Linux-amd64-MPI-open64.arch file and copy to the arch directory in namd_2.6. Also the Linux-amd64.fftw file should be copied to the same location,

     >./config fftw Linux-amd64-MPI-open64
     >cd Linux-amd64-MPI-open64

Known limitations

There is a bug in opencc such that if the serial C code in Charm++ is compiled with -O2 or higher, it will result in a hang during execution. The workaround is to use -O1 for CMK_SEQ_CC. This workaround is incorporated in the distributed, and seems to have no performance impact.