NAMD Custom Build for better performance on your modern GPU accelerated workstation - Ubuntu 16.04, 18.04, CentOS 7
Configure your compilation environment
Development tools
Intel MKL
CUDA
Stevedore?
Configure and build NAMD
1) Download the NAMD font
2) Build and try the "charm"
3) Configure the configuration for the NAMD construction
3.a) dependence tcl
Edit arch / Linux-x86.tcl
3.b) Configuration to link in the FFTW libraries of Intel MKL
Edit arch / Linux-x86.mkl
Edit arch / Linux-x86.fftw3
3.c) Set the CUDA configuration
Edit arch / Linux-x86.cuda9
Rename arch / Linux-x86.cuda and create a link to Linux-x86.cuda9
3.d) Add -march = native to the main configuration file
Edit file / Linux-x86-g ++. Arch
4) Execute config to create the compilation directory
5) Make the compilation
6) Create a distribution distribution.
Note on '+ isomalloc_sync'
NAMD performance with custom compilation (STMV Benchmark)
* NAMD Custom Build Performance, STMV Benchmark, 1080Ti TitanV
Introduction
This publication will focus on compiling NAMD from the source for good performance on modern NVIDIA GPUs that use CUDA. Making a custom NAMD compilation from the source code provides a moderate but significant increase in performance. This can be important if you take into account that large simulations in several steps of time can last for days or weeks. I wanted to make some custom NAMD compilations to ensure that the modern hardware of the Workstation was being well used.
I often use NAMD for hardware performance testing and for the past year I have been using the very well optimized compilation available in the NVIDIA NGC dockable image. I am an advocate of the use of the docker (see this link and the corresponding links). However, for most workflows, it is more appropriate and common to use a traditional workstation configuration. We will go through a relatively simple construction process to get a NAMD that will provide excellent performance in the modern hardware of the workstation.
If you are impatient, there is a graph and a table of performance results near the bottom of the publication.
Hardware
I used the phrase "modern hardware of the workstation" a couple of times above. By this I mean a workstation (or node) based on a current Intel CPU with the Skylake-X, -W or -SP architecture. Along with an NVIDIA GPU based on Pascal or Volta architecture. For example, 1080Ti, Titan Xp or Titan V. In particular, I am using my personal machine with a 14-core Intel Xeon-W 2175 CPU and an NVIDIA 1080Ti GPU similar to what we could configure as our "Peak Single".
I will do a more thorough hardware performance test with NAMD in a later publication. I will wait for the release of the final version of NAMD 2.13 before doing so. However, I will include some performance numbers near the end of this publication so you can see the good acceleration of making your own compilation of NAMD ... I also include numbers using a Titan V.
If you look in the (many) publications that I have in Puget Systems HPC blog, you will find several publications related to NAMD that I have done in recent years. The last time I made a publication that included the construction of NAMD from its origin was almost three years ago, Molecular Dynamics Performance on GPU Workstations - NAMD.
NAMD
NAMD is a molecular dynamics program developed and maintained by the Theoretical and Computational Biophysics Group at the University of Illinois at Urbana-Champaign. It is licensed by the University of Illinois and is available for free, including the source code, under a non-commercial, non-exclusive license.
NAMD is a widely used molecular dynamics program capable of performing simulations in systems with millions of atoms (approaching billions of atoms!). It is also highly parallel and often installed in large computing clusters. The underlying parallelism is achieved by using the charm of the structure of underlying parallel objects ++.
The group in the UIUC that works in NAMD was one of the pioneers in the use of GPU for computer acceleration and NAMD has a very good performance acceleration when using NVIDIA CUDA.
NAMD is representative of a larger group of Molecular Dynamics packages including LAMMPS, GROMACS, Amber ... All modern Molecular Dynamics programs have very good acceleration of GPU processing for important aspects of their functionality and performance.
Configure your compilation environment
For the NAMD compilation that I describe below, you should have NVIDIA.
No comments