NAMD是一种平行分子动力学代码,设计用于大型生物分子系统的高性能模拟。 利用Charm ++并行编程框架,NAMD可以扩展到几个核心,用于典型的仿真,超过500,000个核心,用于最大的仿真。
使用此系统编写的程序在具有或不具有共享内存的MIMD计算机上运行不变。 它提供了高级机制和策略,以促进开发甚至高度复杂的并行应用程序的任务。
有关Charm ++或NAMD的更多信息,请分别访问 Charm++ 或 NAMD 网站。
这些说明着重于为多节点,多核平台构建NAMD。出于此构建的目的,使用以下组件:
序号 | 组件 | 版本 |
---|---|---|
1 | NAMD | Version 2.12 |
2 | Charm++ | Version 6.7.1 |
3 | GNU Compiler | Version 4.9.3 |
4 | MPICH | Version 3.2.1 |
1 2 3 4 5 6 7 8 9 10 11 12 | # GNU COMPILER export PATH=/usr/local/bin:$PATH export LD_LIBRARY_PATH=/usr/local/bin:$LD_LIBRARY_PATH # MPI export PATH=/usr/local/mpi3/bin:$PATH export LD_LIBRARY_PATH=/usr/local/mpi3/lib:$LD_LIBRARY_PATH # environment export CC=gcc export CXX=g++ export FC=gfortran |
1 2 3 4 5 | BUILD_DIR=~/NAMD cd$BUILD_DIR wget http://www.ks.uiuc.edu/Research/namd/2.12/download/832164/NAMD_2.12_Source.tar.gz tar -xf NAMD_2.12_Source.tar.gz cd NAMD_2.12_Source |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | CHARMARCH=mpi-linux-aarch64 tar xvf charm-6.7.1.tar cd charm-6.7.1 cd src/arch mkdir $CHARMARCH cp mpi-linux/conv-mach.* $CHARMARCH cd$CHARMARCH sed -i "s/i386-gcc/generic64-light/" conv-mach.sh sed -i "/#endif/i #define CMK_64BIT 1" conv-mach.h cd ../../.. # build ./build charm++ $CHARMARCH --with-production -j8 cd .. |
说明:因为针对ARM64,没有现成的ARCH配置,故自己拷贝一个类似的,然后修改。编译过程大约几分钟。
下载FFTW库
1 2 | wget http://www.ks.uiuc.edu/Research/namd/libraries/fftw-linux-arm64.tar.gz tar xvf fftw-linux-arm64.tar.gz |
也可以手动下载源码,并拷贝到NAMD解压后的目录。
1 | sed -i "s%\$(HOME)%`pwd`%" arch/Linux-ARM64.fftw |
如果系统中已安装了fftw库,也可以直接使用,例如自己手动修改配置文件 arch/Linux-ARM64.fftw ,改为以下内容:
1 2 3 4 5 | FFTDIR=/usr/local/fftw FFTINCL=-I$(FFTDIR)/include FFTLIB=-L$(FFTDIR)/lib -lfftw3f FFTFLAGS=-DNAMD_FFTW -DNAMD_FFTW_3 FFT=$(FFTINCL) $(FFTFLAGS) |
说明:FFTWDIR=/usr/local/fftw,指的是fftw库安装的根目录,请修改为自己的目录。
下载TCL库
1 2 | wget http://www.ks.uiuc.edu/Research/namd/libraries/tcl8.5.9-linux-arm64-threaded.tar.gz tar xvf tcl8.5.9-linux-arm64-threaded.tar.gz |
也可以手动下载源码,并拷贝到NAMD解压后的目录。
修改配置文件:
1 | sed -i "s%\$(HOME)%`pwd`%" arch/Linux-ARM64.tcl |
1 | sed -i "s/multicore-arm7/mpi-linux-aarch64/" arch/Linux-ARM64-g++.arch |
1 2 3 4 5 | ./config Linux-ARM64-g++ --charm-arch mpi-linux-aarch64 \ --with-fftw --with-tcl cd Linux-ARM64-g++ time make -j8 2>&1 | tee m.log cd .. |
编译过程大约几分钟。
安装后的NAMD可以将其拷贝到目标目录,并设置PATH路径
1 2 3 4 5 | INSTALL_DIR=$HOME/software/namd/2.12 mkdir -p $INSTALL_DIR cp Linux-ARM64-g++/charmrun $INSTALL_DIR cp Linux-ARM64-g++/namd2 $INSTALL_DIR export PATH=$INSTALL_DIR:$PATH |
The Apoa1 example is a standard NAMD cross-platform benchmark. For more information on the Apoa1 example, see the NAMD website.
1 2 3 | wget http://www.ks.uiuc.edu/Research/namd/utilities/apoa1.tar.gz tar -xf apoa1.tar.gz mpirun -np 16 namd2 apoa1/apoa1.namd |
有关NAMD的更多信息,请访问 NAMD 官网。
关于ARM平台应用程序移植和优化,请访问 Mr.ZhengGang。