<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.define-technology.com/mediawiki-1.35.0/index.php?action=history&amp;feed=atom&amp;title=Benchmarking%3A_Gromacs</id>
	<title>Benchmarking: Gromacs - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.define-technology.com/mediawiki-1.35.0/index.php?action=history&amp;feed=atom&amp;title=Benchmarking%3A_Gromacs"/>
	<link rel="alternate" type="text/html" href="http://wiki.define-technology.com/mediawiki-1.35.0/index.php?title=Benchmarking:_Gromacs&amp;action=history"/>
	<updated>2026-05-05T00:09:55Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.0</generator>
	<entry>
		<id>http://wiki.define-technology.com/mediawiki-1.35.0/index.php?title=Benchmarking:_Gromacs&amp;diff=1129&amp;oldid=prev</id>
		<title>David: Created page with &quot;Prerequisites  CUDA &gt;=3.0  CMake 2.6  Python 2.7   Built on CentOS 5.7 with GCC 4.1.2 20080704. For MPI mpi/mvapich2-interconnects-gnu was used.  Notes adapted from http://www...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.define-technology.com/mediawiki-1.35.0/index.php?title=Benchmarking:_Gromacs&amp;diff=1129&amp;oldid=prev"/>
		<updated>2012-10-12T15:25:19Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Prerequisites  CUDA &amp;gt;=3.0  CMake 2.6  Python 2.7   Built on CentOS 5.7 with GCC 4.1.2 20080704. For MPI mpi/mvapich2-interconnects-gnu was used.  Notes adapted from http://www...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Prerequisites&lt;br /&gt;
&lt;br /&gt;
CUDA &amp;gt;=3.0&lt;br /&gt;
&lt;br /&gt;
CMake 2.6&lt;br /&gt;
&lt;br /&gt;
Python 2.7 &lt;br /&gt;
&lt;br /&gt;
Built on CentOS 5.7 with GCC 4.1.2 20080704. For MPI mpi/mvapich2-interconnects-gnu was used.&lt;br /&gt;
&lt;br /&gt;
Notes adapted from http://www.gromacs.org/Downloads/Installation_Instructions/GPUs &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Installing pre-requisites ====&lt;br /&gt;
&lt;br /&gt;
CentOS 5.7 does not ship with CMake out of the box, thankfully it is in the repositories.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
yum install cmake&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The installed and latest version of python was 2.4.3&lt;br /&gt;
&lt;br /&gt;
Obtain the source code from http://python.org/getit/. The following will install Python to /usr/local/bin/python rather than the existing location /usr/bin/python&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
tar xzvf Python-2.7.2.tgz&lt;br /&gt;
cd Python-2.7.2&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Build Gromacs for MPI ====&lt;br /&gt;
&lt;br /&gt;
FFTW and Gromacs must be built with the same precision tpyes&lt;br /&gt;
&lt;br /&gt;
===== FFTW =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
tar xzvf fftw-3.3.tar.gz&lt;br /&gt;
&lt;br /&gt;
#For single precision&lt;br /&gt;
./configure --enable-threads --enable-float --enable-sse --prefix=/shared/fftw&lt;br /&gt;
&lt;br /&gt;
#For double precision&lt;br /&gt;
./configure --enable-threads --prefix=/shared/fftw&lt;br /&gt;
&lt;br /&gt;
make&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===== Gromacs =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
tar xzvf gromacs-4.5.5.tar.gz&lt;br /&gt;
mkdir -p /shared/gromacs/build&lt;br /&gt;
mkdir /shared/gromacs/lib&lt;br /&gt;
&lt;br /&gt;
cd /shared/gromacs/build&lt;br /&gt;
&lt;br /&gt;
module load mpi/mvapich2-interconnects-gnu&lt;br /&gt;
&lt;br /&gt;
export FFTW_LOCATION=/shared/fftw/bin&lt;br /&gt;
&lt;br /&gt;
#For single precision&lt;br /&gt;
cmake -DCMAKE_INSTALL_PREFIX=/shared/gromacs -DLIB_INSTALL_DIR=/shared/gromacs/lib -DSOVERSION=6  -D FFTW3F_INCLUDE_DIR=/shared/fftw/include -D FFTW3F_LIBRARIES=/shared/fftw/lib/libfftw3f.a -DCMAKE_CXX_COMPILER=/opt/mpich2/gnu/bin/mpicxx -DCMAKE_C_COMPILER=/opt/mpich2/gnu/bin/mpicc -DGMX_MPI=ON -DGMX_PREFER_STATIC_LIBS=ON /shared/gromacs-4.5.5&lt;br /&gt;
&lt;br /&gt;
#For double precision - Currently not working&lt;br /&gt;
cmake -DCMAKE_INSTALL_PREFIX=/shared/gromacs -DLIB_INSTALL_DIR=/shared/gromacs/lib -DSOVERSION=6  -D FFTW3F_INCLUDE_DIR=/shared/fftw/include -D FFTW3F_LIBRARIES=/shared/fftw/lib/libfftw3.a -DCMAKE_CXX_COMPILER=/opt/mpich2/gnu/bin/mpicxx -DCMAKE_C_COMPILER=/opt/mpich2/gnu/bin/mpicc -DGMX_MPI=ON -DGMX_PREFER_STATIC_LIBS=ON /shared/gromacs-4.5.5&lt;br /&gt;
&lt;br /&gt;
make&lt;br /&gt;
make install-mdrun&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Build Gromacs for GPU ====&lt;br /&gt;
&lt;br /&gt;
===== OpenMM =====&lt;br /&gt;
&lt;br /&gt;
Note: Ensure CUDA environment variables are set before proceeding&lt;br /&gt;
&lt;br /&gt;
Before installing Gromacs for GPU we need to install OpenMM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
mkdir -p /shared/OpenMM/lib/plugins&lt;br /&gt;
&lt;br /&gt;
#As we are installing in a non standard location we need to set some variables&lt;br /&gt;
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/shared/OpenMM/lib&lt;br /&gt;
export OPENMM_PLUGIN_DIR=/shared/OpenMM/lib/plugins&lt;br /&gt;
export OPENMM_ROOT_DIR=/shared/OpenMM&lt;br /&gt;
&lt;br /&gt;
unzip OpenMM4.0-Linux64.zip&lt;br /&gt;
./install.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Gromacs =====&lt;br /&gt;
&lt;br /&gt;
Note: Parallel runs are not supported in the GPU build of Gromacs 4.5&lt;br /&gt;
&lt;br /&gt;
To build Gromacs for GPU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
tar xzvf gromacs-4.5.5.tar.gz&lt;br /&gt;
mkdir -p /shared/gromacs/build&lt;br /&gt;
mkdir /shared/gromacs/lib&lt;br /&gt;
&lt;br /&gt;
cd /shared/gromacs/build&lt;br /&gt;
&lt;br /&gt;
cmake -DGMX_OPENMM=ON -DCMAKE_INSTALL_PREFIX=/shared/gromacs -DLIB_INSTALL_DIR=/shared/gromacs/lib -DSOVERSION=6 /shared/gromacs-4.5.5&lt;br /&gt;
&lt;br /&gt;
make mdrun&lt;br /&gt;
make install-mdrun&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Benchmarking =====&lt;br /&gt;
&lt;br /&gt;
Benchmarks can be obtained from http://www.gromacs.org/@api/deki/files/128/=gromacs-gpubench-dhfr.tar.gz&lt;br /&gt;
&lt;br /&gt;
For MPI&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
mkdir /shared/gromacs/benchmarks&lt;br /&gt;
tar xzvf -C /shared/gromacs/bechmarks gromacs-gpubench-dhfr.tar.gz&lt;br /&gt;
cd /shared/gromacs/benchmarks/dhfr/GPU/dhfr-impl-1nm.bench&lt;br /&gt;
mpirun -np 8 -machinefile ~/nodes /shared/gromacs/bin/mdrun-gpu&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For GPU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
mkdir /shared/gromacs/benchmarks&lt;br /&gt;
tar xzvf -C /shared/gromacs/bechmarks gromacs-gpubench-dhfr.tar.gz&lt;br /&gt;
cd /shared/gromacs/benchmarks/dhfr/GPU/dhfr-impl-1nm.bench&lt;br /&gt;
/shared/gromacs/bin/mdrun-gpu -device &amp;quot;OpenMM:force-device=yes&amp;quot; #I experinced an error stating Tesla M2090&lt;br /&gt;
                                                                #was not supported even though it is listed&lt;br /&gt;
                                                                #as a supported device&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can specifiy whch card to run on with the DeviceID switch. Usefull if you need to run on a certain card or want to start another instance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
mdrun-gpu -device &amp;quot;DeviceID=1&amp;quot; #Deaults to 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>David</name></author>
	</entry>
</feed>