CHARMM at SCS
Description
CHARMM(Chemistry at HARvard Macromolecular Mechanics) is a program for macromolecular simulations, including energy minimization, molecular dynamics and Monte Carlo simulations.
The primary concern of CHARMM has been to create a research instrument for theoretical studies of the properties and biological function of molecules. Consequently, emphasis has been placed on the versatility of the program and it is being continually modified as work proceeds into new areas.
How to install CHARMM:
CHARMM Release Package
The CHARMM release package for CHARMM developers and user sites includes
(1) complete source and include files,
(2) updated documentation files,
(3) some supporting data files,
(4) testcases,
(5) the PREFX preprocessor and tools needed to set up CHARMM
development environments and
(6) standard topology and parameter files.
For more information see the Charmm site.
General Use
The user of CHARMM controls its execution by executing commands sequentially from a command file or interactivly.
The general syntax for using the program is:
charmm < filename.inp > filename.out
- CHARMM
- The actual name of the program (or script which runs the program)
on the computer system being used; the name may not be the same on all
systems.
- filename.inp
- A text file containing CHARMM input commands, using the command syntax described in usage.doc. The actual filename is up to the user.
- filename.out
- The log file for the CHARMM run, containing echoed commands, and
various amounts of command output. The output print level may be
increased or decreased in general, and procedures such as minimization
and dynamics have printout frequency specifications.
Cluster Specific Use
Anfinsen
Running CHARMM With LAMMPI
Running Lam
- Before you can run CHARMM, you should learn how to use Lam, which is in /user/local/lam/7.1.2/
- If you are using Lam you need to first setup your environment. You need
to make sure that Lam is using ssh rather than rsh. You will need to
setup your ssh environment to allow you to login to anfinsen nodes
without a password. Once, you set this up, you can run lamboot to
start daemons on multiple nodes to submit your job.
- Below is step-by-step command list that you will need to run at a tcsh prompt:
Instead of anfinsen00 any anfinsen node may be used.
anfinsen00# ssh-keygen -t rsa
* it will prompt you for a password... you dont have to enter one
anfinsen00# ssh-keygen -t dsa
* it will prompt you for a password... you dont have to enter one
anfinsen00# cat ~/.ssh/id_dsa.pub ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys2
* now log into all phoenix nodes and type 'yes' to save their
fingerprints to ~/.ssh/known_hosts
anfinsen00# setenv LAMRSH 'ssh -x'
* You can add this to your shell config files
anfinsen00# setenv LAMHOME /usr
* use lam-7.1.2
anfinsen00# lamboot <options> <hostfile>
* I would specify a host file listing nodes that you want to run lam
daemons on. Be sure to include the hostname of the machine you are on.
* I do have a default list setup -- lamboot with no arguments should
run. However, if a node is down, lamboot won't work. So I would have
a list of currently up nodes. An easy way to do this, is to cp
/usr/local/lam/7.1.2/etc/lam/lam-bhost.def to a file that you can edit and run lamboot
against it.
* Take note of downed machines and remove them from your list. BTW,
-x makes lam run in fault tolerant mode... which may interest you
* see man lamboot
anfinsen00# mpirun -np 4 ./charmm <filename.inp>filename.out
* Use lam's mpirun and run your command.
anfinsen00# lamhalt
* run lamhalt when you are done.
Running CHARMM
<dd>lamboot -v nodefile</dd>
- The nodefile looks like that:
<dd>phoenix000.scs.fsu.edu cpu=1 </dd>
<dd>phoenix001.scs.fsu.edu cpu=1</dd>
<dd>phoenix002.scs.fsu.edu cpu=1</dd>
<dd>phoenix003.scs.fsu.edu cpu=1</dd>
<dd>mpirun -np n charmm < filename.inp > filename.out</dd>
Phoenix
Running CHARMM With MPICH2
Running MPICH2
- Because CHARMM can not support the Lam Mpi's version in phoenix, so weu use MPICH2.
setup mpich2
in your .cshrc file you should add the following lines:
setenv MPICHHOME /usr/local/mpich2/1.0.4p1/
set path = ($MPICHHOME/bin $path )
start mpich2 with the command
phoenix001# mpd &
Running CHARMM
phoenix001# cd your_Charmm_Inputfile_Dir
phoenix001# mpiexec -n 4 ./charmm <filename.inp>filename.out
* Intead of MPICH1's mpirun, you should use mpiexec and run your command.
-- YusongLiu - 30 Nov 2006