网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
按照官方教程:
tar xfz gromacs-2021.5.tar.gz
cd gromacs-2021.5
mkdir build
cd build
cmake .. -DGMX_BUILD_OWN_FFTW=ON -DREGRESSIONTEST_DOWNLOAD=ON
make
make check
sudo make install
source /usr/local/gromacs/bin/GMXRC
只要按照这些命令,就可以将gromacs安装好。
当然如果你要定制化安装,那就要更加详细的了解gromacs了。
我们需要了解下面的东西:
大概了解了这些之后,我们就要了结合这些了解和cmake来定制化我们的安装过程。
如果对应到上面的安装命令,那就是对下面这句命令进行适应性更改:
cmake .. -DGMX_BUILD_OWN_FFTW=ON -DREGRESSIONTEST_DOWNLOAD=ON
下面我们一个一个的介绍这些。
如果不想把gromacs安装到默认的目录,想要自定义安装目录,可以在cmake命令后面加-DCMAKE_INSTALL_PREFIX=/home/marydoe/programs,加下划线的就是你想自定义安装的目录。
cmake .. -DCMAKE_INSTALL_PREFIX=/home/marydoe/programs
如果发现cmake找不到一些库文件和头文件,可以使用下面的参数:
CMAKE_INCLUDE_PATH
for header filesCMAKE_LIBRARY_PATH
for librariesCMAKE_PREFIX_PATH
for header, libraries and binaries (e.g./usr/local
).
如果想使用GPU加速,可以使用下面的参数:
cmake .. -DGMX_GPU=CUDA -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda
这个需要我们提前安装好cuda。
如果不是Nvdia的显卡,是AMD或者Intel的显卡,我们就不能使用CUDA了,这时我们可以使用OpenCL来加速。可以使用下面的命令:
cmake .. -DGMX_GPU=OpenCL
cmake .. -DGMX_GPU=OpenCL -DGMX_OPENCL_NB_CLUSTER_SIZE=4
cmake .. -DGMX_GPU=OpenCL -DclFFT_ROOT_DIR=/path/to/your/clFFT -DGMX_EXTERNAL_CLFFT=TRUE
上面的几种命令行情况需要根据不同的情况去使用。
一般来说,gromacs的安装都是使用的动态链接,如果你想使用静态链接,那可以参考下面的使用方法。
Dynamic linking of the GROMACS executables will lead to a smaller disk footprint when installed, and so is the default on platforms where we believe it has been tested repeatedly and found to work. In general, this includes Linux, Windows, Mac OS X and BSD systems. Static binaries take more space, but on some hardware and/or under some conditions they are necessary, most commonly when you are running a parallel simulation using MPI libraries (e.g. Cray).
- To link GROMACS binaries statically against the internal GROMACS libraries, set
-DBUILD_SHARED_LIBS=OFF
. - To link statically against external (non-system) libraries as well, set
-DGMX_PREFER_STATIC_LIBS=ON
. Note, that in generalcmake
picks up whatever is available, so this option only instructscmake
to prefer static libraries when both static and shared are available. If no static version of an external library is available, even when the aforementioned option isON
, the shared library will be used. Also note that the resulting binaries will still be dynamically linked against system libraries on platforms where that is the default. To use static system libraries, additional compiler/linker flags are necessary, e.g.-static-libgcc -static-libstdc++
. - To attempt to link a fully static binary set
-DGMX_BUILD_SHARED_EXE=OFF
. This will prevent CMake from explicitly setting any dynamic linking flags. This option also sets-DBUILD_SHARED_LIBS=OFF
and-DGMX_PREFER_STATIC_LIBS=ON
by default, but the above caveats apply. For compilers which don’t default to static linking, the required flags have to be specified. On Linux, this is usuallyCFLAGS=-static CXXFLAGS=-static
.
这次重新看gromacs的安装过程,发现如果想要对gromacs有一个非常深入的理解的话,那需要有不错的计算机基础(果然计算机是YYDS)。
当然这次重新看gromacs的安装教程,又让我不禁感叹英文manual讲的详细又清楚。以前因为自己英语的原因,好像总有点对英文材料有点抗拒,倒不是看不懂,而是没有看中文材料那么清晰和迅速。这次也让我重新了解到阅读英文材料的重要性,尤其是有关计算机,开源软件的使用等方面。
为了内容的完整性,在安装完gromacs之后,我们安装惯例来对gromacs的使用进行一点了解。
gromacs User guide官方地址:https://manual.gromacs.org/documentation/2021.5/user-guide/index.html
安装好gromacs之后,在命令行中键入
gmx -version
来测试一下是否正确安装了gromacs。以我的为例,我在键入gmx -version之后,显示的信息如下:
:-) GROMACS - gmx, 2021.5 (-:
GROMACS is written by:
Andrey Alekseenko Emile Apol Rossen Apostolov
Paul Bauer Herman J.C. Berendsen Par Bjelkmar
![img](https://img-blog.csdnimg.cn/img_convert/1205500e6bcc991db6684de4c4efc5ba.png)
![img](https://img-blog.csdnimg.cn/img_convert/257cebcdeda9ddd4dd5c7d8270548651.png)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以添加戳这里获取](https://bbs.csdn.net/topics/618658159)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
*[需要这份系统化的资料的朋友,可以添加戳这里获取](https://bbs.csdn.net/topics/618658159)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**