-
Notifications
You must be signed in to change notification settings - Fork 1
Using NAMD with Reconverse
NAMD (https://www.ks.uiuc.edu/Research/namd/) is a molecular dynamics code, and one of the most widely used applications written in Charm++. To use NAMD on Reconverse, complete the following steps:
-
Download NAMD, either through the NAMD website (https://www.ks.uiuc.edu/Development/Download/download.cgi?PackageName=NAMD) or by requesting access to the repository hosted on GitLab (https://www.ks.uiuc.edu/Research/namd/gitlabrequest.html) and cloning the repo. Do not use a precompiled binary of NAMD, since you will need to compile NAMD yourself in order to use reconverse.
-
After downloading NAMD, run
cd namdto go to the top level of the NAMD repo, and git clone Charm++ in this folder. Then, follow the instructions at this page (https://github.com/charmplusplus/reconverse/wiki/How-to-run-Charm-with-reconverse) to install Charm++ on top of Reconverse. -
Use the
./configscript in NAMD to create a build folder. For example, in order to install on a Linux machine with x86_64 CPUs, using the g++ compiler, run the following:
./config Linux-x86_64-g++ --tcl-prefix <path_to_tcl> --fftw-prefix <path_to_fftw>
Note that by default, NAMD requires TCL and FFTW as dependencies, so you are required to install those libraries (if not already existing) and provide paths to those installations to the config script. -
cd into the build folder (for example,
cd Linux-x86_64-g++) and runmake -j<N>, whereNis the number of threads to build in parallel. -
The result of the build is an executable called
namd3. NAMD requires the user to provide a NAMD configuration file as input. You may run a basic test of namd3 by using thealaninexample provided in the src folder:
./namd3 <path_to_namd>/src/alanin +pe <num_PEs>
To run with more than one process, you may use lcrun, which will exist after Charm++ is installed (in <path_to_namd>/charm/multicore-<linux or darwin>-<x86_64 or arm8>/_deps/lci-src/lcrun), or you may use another launcher like srun if available.