Difference between revisions of "NAMD"

From Tau Wiki
Jump to: navigation, search
(Background)
 
(6 intermediate revisions by the same user not shown)
Line 8: Line 8:
 
!Code
 
!Code
 
!Version
 
!Version
 +
!Machine
 
!Date
 
!Date
 
|-
 
|-
Line 13: Line 14:
 
|[http://www.ks.uiuc.edu/Development/Download/download.cgi?PackageName=NAMD Download Page]
 
|[http://www.ks.uiuc.edu/Development/Download/download.cgi?PackageName=NAMD Download Page]
 
|2.6
 
|2.6
 +
|Linux x86_64
 
|February 2009
 
|February 2009
 
|}
 
|}
Line 26: Line 28:
 
%> ./build charm++ mpi-linux-x86_64 mpicxx ifort -O3
 
%> ./build charm++ mpi-linux-x86_64 mpicxx ifort -O3
 
...
 
...
%> ./build Tau mpi-linux-x86_64 mpicxx ifort --tau-makefile=<tau_dir>/x86_64/lib/Makefile.tau-mpi -O3
+
%> ./build Tau mpi-linux-x86_64 mpicxx ifort --tau-makefile=<tau_dir>/x86_64/lib/Makefile.tau-icpc-mpi --no-build-shared -O3  
 
</pre>
 
</pre>
 
As always the TAU Makefile you specify determines what profiling/tracing options are set. Wait for charm to finish building then test the configuration by:
 
As always the TAU Makefile you specify determines what profiling/tracing options are set. Wait for charm to finish building then test the configuration by:
Line 41: Line 43:
 
<pre>
 
<pre>
 
%> cd NAMD_2.6_Source
 
%> cd NAMD_2.6_Source
%> ./config Linux-x86_64-MPI-icc
+
%> ./config Linux-x86_64-icc --charm-base $CHARMROOT --with-cuda --cuda-prefix $CUDAROOT --with-fftw --with-fftw3 --fftw-prefix $FFTW
 
</pre>
 
</pre>
  
Now set NAMD to use TAU, edit '''arch/Linux-x86_64-MPI-icc.arch''' to be:
+
Now set NAMD to use TAU, edit '''arch/Linux-x86_64-icc.arch''' adding this line:
 
<pre>
 
<pre>
NAMD_ARCH = Linux-x86_64
+
CHARMOPTS = -tracemode Tau
 +
</pre>
  
CHARMARCH = mpi-linux-x86_64-ifort-mpicxx
+
Then build NAMD
 +
<pre>
 +
%> cd Linux-x86_64-icc
 +
%> make
 +
</pre>
  
CHARMOPTS = -memory os -tracemode Tau -no-trace-mpi
+
== NAMD with CUDA ==
  
FLOATOPTS = -ip -fno-rtti -xW
+
To profile NAMD's CUDA kernel I few modifications need to be made to the build steps:
  
CXX = $(CHARMC) -DMEMUSAGE_USE_SBRK
+
in charm, do:
CXXLINK = -i-static -O3 $(FLOATOPTS)
 
CXXNOALIASOPTS = -O3 -fno-alias $(FLOATOPTS)
 
  
CC = $(CHARMC)
+
%> ./build Tau mpi-linux-x86_64 mpicxx ifort --tau-makefile=<tau_dir>/x86_64/lib/Makefile.tau-icpc-mpi-cupti --no-build-shared -O3
</pre>
+
(change TAU makefile)
 +
 
 +
rebuild NAMD.
 +
 
 +
and run NAMD by doing:
 +
 
 +
mpirun -np 3 tau_exec -T icpc,mpi,cupti -cupti ./namd2 src/apoa1/apoa1.namd
  
Then build NAMD
+
(have the '-T' options match the TAU makefile)
<pre>
 
%> cd Linux-x86_64-MPI-icc
 
%> make
 
</pre>
 
  
 
== Running NAMD ==
 
== Running NAMD ==

Latest revision as of 19:20, 10 May 2012


Background

Link Code Version Machine Date
NAMD homepage Download Page 2.6 Linux x86_64 February 2009

Background

Currently this guide is for building NAMD and charm++ from source on x86 64-bit architecture. One would follow similar step on other machines but some of the file names would be changed.

Building Charm++

Automatic instrumentation of charm applications using TAU is available in the unreleased version of Charm++ which you can download here: http://charm.cs.uiuc.edu/download/ (click on the nightly CVS source archive). To compile Charm++:

%> cd charm
%> ./build charm++ mpi-linux-x86_64 mpicxx ifort -O3
...
%> ./build Tau mpi-linux-x86_64 mpicxx ifort --tau-makefile=<tau_dir>/x86_64/lib/Makefile.tau-icpc-mpi --no-build-shared -O3 

As always the TAU Makefile you specify determines what profiling/tracing options are set. Wait for charm to finish building then test the configuration by:

%> cd mpi-linux-x86_64-ifort-mpicx/tests/charm++/simplearrayhello
%> make OPTS='-tracemode Tau -no-trace-mpi'
%> ./charmrun ./hello +p4

Verify that this program runs without any errors and that you get a profile file for each processor.

Building NAMD

Begin in NAMD's home directory:

%> cd NAMD_2.6_Source
%> ./config Linux-x86_64-icc --charm-base $CHARMROOT --with-cuda --cuda-prefix $CUDAROOT --with-fftw --with-fftw3 --fftw-prefix $FFTW

Now set NAMD to use TAU, edit arch/Linux-x86_64-icc.arch adding this line:

CHARMOPTS = -tracemode Tau

Then build NAMD

%> cd Linux-x86_64-icc
%> make

NAMD with CUDA

To profile NAMD's CUDA kernel I few modifications need to be made to the build steps:

in charm, do:

%> ./build Tau mpi-linux-x86_64 mpicxx ifort --tau-makefile=<tau_dir>/x86_64/lib/Makefile.tau-icpc-mpi-cupti --no-build-shared -O3

(change TAU makefile)

rebuild NAMD.

and run NAMD by doing:

mpirun -np 3 tau_exec -T icpc,mpi,cupti -cupti ./namd2 src/apoa1/apoa1.namd

(have the '-T' options match the TAU makefile)

Running NAMD

If everything works properly you should now have a namd2 executable. Test by running:

%> ./charmrun ./namd2 +p4 src/alanin

Performance Data

Mean profile of a run with the performance benchmark ALANIN:

NAMD-mean-profile.png

Histogram of the enqueueWorkA routine across 32 processors:

NAMD-work-profile.png

A comparison of Timestep per second between two different MPI implementations on Ranger:

NAMD-mpi-comparison.png

File:Namd-apoa1.ppk