ubuntu下并行安装lammps教程(需联网)超简单亲测成功,适合小白写在前面的话:手册很重要,一定要看手册!!!本人小白一个,没用过任何linux系统,前天才安装了ubuntu,linux系统和win系统有很大的区别,很多操作需要在终端中进行,因此想要安装lammps,最好先熟悉一下linux的基本操作,然后根据手册进行编译安装。
安装过程中我走了很多弯路,下载lammps以后就先看了看手册,关于安装那一部分写的很详细,但由于对linux基本操作都不熟悉,以至于根本看不懂,没办法,只能按照网上的教程安装,但装了一天也没成功,最后舍弃所有教程,还是自己根据手册安装成功的。
熟悉了linux的基本操作以后就能发现,如何安装lammps手册上其实说的很清楚了,很多教程都走了弯路,进行了很多不必要的步骤,特别是对ubuntu系统的用户来说。
这个教程意在帮助ubuntu和lammps小白少走弯路,我尽可能详细地列出了安装过程中的每一个步骤,并对步骤进行了说明,希望能帮助小白们在了解linux基本操作的同时完成lammps的安装。
但最好还是根据手册自行安装,因为手册上说的真的很详细。
由于我也是小白,加上写作水平有限,难免有纰漏,有不足之处,还请见谅。
lqjunzi2016.6.2首先安装ubuntu系统,不会的自行查看相关教程1.进入安装好的ubuntu系统,先打开software updater(桌面左下角有个类似Windows开始菜单的图表,点击,搜索updater)更新系统,不是必要的,但不更新可能会出现问题,更新比较慢,要联网下载很多东西2.打开终端(以下在终端中所需输入指令均高亮标出),系统默认是没有root密码的,但安装lammps时需要在root账户下进行,创建初始root密码的命令如下:lqjunzi@lqjunzi:~$ sudo passwd root #输入sudo passwd root按回车,可以鼠标复制粘贴,但ctrl+c不管用[sudo] lqjunzi 的密码: #输入密码,回车(输完指令按回车执行,后面省略),输入过程不显示输入新的 UNIX 密码: #再次输入密码,输入过程不显示重新输入新的 UNIX 密码: #再次输入密码,输入过程不显示passwd:已成功更新密码 #提示root密码更新成功lqjunzi@lqjunzi:~$ su #输入su,回车Password: #输入密码,回车root@lqjunzi:/home/lqjunzi# #可以看到最前面的用户名已经由lqjunzi变成啦root,而后面的~$也变成了#,#是在root下操作的标志3.下载lammps安装包,下载后的安装包默认在/home/lqjunzi/Downloads目录下,这里的lqjunzi是安装系统时的用户名,习惯的将下载后的lammps-stable.tar.gz复制至/home/lqjunzi/sw 目录下(完全可以不复制,就在Downloads下操作,只是个人习惯,如不移动则后面操作目录相应改变)root@lqjunzi:/home/lqjunzi# mkdir sw #在/home/lqjunzi目录下建立sw文件夹root@lqjunzi:/home/lqjunzi# cd Downloads #进入 Downloads文件夹root@lqjunzi:/home/lqjunzi/Downloads# cp lammps-stable.tar.gz ../sw #复制到vm目录下,文件名在输入的时候可以输入lamm后按table键,会自动补全剩余文件名,简化输入root@lqjunzi:/home/lqjunzi/Downloads# cd ../sw #进入sw目录root@lqjunzi:/home/lqjunzi/sw# gunzip lammps-stable.tar.gz #解压root@lqjunzi:/home/lqjunzi/sw# tar xvf lammps-stable.tar #解压root@lqjunzi:/home/lqjunzi/sw# ls #显示该文件夹下的文件/文件夹。
发现一个lammps-14Mayxxx之类的文件夹root@lqjunzi:/home/lqjunzi/sw# mv lammps-14Mayxxx lmp #将解压后的文件夹命名为lmp,方便操作,这里 lammps-14Mayxxx可能会因为你下载的软件不同(lammps经常更新)而不同root@lqjunzi:/home/lqjunzi/sw# cd lmp/src/MAKE/MACHINES #进入该文件夹root@lqjunzi:/home/lqjunzi/sw/lmp/src/MAKE/MACHINES# ls #显示该文件夹下的文件/文件夹。
看到存在一个Makefile.ubuntu文件,这就是编译lammps所需要的文件,文件内容付在教程最后,其他教程中都需要改这个文件,然而对于新手来说很容易出错,通过查看手册发现根本不需要对这个文件进行修改,这就避免了出错。
root@lqjunzi:/home/lqjunzi/sw/lmp/src/MAKE/MACHINES# gedit Makefile.ubuntu #打开这个文件,这一步与安装无关,只是为了说明为什么要装下面那几个packages,但建议打开阅读一遍,并结合手册,看有没有需要更改的地方,我就是看了手册以后发现这个文件根本不用修改,而我查到的很多教程都需要修改,修改就容易出错,当然对于非ubuntu系统就不一定了,这里不作讨论。
可以看到需要安装几个packages才能安装4.安装必要packages,依次输入并执行以下命令,时间根据电脑配置和网速不同,几分钟一般,以下为安装必要packages指令,不再一一解释。
apt-get install build-essentialapt-get install g++apt-get install mpi-default-binapt-get install mpi-default-devapt-get install libfftw3-devapt-get install libjpeg-devapt-get install libpng12-dev# 如果上述packages安装过程中出现依赖关系错误,就执行apt-get -f install语句,然后再次安装(我安装的时候没出现问题)5. 编译cd ../.. #回到/home/lqjunzi/sw/lmp/src/目录make clean-all #先清理一下make ubuntu #开始编译,时间很长,十几分钟大约,没提示错误的话就是成功了ls #检查编译结果,如果编译成功在/home/lqjunzi/sw/lmp/src/下会生成一个lmp_ubuntu文件,如下图所示。
6. 运行例子,以friction为例cp lmp_ubuntu ../examples/friction/ #将 lmp_ubuntu复制到../examples/friction/ 文件夹下mv lmp_ubuntu lmp #改名,方便操作./lmp<in.friction #运行运行结果生成的log文件以上就是教程全部内容,祝安装成功!下面是Makefile.ubuntu的文件内容和我安装时所查的linux基本操作命令(都是复制的别人的,没有标出处,见谅。
内容不是很全,太基础的没放,且格式很乱,将就着看吧,希望能有所帮助)。
Makefile.ubuntu文件内容:# ubuntu = Ubuntu Linux box, g++, openmpi, FFTW3# you have to install the packages g++, mpi-default-bin, mpi-default-dev,# libfftw3-dev, libjpeg-dev and libpng12-dev to compile LAMMPS with this # makefileSHELL = /bin/sh# ---------------------------------------------------------------------# compiler/linker settings# specify flags and libraries needed for your compilerCC = mpic++CCFLAGS = -g -O3 # -WunusedSHFLAGS = -fPICDEPFLAGS = -MLINK = mpic++LINKFLAGS = -g -O3LIB =SIZE = sizeARCHIVE = arARFLAGS = -rcSHLIBFLAGS = -shared# ---------------------------------------------------------------------# LAMMPS-specific settings, all OPTIONAL# specify settings for LAMMPS features you will use# if you change any -D setting, do full re-compile after "make clean"# LAMMPS ifdef settings# see possible settings in Section 2.2 (step 4) of manualLMP_INC = -DLAMMPS_GZIP -DLAMMPS_JPEG -DLAMMPS_PNG -DLAMMPS_FFMPEG# MPI library# see discussion in Section 2.2 (step 5) of manual# MPI wrapper compiler/linker can provide this info# can point to dummy MPI library in src/STUBS as in Makefile.serial # use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts # INC = path for mpi.h, MPI compiler settings# PATH = path for MPI library# LIB = name of MPI libraryMPI_INC =MPI_PATH =MPI_LIB =# FFT library# see discussion in Section 2.2 (step 6) of manaul# can be left blank to use provided KISS FFT library# INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings# PATH = path for FFT library# LIB = name of FFT libraryFFT_INC = -DFFT_FFTW3FFT_PATH =FFT_LIB = -lfftw3# JPEG and/or PNG library# see discussion in Section 2.2 (step 7) of manual# only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC# INC = path(s) for jpeglib.h and/or png.h# PATH = path(s) for JPEG library and/or PNG library# LIB = name(s) of JPEG library and/or PNG libraryJPG_INC =JPG_PATH =JPG_LIB = -ljpeg -lpng# ---------------------------------------------------------------------# build rules and dependencies# do not edit this sectioninclude Makefile.package.settingsinclude Makefile.packageEXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)EXTRA_CPP_DEPENDS = $(PKG_CPP_DEPENDS)EXTRA_LINK_DEPENDS = $(PKG_LINK_DEPENDS)# Path to src filesvpath %.cpp ..vpath %.h ..# Link target$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS)$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)$(SIZE) $(EXE)# Library targetslib: $(OBJ) $(EXTRA_LINK_DEPENDS)$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)shlib: $(OBJ) $(EXTRA_LINK_DEPENDS)$(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS)$(EXTRA_PATH) -o $(EXE) \$(OBJ) $(EXTRA_LIB) $(LIB)# Compilation rules%.o:%.cpp $(EXTRA_CPP_DEPENDS)$(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< %.d:%.cpp $(EXTRA_CPP_DEPENDS)$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ %.o:%.cu $(EXTRA_CPP_DEPENDS)$(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $<# Individual dependenciesdepend : fastdep.exe $(SRC)@./fastdep.exe $(EXTRA_INC) -- $^ > .depend || exit 1 fastdep.exe: ../DEPEND/fastdep.ccc -O -o $@ $<sinclude .depend以下是没有整理的基本linux命令汇总:sudo passwd root 创建初始root密码lqjunzi@lqjunzi:~$ sudo passwd root[sudo] lqjunzi 的密码:输入新的 UNIX 密码:重新输入新的 UNIX 密码:passwd:已成功更新密码lqjunzi@lqjunzi:~$解压gunzip mpich2-1.3.1.tar.gztar xvf mpich2-1.3.1.tar新建文件夹1如果你要在那里建一个叫test的文件夹输入 cd /home 回车就到了home目录输入 mkdir test 就可以了2如果在文件夹里添加(就是创建)一个文件例如a.txt输入 touch test/a.txt 回车3删除 rm -rf test/ 回车删除文件/夹rm - remove files or directoriesBy default, rm does not remove directories. Use the --recursive (-r or -R) option to remove each listed directory, too, along with all of its contents.-r, -R, --recursive remove directories and their contents recursively-d, --dir remove empty directoriesTo remove a file whose name starts with a '-', for example '-foo', use one of these commands:rm -- -foorm ./-foo检查下自己的机器是否已经安装c和fortran编译器。