科学计算软件编译安装测试方法说明 --- lammps 篇 (提供免费测试)

官网地址:http://lammps.sandia.gov/

下载最新稳定版本:http://lammps.sandia.gov/download.html

下载指定版本:http://lammps.sandia.gov/tars/

1. 什么是LAMMPS?

LAMMPS即Large-scale Atomic/MolecularMassivelyParallel Simulator,可以翻译为大规模原子分子并行模拟器,主要用于分子动力学相关的一些计算和模拟工作。

2. lammps编译环境

Intel Compiler /GNU Compiler  + MPI Compiler

3. 安装 Intel Compiler 编译器,设置编译环境

如果使用的是Intel的CPU,建议使用Intel的编译器。

详细安装方法参见博客相关文章。

例如使用TH-1A的Intel 2013编译器编译lammps,可以加载如下环境变量:

source /opt/intel/composer_xe_2013.0.079/bin/iccvars.sh intel64

4.安装 MPI Compiler,设置编译环境

编译并行版的程序需要并行编译器,例如MPI并行的程序需要MPI编译器,常用的MPI例如Intel MPI 、MPICH 、OPENMPI等。

不同的机器可能针对自身硬件进行MPI优化,天河系统的MPI是基于开源MPICH进行的二次开发优化,进而支持性能卓越的天河自主高速互联网络。

详细安装方法参见博客相关文章。

例如使用TH-1A的Intel 2013编译器编译的mpich,可以加载如下环境变量:

export MPI_HOME=/usr/local/mpi-intel2013
export PATH=$MPI_HOME/bin:$PATH
export LD_LIBRARY_PATH=$MPI_HOME/lib:$LD_LIBRARY_PATH

5.安装fftw数学库(可选,强烈建议)

编译fftw数学库,可以遵循常用的configure + make + make install 的步骤,安装方法参见博客相关文章。

lammps支持fftw数学库,可以通过在Makefile中设置变量设置,详见第7部分。

6.编译配置lammps的package

lammps包含了数十个package,默认情况下仅安装如下package:

$ cd lammps/src # 进入lammps所在的src目录,同下
$ make ps  | grep YES
Installed YES:package KSPACE
Installed YES:package MANYBODY
Installed YES:package MOLECULE

如果想安装其他扩展包,如要进行相关配置。
 
1)有的扩展包仅仅需要通过make yes-packagename的方式便可以,例如:

$ cd lammps/src
$ make yes-colloid

这样便可以编译出支持colloid的lammps程序。
2)有的扩展包在lammps/lib对应文件夹下出现并附带了相关源码,手动编译出相关库,然后再编译lammps的时候进行链接即可,例如:

$ cd lammps/lib/poems # 修改为实际路径
$ make -f make -fMakefile.icc
$ cd lammps/src
$ make yes-poems

这样便可以编译出支持poems模块的lammps程序。
 
3)有的扩展包在lammps/lib对应文件夹下出现,但是并没有附带了相关源码,这时候需要阅读该文件夹内的祥光文件,例如 README及Makefile等,根据相关内容去额外下载相关源码包进行编译安装,然后再链接到lammps中,例如:
 
voronoi模块:
Voro++ is aopensource software library for the computation of the Voronoi diagram, awidely-usedtessellation that has applications in many scientific fields.

# 下载网址:http://math.lbl.gov/voro++/download
# 版本:voro++-0.4.6.tar.gz
# 大小:791K
$ tar zxvfvoro++-0.4.6.tar.gz
$ cd voro++-0.4.6# 修改config.mk, 因为1.想用intel的编译器 2.普通用户,需要修改安装路径 CXX=icpcPREFIX=/vol-th/home/zhenggang/software/voro++/0.4.6  # 修改为自己的路径
$ make
$ make install# 连接lammps
$ cd lammps/lib/voronoi # 修改为实际路径
$ ln -s /vol-th/home/zhenggang/software/voro++/0.4.6/include/voro++ includelink
$ ln -s /vol-th/home/zhenggang/software/voro++/0.4.6/lib liblink$ cd lammps/src
$ make yes-voronoi
/vol-th/home/zhenggang/software/voro++/0.4.6  # 修改为自己的路径
$ make
$ make install# 连接lammps
$ cd lammps/lib/voronoi # 修改为实际路径
$ ln -s /vol-th/home/zhenggang/software/voro++/0.4.6/include/voro++ includelink
$ ln -s /vol-th/home/zhenggang/software/voro++/0.4.6/lib liblink$ cd lammps/src
$ make yes-voronoi

其他的同类package也有不少,可以仿照上面的方式自己阅读README文件。
备注:

$ cd lammps/src
$ make help # 查看支持的相关命令

7.编译lammps
可以通过拷贝的方式,创建一个Makefile文件,也可以在原来的Makefile上进行更改。此处我们创建一个新的Makefile,名为Makefile.th

$ cd lammps/src
$ cp MAKE/Makefile.mpi MAKE/Makefile.th

使用文本编辑器编辑Makefile文件

$ vim MAKE/Makefile.th

需要修改的参数包括如下部分:

CCFLAGS =       -g -O3 # 这里可以额外添加一下编译优化选项,例如 -xHost -ip 等等,也可以保持不变。
LIB =    -lmkl_intel_lp64 -lmkl_sequential  -lmkl_core # 添加MKL数学库
# 官方FFTW
FFT_HOME =  $(HOME)/software/fftw/3.3.6
FFT_INC =    -DFFT_FFTW3  -I$(FFT_HOME)/include
FFT_PATH =
FFT_LIB =    -L$(FFT_HOME)/lib -lfftw3# intel的FFTW
MKLROOT = /opt/intel/composer_xe_2013.0.079/mkl
FFT_INC =    -DFFT_FFTW3  -I$(MKLROOT)/include/fftw
FFT_PATH =
FFT_LIB =  $(MKLROOT)/interfaces/fftw3xf/libfftw3xf_intel.a

备注:
默认情况下安装的Intel Compiler的MKL库并未编译fftw的静态库,故可能需要手动安装。关于FFTW库的安装方法参见博客相关文章。

下面可以进行编译工作了:

$ cd lammps/src
$ make th 2>&1 | tee m.log

备注:
1. make th 中的th是因为我们创建的Makefile名为Makefile.th。
2."2>&1 | tee m.log" 是为了将make过程进行记录,如果出现报错,可以查看m.log文件寻找原因。
3. 如果使用多核的cpu可以使用“-j”参数加快编译速度,例如4核的cpu,可以用如下命令 make-j 4 2>&1 | tee m.log
 
编译完成会生成一个名为 lmp_th的 可执行文件。

8. 测试lammps
 
如果是普通的集群,那么使用通常的mpirun命令即可,如果有作业管理系统,编写作业提交脚本即可。下面举例说明如何在TH-1A系统下提交测试lammps程序:
 
1)准备测试输入文件
例如lammps/bench目录下的in.lj
 
2)准备可执行程序
刚刚编译好的lmp_th
 
3)编写提交脚本sub.sh

#!/bin/bash
yhrun -N 2 -n 24 -p debug /path/to/lmp_th < in.lj

说明:
-N 节点数;-n 核数;-p 分区;请给出lmp_th文件的路径;in.lj为 输入文件的名称
 
4)提交任务

yhbatch -N 2 -n 24-p debug sub.sh

5)查看输出
计算完成后会在默认的输出文件log.lammps中生成结果文件,也可以查看slurm-jobid.out文件。
 
8. 额外
1)如果希望编译支持JPEG的lammps,仅需要仿照第3步的第3种情况,先将libjpeg库安装好,然后通过Makefile中的相关变量设置即可。
2)如果希望安装单精度lammps,加入“-DFFT_SINGLE” 即可。
 
篇幅所限,部分内容并未完全展开,欢迎讨论。

P.S 提供lammps的测试机会,感兴趣的可以加QQ(178068275)咨询。

欢迎交流!

lammps 编译安装测试说明相关推荐

  1. 【网络通信 -- SIP 电话】项目实战记录 -- SIP 服务器 OPENSIPS 搭建测试与 SIP 客户端 PJSIP 编译安装测试

    [网络通信 -- SIP 电话]项目实战记录 -- SIP 服务器 OPENSIPS 搭建测试与 SIP 客户端 PJSIP 编译安装测试 [1]SIP 服务器 OPENSIPS 搭建 1.1 安装环 ...

  2. qemu学习笔记1之编译安装测试

    发行版本直接命令安装 Arch: pacman -S qemu Debian/Ubuntu: apt-get install qemu Fedora: dnf install @virtualizat ...

  3. Cartographer ROS编译安装

    文章目录 Cartographer ROS编译安装 测试Cartographer环境 安装gmapping比较简单,一条命令 (sudo apt install ros-noetic-gmapping ...

  4. linux下运行yolo,deepin(linux)编译安装yolo v4测试效果

    # 背景 五一放假的最后一天我也凑了个热闹,试一下新鲜出炉的yolo v4, 由于没有装CUDA和CUDNN,只试了一下在CPU上的速度和效果,电脑环境及编译依赖如下: * deepin 15.11桌 ...

  5. maven常用命令(编译、测试、运行、打包、安装、部署)

    我们可以在cmd中通过一系列的maven命令来对我们的maven-helloworld工程进行编译.测试.运行.打包.安装.部署. compile compile是maven工程的编译命令,作用是将s ...

  6. 压力测试以及编译安装httpd2.4

    压力测试以及编译安装httpd2.4 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.使用 deflate_module模块压缩页面优化传输速度 我们的httpd软件自带的有一个 ...

  7. 编译安装LAMP对其性能压力测试

    本文主要描述了apache,php,mysql的安装方式,并结合xcache对php进行加速,使用ab命令对php进行压力性能测试. 本次环境:都是在一台主机上实现,系统为Centos6.5_64位 ...

  8. [FirefoxOS_开发环境]Linux和Ubuntu环境下B2G(Firefox OS)安装、编译、测试教程集合

    1在ubuntu上测试Firefox OS(B2G)系统 Firefox OS,项目代号为"Boot 2 Gecko",是一个开放的完全基于WEB标准的智能手机操作系统,由Mozi ...

  9. mysql aced是什么_memcached编译安装及缓存mysql测试

    说明: 客户端第一次访问应用程序时,会到数据库(RDBMS类型)中取出数据,返回给客户端:同时也将取出的数据保存到memcached中. 第二次访问时,因为数据已经缓存,不用去数据库查询,直接从mem ...

最新文章

  1. webalizer日志分析软件的安装
  2. 零基础实践深度学习之Python基础
  3. python路由编程_Python Django基础二之URL路由系统
  4. 创建android工程时Install Dependencies(安装依赖)提示
  5. centos linux下vnc server远程桌面配置详解,CentOS 6.0 VNC远程桌面配置
  6. 双十一清醒指南,送3本Python书
  7. pytorch: where、gather函数
  8. Apache Flink 进阶(一):Runtime 核心机制剖析
  9. 190425每日一句
  10. 2022年陕西省职业院校技能大赛中职组网络安全赛项规程
  11. mysql 数据库引擎切花_asyncio异步编程,你搞懂了吗?
  12. mysql中rownumber用法_MySQL中row_number的实现
  13. ios平台实现视频H264硬编码及软编码(附完整demo)
  14. 2021年饶州中学高考成绩查询,2019鄱阳饶州中学录取分数线
  15. java memcmp_【转】 memcmp源码实现
  16. lnkscape制作logo
  17. HEVC解码器HM源码阅读(一)介绍
  18. 推荐几个帮你避坑和赚钱的公众号
  19. 超级实用——用word与谷歌翻译将英文PDF文档翻译成中文,免费无限制
  20. AIO-3588JQ 8K AI工业主板

热门文章

  1. 黑马程序员Maven学习笔记
  2. Linux篇.配置IP地址与主机名的映射关系
  3. jmeter录制脚本步骤:录制浏览器脚本/录制小程序或APP脚本
  4. ASP.NET MVC 小区物业费管理平台
  5. Linux如何部署私有IPFS(安装、部署、共享key,添加节点,测试)
  6. 中文搜索引擎技术揭密:网络蜘蛛
  7. 前端入职第一天都在做什么
  8. Echarts 图表在异步加载数据时,增加loading动画,提升用户体验感
  9. 卸载mysql数据库,利用小工具超级简单!!!
  10. 并联四足机器人项目开源教程(一)--- 机器人学导论的学习