debian linux +mpich2+ifort+mkl 并行编译vasp4.6
- 格式:pdf
- 大小:76.34 KB
- 文档页数:4
Debian Linux系统下的内核编译详细讲解1. 传统方式直接在console中编译官方内核,需要以下软件包bin86 - 16-bit assembler and loaderdiff - File comparison utilitieslibc6-dev - GNU C Library: Development Libraries and Header Files libncurses5-dev - Developer's libraries and docs for ncursespatch - Apply a diff file to an original2.使用2.4.x内核的图形界面配置程序(make xconfig,还需要tk8.4 - Tk toolkit for Tcl and X11, v8.4 - run-time files使用2.6.x内核的Qt图形界面配置程序(make xconfig,还需要libqt3-mt-dev - Qt development files (Threaded使用2.6.x内核的GTK图形界面配置程序(make gconfig,还需要libgtk2.0-dev - Development files for the GTK+ library3. 如果您想制作内核的deb包,还需要debianutils - Miscellaneous utilities specific to Debiankernel-package - A utility for building Linux kernel related Debian package ksymoops - Linux kernel oops and error message decoder内核编译/doc/manuals/reference/ch-kernel.zh-cn.htmlDebian unstable发行版中的gcc、binutils和modutils可用来编译最新的Linux 内核。
在万全R630上用ifort9.1/pgf90-libgoto-mpich2编译并行版vasp纪要一、准备文件1、PGI-6.0(有正版lisence的)/ 非商业版的intel fortran 9.1.0432、GotoBLAS-1.26.tar.gz3、mpich2-1.0.8.tar.gz4、vasp代码:vasp.4.6.tar.gz和vasp.4.lib.tar.gz二、安装PGI/intel fortran安装完注意在用户目录下.bashrc中设置环境变量(类似以下内容)#pgi fortran compiler#export PGI=/usr/pgi/#export PATH=$PGI/linux86-64/6.0/bin:$PATH#export MANPATH=$MANPATH:$PGI/linux86-64/6.0/man/man1#export LM_LICENSE_FILE=$PGI/license.dat#mpich2-ifortexport PA TH=/usr/local/mpich2-ifort/bin:$PATH#mpich2#export PATH=/usr/local/mpich2/bin:$PA TH#mpich#export PATH=/usr/local/mpich/bin:$PATH#rshrsh=/usr/bin/rsh#intel fortran compilerexport PA TH=/opt/intel/fce/9.1.043/bin:$PATHLD_LIBRARY_PA TH="/opt/intel/fce/9.1.043/lib:$LD_LIBRARY_PA TH"export LD_LIBRARY_PA THexport FC=ifort三、安装GotoBLAS修改Makefile.rule、和detect./quickinstall.64bit四、安装mpich2export FC=pgf90./configure –prefix=/usr/local/mpich2make && make install五、编译vasp1、编译库$cd vasp4.lib$cp makefile.linux_pg makefile$make2、生成vasp$cd vasp.4.6$cp makefile.linux_pg makefile 修改makefile(见附件)FC=BLAS=LAPACK=等。
lammps单机并行计算配置方法Lamps 单机多核并行计算方法1、修改环境变量编辑.bashrc 文件:cdvi .bashrc按Insert 键,移动光标至fi 下,在文件结尾处(fi 后)增加以下两行:export PATH=/opt/mpich/bin:$PATHexportLD_LIBRARY_PATH=/opt/mpich/lib:/opt/fftw/lib:$LD_LIBRARY_P ATH按Esc,Shift+zz重启机器2、安装fftw获得fftw:wget /doc/e412612373.html,/fftw-2.1.5.tar.gztar xvzf fftw-2.1.5.tar.gzcd fftw directory./configure --prefix=/opt/fftw --enable-floatmakesudo make install3、安装mpich2获得mpich;wget/doc/e412612373.html,/research/proj ects/mpich2/downloads/tarballs/1.4.1p1/mpi ch2-1.4.1p1.tar.gzcd ..(退上去)tar xvzf mpich2-1.4.1p1.tar.gzcd mpich2-1.4.1p1./configure --prefix=/opt/mpichmakesudo make install4、Lammps编译Cd ~tar -xvzf lammps-6Dec12.tar.gz (注:必须有f 才能解压)cd lammps-6Dec12/src/MAKEvi Makefile.linuxcc= 改为mpic++link= 改为mpic++MPI_INC = -I/opt/mpich/include (添加,不删除原有内容)MPI_PATH = -L/opt/mpich/libMPI_LIB = /opt/mpich/lib/libmpich.a (不改动)FFT_INC = -I/opt/fftw/include (添加,不删除原有内容)FFT_PATH = -L/opt/fftw/libFFT_LIB = /opt/fftw/lib/libfftw.a (不改动)cd lammps6Dec2/srcmake yes-mcmake linux在src 文件夹内生成可执行文件:lmp_linux如果要修改Makefile.g++,方法如下vi Makefile.g++cc= 改为g++link= 改为g++MPI_INC = -I/opt/mpich/include (添加,不删除原有内容)MPI_PATH = -L/opt/mpich/libMPI_LIB = /opt/mpich/lib/libmpich.a (不改动)FFT_INC = -I/opt/fftw/include (添加,不删除原有内容)FFT_PATH = -L/opt/fftw/libFFT_LIB = /opt/fftw/lib/libfftw.a (不改动)EscShift+ZZcd lammps6Dec2/srcmake g++运行测试(在src 路径下):cp lmp_linux ../benchcd ../benchmpirun -np 4 ./lmp_linux < in.lj。
(1)准备1.sudo apt-get install g++sudo apt-get install build-essentialsudo apt-get install gcc-multilibsudo apt-get install libstdc++5sudo apt-get install openjdk-6-jre-headlesssudo apt-get install ia32-libssudo apt-get install lib32stdc++6sudo apt-get install libc6-dev-i386sudo apt-get install g++-multilibsudo apt-get install gfrotran1 2 3 tar -2. xzvf xxx #xxx 指压缩包的名称 cd 解压后目录 ./install.sh##########安装过程很简单,安装提示就行########安装完成后,修改环境变量1 vi ~/.bashrc在末尾添加source /opt/intel/bin/compilervars.sh intel64 (64位版本)source /opt/intel/bin/compilervars.sh ia32 (32位版本)1 source ~/.bashrc4. 编译mpi首先下载mpich2的安装文件1 2 3 4 5 6 tar mpich2压缩包cd 文件夹./configure --prefix=安装目录 f77=ifort f90=ifort fc=ifortmakemake installvi ~/.bashrc笔者安装目录在/opt/mpich2,也可以放在其他文件夹中,注意执行make install 用户需要有写入权限在文件最后写入如下代码1 2 3 4 #mpi2 startPATH=/usr/local/mpich2-1.2.1p1/bin:$PATHexport PATH#mpi2 end再source 一下1 source ~/.bashrc5.编译fftw1 2 3 4 5 tar 安装文件cd 文件夹./configure --prefix=安装目录 F77=ifort F90=ifort GCC=ifortmakemake install all6.编译vasp准备 vasp.5.2.tar.gz vasp.5.lib.tar.gz首先编译的是vasp.lib1 2 3 4 5 tar xzvf vasp.5.2.tar.gztar xzvf vasp.5.lib.tar.gzcd vasp.5.libcp makefile.linux_ifc_P4 makefilevi makefile修改19行的 ifc –>ifort1 make如果出现 error { gcc:error trying to wxec ‘f951′ :execvp : No such file or directory }这是gcc 的一个BUG ,解决方法是安装gfortran1 sudo apt-get install gfortran然后再重新编译接着编译vasp1 2 3 4 cd ../cd vasp.5.2cp makefile.linux_ifc_P4 makefilevi makefile主要有如下几个改动1 2 3 4 5 6 7 8 9 10 11 12 1row:53 FC=ifc-->FC=ifortrow:129 BLAS= /opt/libs/libgoto/libgoto.so-->#BLAS= /opt/libs/libgoto/libgoto.sorow:132 LAPACK= ../vasp.5.lib/lapack_double.o-->#LAPACK= ../vasp.5.lib/lapack_double.o row:135后添加新行MKLINCLUDE=/opt/intel/mkl/include/MKLPATH=/opt/intel/mkl/lib/intel64/BLASLAPACK=-L/opt/intel/mkl/lib/intel64/ -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -l iomp5 -lpthread#LIB = -L../vasp.5.lib -ldmy \../vasp.5.lib/linpack_double.o $(LAPACK) \$(BLAS)LIB = -I$(MKLINCLUDE) -L$(MKLPATH) \-L../vasp.5.lib -ldmy \$(BLASLAPACK) \../vasp.5.lib/linpack_double.o31 4 1 5 1 6 1 7 1 8 #158 ff3d后加入库的目录(根据安装ff3d的位置来)FFT3D = fft3dfurth.o fft3dlib.o /usr/local/lib/libfftw3.a然后make,如果没有编译错误那应该是编译成功了,会产生一个vasp的可执行文件。
MPICH2配置和使用MPICH2是一个开源的高性能并行计算库,用于构建和管理分布式内存系统。
它是Message Passing Interface(MPI)的一个实现,MPI是一种用于在并行计算环境中进行通信和同步的标准。
MPICH2允许开发者在多个计算机之间发送消息和执行并行任务,以实现高效的并行计算。
本文将介绍如何配置和使用MPICH2来构建一个简单的并行计算应用程序。
一、环境准备2.配置计算机网络在使用MPICH2之前,需要配置计算机网络以便计算机之间进行通信。
可以使用本地网络(例如以太网)或者虚拟网络(例如VMware或VirtualBox)来模拟分布式计算环境。
3.配置环境变量将MPICH2的安装目录添加到系统的PATH环境变量中,以便在命令行中直接调用MPI的相关命令。
二、配置主节点1.选择一个计算机作为主节点,并在该计算机上打开命令行窗口。
2.启动MPD守护进程在命令行窗口中输入以下命令来启动MPD守护进程:```mpd &```3.配置主节点在命令行窗口中输入以下命令来配置主节点:```mpiexec -n 1 mpdtrace -l > mpd.hosts```以上命令将创建一个名为mpd.hosts的配置文件,其中包含了主节点的名称。
三、配置从节点1.选择其他计算机作为从节点,并对每个从节点重复以下步骤。
2.在从节点上打开命令行窗口,并输入以下命令来启动MPD守护进程:```mpd &```3.将从节点加入主节点的计算机网络中在主节点的命令行窗口中,输入以下命令来将从节点添加到主节点的计算机网络中:```mpiexec -n 1 -f mpd.hosts hostname```其中,mpd.hosts是主节点上创建的配置文件。
四、编写并行应用程序1.使用MPI的编程接口使用C、C++、Fortran等编程语言,使用MPI的编程接口来编写并行应用程序。
例如,以下是一个使用C语言和MPI编写的简单并行计算应用程序的示例代码:```c#include <stdio.h>#include <mpi.h>int main(int argc, char* argv[])int rank, size;MPI_Init(&argc, &argv);printf("Hello from node %d of %d\n", rank, size);MPI_Finalize(;return 0;```2.编译并行应用程序在主节点的命令行窗口中,使用适当的编译器来编译并行应用程序。
linux parallel的用法【最新版】目录1.介绍 linux parallel 命令2.详细讲解 linux parallel 命令的用法3.说明 linux parallel 命令的优势和实际应用场景正文一、介绍 linux parallel 命令Linux 平行命令(parallel)是一种强大的工具,它可以在多个 CPU 或计算机上同时运行命令行作业,从而提高作业处理速度。
parallel 命令还可以帮助用户更好地利用系统资源,节省时间和精力。
二、详细讲解 linux parallel 命令的用法1.安装与使用在开始使用 parallel 命令之前,首先需要确保系统中已经安装了该命令。
可以通过以下方式进行安装:```bashsudo apt-get install parallel```安装完成后,即可开始使用 parallel 命令。
基本用法如下:```bashparallel [选项] 命令```其中,【选项】为可选项,【命令】为需要并行执行的命令。
2.常用选项- -j:指定用于并行处理的 CPU 核心数量。
例如,`-j 4`表示使用 4 个 CPU 核心进行并行处理。
- -I:指定每个作业的输入文件。
例如,`-I input1.txt`表示第一个作业的输入文件为 input1.txt,`-I input2.txt`表示第二个作业的输入文件为 input2.txt。
- -O:指定每个作业的输出文件。
例如,`-O output1.txt`表示第一个作业的输出文件为 output1.txt,`-O output2.txt`表示第二个作业的输出文件为 output2.txt。
- -e:指定作业执行结束后,将退出状态码与命令结果一起输出。
例如,`-e "echo "作业完成"; exit $status"`表示作业完成后,输出“作业完成”,并退出状态码。
Linux下MPI并行环境与Eclipse配置全过程简要介绍linux下在Eclipse中对MPI编译环境的搭建。
Linux下MPI并行环境与Eclipse配置全过程。
Linux + mpich2 + Eclipse我是Linux超级新手,文中难免有错误的地方,望指正和多多包容硬件情况:2台主机主机1:主机名:node1 IP:192.168.19.165 操作系统:CentOS 5.2 用户:root 密码:root 主机2:主机名:node2 IP:192.168.19.169 操作系统:CentOS 5.2 用户:root 密码:root (这里的两台主机上的用户名和密码设置成一样的,好像不一样的话将会影响之后mpi程序的执行)为了省事,以下操作都是以root用户进行的1、===================配置host文件=========================在node1和node2上#vi /etc/hosts 打开hosts文件,修改如下:127.0.0.1 localhost.localdomainlocalhost192.168.19.165 node1192.168.19.169 node2(注意127.0.0.1 localhost.localdomainlocalhost一定不能缺,否则将可能导致之后mpiexec运行出错)2、====================设置SSH信任连接====================在node1上生成SSH秘钥对.#ssh-keygen -t rsa yes,一路回车#cat /root/.ssh/id_rsa.pub | ***** “cat - root/.ssh/authorized_keys" 将密钥等信息拷贝至node2中,该过程需要输入node2上root用户的密码#ssh root@node2 登陆node2#exit#ssh root@node2 第二次登陆node2,无需再输入密码了#exit#ssh root@node1 登陆自身一次在node2上执行同样的操作,只不过目标换成node1了#ssh-keygen -t rsa yes,一路回车#cat /root/.ssh/id_rsa.pub | ***** "cat - root/.ssh/authorized_keys" #ssh root@node1#exit#ssh root@node1#exit#ssh root@node2(以上使用的ssh,如果系统安装的ssh2,设置过程将与上有所不同)3、=====================安装mpich2======================在node1和node2上:#tar -zxvf mpich2-1.0.1.tar.gz 解压缩#cd mpich2-1.0.1#./configure --prefix==安装路径,指定安装路径时可以使用#./configure --prefix=???,不带参数时默认安装路径为/usr/loacl,我用的是默认安装路径#make简要介绍linux下在Eclipse中对MPI编译环境的搭建。
MPICH2配置和使用2.配置MPICH2环境变量在安装完成后,需要配置MPICH2的环境变量,以便系统能够找到MPICH2的安装路径。
在Windows系统中,可以在系统属性的高级选项中设置环境变量;在Linux和Mac OS系统中,可以在.bashrc或.profile文件中添加相应的环境变量。
3.编写并行程序使用MPICH2进行并行计算需要编写并行程序。
MPICH2支持多种编程语言,包括C、C++和Fortran。
根据自己的编程语言选择合适的编程接口,例如MPI(消息传递接口)或OpenMP(多线程编程接口)。
根据并行算法和计算模型,设计并实现相应的并行算法。
4.编译并行程序在编写完并行程序后,需要使用编译器将程序源代码编译成可执行文件。
对于C和C++程序,可以使用gcc或g++编译器;对于Fortran程序,可以使用gfortran编译器。
编译时需要链接MPICH2的库文件,以确保程序能够调用MPICH2提供的并行计算功能。
5.运行并行程序在编译完成后,可以使用命令行或脚本来运行并行程序。
运行时需要指定并行程序的执行方式、计算节点的数量和计算节点的地址。
MPICH2提供了一系列命令和选项,用于控制并行程序的执行和调试。
可以通过命令行参数或配置文件来指定这些选项。
6.监测和调试并行程序在并行程序运行过程中,可以使用MPICH2提供的工具来监测和调试程序的运行状态。
MPICH2提供了一系列命令行工具和图形界面工具,用于查看程序的运行日志、性能指标和调试信息。
可以根据需要选择合适的工具,以便及时发现和解决程序中的问题。
简单组建linux集群及并行编译vasp过程我们现在主要是用做高性能计算,下面就是我的集群的组建过程。
集群的硬件环境:做一个集群,节点机器的硬件最好相同,这样计算的效率就会高很多,同时组建集群也相对容易。
以下是我的机器的配置情况(全新,组装)另外要说的是,我们的节点机没有配置显示器,全部工作由服务器完成。
连接就是通过交换机连接,和一般局域网连接相同。
服务器:P4 3.2,内存2 G ,硬盘:160G ,显示器,网卡:2个千兆网卡(money:8千多)节点(10台): P4 3.2,内存:2 G,硬盘:80G ,网卡:千兆网卡(5千多每台)华为24口千兆交换机(4千多)集群软件环境:建一个简单的集群,其实并不难,主要配置nis,nfs,rsh,mpi 就好了。
推荐大家看一本书《微机集群组建、优化和管理》车静光著,机械工业出版社。
我的集群,采用suse9.3,操作系统其实也很重要,这次试了很多操作系统,redhat9,rhas4无法识别网卡,rocks无法安装,如果硬件没有什么问题,建议大家可以试下rocks cluster这个集群系统,rocks集操作系统和集群于一体,安装完成并行环境就已经建立,而且还配备了pbs管理软件,非常简单,容易上手,只是我的硬件不太兼容,本来是想装rocks的,无奈,只有自己动手了。
Suse配置nis,nfs非常简单,因为suse强大的yast,就像window一样方便,只要鼠标轻点几下就ok。
1.Linux系统的安装,suse安装也非常简单,在此不想详细讲太多,主要是在分区的时候要注意,最要自己手动分区,对于服务器来说,最好能分一个独立的分区/home,因为节点机器要通过nfs共享服务器的/home。
注意的是一下几个软件包一定要安装nfs(nfs-utils),nis(ypbind),rsh(rsh-server)。
2.基本的网络配置(通过yast的网卡配置)服务器的:192.168.1.253 hostname:node0 域名:node0.cluster节点机器:192.168.1-192.168.1.10 hostname:node1-node10 域名:node*.cluser掩码:255.255.255.03.服务器的配置3.1.Nfs设置NFS(NetWork File System)是一种使用比较多的网络文件系统,它以它的安装容易,使用方便得到很多Linux爱好者的使用。
花了一天时间搞定debian并行编译vasp4.6,记下心得,供盟友指正也留以后备用。
单机4核,系统:debian linux 6.0 内核 2.6.32-5-686;
编译器:l_cprof_p_11.1.073;
数学库:intel mkl;
并行软件:mpich2-1.4.1p1;
傅里叶变换:libfftw3-dev libfftw3-doc;
1. Install the ' build-essential' 'gfortran' software package
autoinstall the build--essental, which have the # apt-install build-essential !autoinstall the build
command 'make,
make clean, gfortran, f95' and so on.
2. Install the intell Compiler (ifort)
down load the correspnding pakage 'l_cprof_p_11.1.073.tgz'
# tar xzvf l_cprof_p_11.1.073.tgz
5.0 own so the installation but because the debian the gbilc library 'slibstdc++6'
will display 'libstdc++.so.5: didn't find ' and break down,so
# apt-get install libstdc++5
3. seting the envionment variables
# vi ~/.bashrc and input the contents:
GDK_NATIVE_WINDOWS=1
source /opt/intel/Compiler/11.1/073/bin/ia32/ifortvars_ia32. sh
get out and save it;
# vi /etc/profile and add:
source /opt/intel/Compiler/11.1/073/bin/ifortvars.sh ia32
get out and save it.
! this source can run vasp in every usr.
4. Install the MPI parallel environment
Download the mpich2 source package from :
/research/projects/mpich2/downloads/index.php?s=downloads obtain the package 'mpich2-1.4.1p1.tar.gz'
# tar xzvf mpich2-1.4.1p1.tar.gz
# cd mpi*
# env CC="gcc" C++="g++" F90="ifort" FC="ifort"
# ./configure --prefix=/usr/local/mpich2-1.4.1p1/
# make
# make install
# vi ~/.bashrc and add:
PATH=/usr/local/mpich2-1.4.1p1./bin:$PATH
export PATH
save .bashrc and
#source ~/.bashrc
and check the mpi:
# which mpif90
# which mpirun
# which mpiexec
5. Install the fftw library
# aptitude install libfftw3-dev libfftw3-doc
! this can obtain a file 'libfftw3.a' in /usr/lib
6. install vasp
prepeare the vasp.4.6.tar.gz and vasp.4.lib.tar.gz and decompress it with tar xzvf # tar xzvf vasp.4.6.tar.gz
# tar xzvf vasp.4.lib.tar.gz
6.1 Go intothe vasp.4.lib/ and choose the makefile.linux_ifc_P4
# cp makefile.linux_ifc_P4 makefile
# vi makefile and moifiy the line:
line 19: change the 'FC=ifc' to 'FC=ifort'
get out and save.
# make
this will obtain a file 'libdmy.a'
# cd ..
6.2 Go into the vasp.4.6
# cp makefile.linux_ifc_P4 makefile
vi makefile and change
list of change:
line 50, 52 :add # before $FC and FCL
line 80-82: add # before front
line 88: change "FFLAGS = -FR -lowercase -assume byterecl' to "FFLAGS = -FR -lowercase -assume byterecl -I/opt/mpich2-1.4.1p1/include"
line 102: change "OFLAG=-O3 -xW -tpp7" to "OFLAG=-O1"
line 133: add BLAS=-L/opt/intel/Compiler/11.1/073/mkl/lib/32 -lmkl_intel
-lmkl_intel_thread -lmkl_core -lguide -lpthread
line 136: add # before 'BLAS'
line 139: add # before "LAPACK''
line 140: add LAPACK=-L/opt/intel/Compiler/11.1/073/mkl/lib/32 -lmkl_lapack line 201 : old #FC=mpif77
new FC=mpif90
line 202 : old #FCL=$(FC)
new FCL=$(FC)
line 211-214: remove the # before the CPP
line 241: remove the # before FFT3D and chane the last words old '/opt/libs/fftw-3.0.1/lib/libfftw3.a'
new ' /usr/lib/libfftw3.a
line 343 : remove the option '-e95' ;
get out and save it
# make
will generate commond 'vasp'
# cp vasp /usr/bin
# source /etc/profile
can use vasp in every user.
congratulation!。