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爱好者的使用。
debianlinux并行编译vasp4.6花了一天时间搞定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# apt-install build-essential !autoinstall the build-essental, which have the 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.tgzbut because the debian 5.0 own the gbilc library 'slibstdc++6' so the installation will display 'libstdc++.so.5: didn't find ' and break down,so# apt-get install libstdc++53. seting the envionment variables# vi ~/.bashrc and input the contents:GDK_NATIVE_WINDOWS=1source /opt/intel/Compiler/11.1/073/bin/ia32/ifortvars_ia32. shget out and save it;# vi /etc/profile and add:source /opt/intel/Compiler/11.1/073/bin/ifortvars.sh ia32get out and save it.! this source can run vasp in every usr.4. Install the MPI parallel environmentDownload the mpich2 source package from :/doc/f513657145.html,/research/proj ects/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:$PATHexport PATHsave .bashrc and#source ~/.bashrcand check the mpi:# which mpif90# which mpirun# which mpiexec5. Install the fftw library# aptitude install libfftw3-dev libfftw3-doc! this can obtain a file 'libfftw3.a' in /usr/lib6. install vaspprepeare 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.gz6.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.# makethis will obtain a file 'libdmy.a'# cd ..6.2 Go into the vasp.4.6# cp makefile.linux_ifc_P4 makefilevi makefile and changelist of change:line 50, 52 :add # before $FC and FCLline 80-82: add # before frontline 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 -lpthreadline 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=mpif77new FC=mpif90line 202 : old #FCL=$(FC)new FCL=$(FC)line 211-214: remove the # before the CPPline 241: remove the # before FFT3D and chane the last words old '/opt/libs/fftw-3.0.1/lib/libfftw3.a'new ' /usr/lib/libfftw3.aline 343 : remove the option '-e95' ; get out and save it# makewill generate commond 'vasp'# cp vasp /usr/bin# source /etc/profilecan use vasp in every user. congratulation!。
Vasp编译三种情况(mkl+ifort,goto+ifort,goto2+ifort)Xuliang 2010-2-7安装编译环境:Cluster: rocks5.2(内核是centos5.2) dell opetix 960 四核酷睿Q960 8G内存,千兆交换机。
CentOS5.2+mkl 10.0.1.014+mpich 1.2.7+ifort 10.1.015三种情况下不同在于选用不同的blas库而已,下面蓝色有标注说明选用goto2+ifort+mpich速度几乎是前面两种的2倍(串行和并行),具体可以看下面的表格测试数据)。
有人测试5.2的说明附录在最后。
1、先编译得到intel的libfftw3xf_intel.a (不知道有没有人对比过不同fft对速度的影响)超级用户:cd /opt/intel/mkl/10.1.0.015/interfaces/fftw3xfmake libem64t compiler=intel2、Mpich 和intel编译器前面已经装好。
3、gotoblas库的编译:GotoBLAS2-1.13.tar.gz GotoBLAS-1.26.tar.gz编译goto2如下:解压后在目录下:make BINARY=64 FC=ifort CC=icc TARGET=CORE2编译goto如下:修改Makefile.rule:C_COMPILER = INTEL F_COMPILER = INTEL BINARY64 = 1然后./ quickbuild.64bit4、vasp编译过程:(红色为修改部分)Install VASP lib 修改如下:.SUFFIXES: .inc .f .F#-----------------------------------------------------------------------# Makefile for Portland Group F90/HPF compiler# the makefile was tested only under Linux on Intel platforms# however it might work on other platforms as well## this release of vasp.4.lib contains lapack v2.0# this can be compiled with pgf90 compiler if the option -O1 is used## Mind: one user reported that he had to copy preclib.F diolib.F# dlexlib.F and drdatab.F to the directory vasp.4.4, compile the files# there and link them directly into vasp# for no obvious reason these files could not be linked from the library##-----------------------------------------------------------------------# C-preprocessorCPP = icc -E -P -C $*.F >$*.fCC=iccFC=ifortCFLAGS = -OFFLAGS = -O3 -align -xT#FFLAGS = -I/opt/intel/mkl/10.0.1.014/include/fftw -FR -lowercase -assume byterec l $(OFLAGS)FREE = -FRDOBJ = preclib.o timing_.o derrf_.o dclock_.o diolib.o dlexlib.o drdatab.o#-----------------------------------------------------------------------# general rules#-----------------------------------------------------------------------libdmy.a: $(DOBJ) lapack_double.o linpack_double.o lapack_atlas.o-rm libdmy.aar vq libdmy.a $(DOBJ)# files which do not require autodoublelapack_min.o: lapack_min.f$(FC) $(FFLAGS) $(NOFREE) -c lapack_min.flapack_double.o: lapack_double.f$(FC) $(FFLAGS) $(NOFREE) -c lapack_double.flapack_single.o: lapack_single.f$(FC) $(FFLAGS) $(NOFREE) -c lapack_single.flapack_atlas.o: lapack_atlas.f$(FC) $(FFLAGS) $(NOFREE) -c lapack_atlas.flinpack_double.o: linpack_double.f$(FC) $(FFLAGS) $(NOFREE) -c linpack_double.flinpack_single.o: linpack_single.f$(FC) $(FFLAGS) $(NOFREE) -c linpack_single.f.c.o:$(CC) $(CFLAGS) -c $*.c.F.o:$(CPP)$(FC) $(FFLAGS) $(FREE) $(INCS) -c $*.f.F.f:$(CPP).f.o:$(FC) $(FFLAGS) $(FREE) $(INCS) -c $*.fCompile VASP parallel general-k verision by mpich.SUFFIXES: .inc .f .F#-----------------------------------------------------------------------# Makefile for Portland Group F90/HPF compiler# the makefile was tested only under Linux on Intel platforms# however it might work on other platforms as well## this release of vasp.4.lib contains lapack v2.0# this can be compiled with pgf90 compiler if the option -O1 is used## Mind: one user reported that he had to copy preclib.F diolib.F# dlexlib.F and drdatab.F to the directory vasp.4.4, compile the files# there and link them directly into vasp# for no obvious reason these files could not be linked from the library##-----------------------------------------------------------------------# C-preprocessorCPP = icc -E -P -C $*.F >$*.fCC=iccFC=ifortCFLAGS = -OFFLAGS = -O3 -align -xT#FFLAGS = -I/opt/intel/mkl/10.0.1.014/include/fftw -FR -lowercase -assume byterecl $(OFLAGS)FREE = -FRDOBJ = preclib.o timing_.o derrf_.o dclock_.o diolib.o dlexlib.o drdatab.o#-----------------------------------------------------------------------# general rules#-----------------------------------------------------------------------libdmy.a: $(DOBJ) lapack_double.o linpack_double.o lapack_atlas.o-rm libdmy.aar vq libdmy.a $(DOBJ)# files which do not require autodoublelapack_min.o: lapack_min.f$(FC) $(FFLAGS) $(NOFREE) -c lapack_min.flapack_double.o: lapack_double.f$(FC) $(FFLAGS) $(NOFREE) -c lapack_double.flapack_single.o: lapack_single.f$(FC) $(FFLAGS) $(NOFREE) -c lapack_single.flapack_atlas.o: lapack_atlas.f$(FC) $(FFLAGS) $(NOFREE) -c lapack_atlas.flinpack_double.o: linpack_double.f$(FC) $(FFLAGS) $(NOFREE) -c linpack_double.flinpack_single.o: linpack_single.f$(FC) $(FFLAGS) $(NOFREE) -c linpack_single.f.c.o:$(CC) $(CFLAGS) -c $*.c.F.o:$(CPP)$(FC) $(FFLAGS) $(FREE) $(INCS) -c $*.f.F.f:$(CPP).f.o:$(FC) $(FFLAGS) $(FREE) $(INCS) -c $*.f[********************.6.34]$lsmakefile.4.6 vasp.4.6 vasp.4.libmakefile.lib vasp.4.6.tar.gz vasp.4.lib.tar.gz[********************.6.34]$moremakefile.4.6.SUFFIXES: .inc .f .f90 .F#-----------------------------------------------------------------------# Makefile for Intel Fortran compiler for P4 systems## The makefile was tested only under Linux on Intel platforms# (Suse 5.3- Suse 9.0)# the followin compiler versions have been tested# 5.0, 6.0, 7.0 and 7.1 (some 8.0 versions seem to fail compiling the code) # presently we recommend version 7.1 or 7.0, since these# releases have been used to compile the present code versions## it might be required to change some of library pathes, since# LINUX installation vary a lot# Hence check ***ALL**** options in this makefile very carefully#-----------------------------------------------------------------------## BLAS must be installed on the machine# there are several options:# 1) very slow but works:# retrieve the lapackage from # and compile the blas routines (BLAS/SRC directory)# please use g77 or f77 for the compilation. When I tried to# use pgf77 or pgf90 for BLAS, V ASP hang up when calling# ZHEEV (however this was with lapack 1.1 now I use lapack 2.0) # 2) most desirable: get an optimized BLAS## the two most reliable packages around are presently:# 3a) Intels own optimised BLAS (PIII, P4, Itanium)# /software/products/mkl/# this is really excellent when you use Intel CPU's## 3b) or obtain the atlas based BLAS routines# /# you certainly need atlas on the Athlon, since the mkl# routines are not optimal on the Athlon.# If you want to use atlas based BLAS, check the lines around LIB= ## 3c) mindblowing fast SSE2 (4 GFlops on P4, 2.53 GHz)# Kazushige Goto's BLAS# /users/kgoto/signup_first.html##-----------------------------------------------------------------------# all CPP processed fortran files have the extension .f90SUFFIX=.f90#-----------------------------------------------------------------------# fortran compiler and linker#-----------------------------------------------------------------------FC=ifort# fortran linkerFCL=$(FC)#-----------------------------------------------------------------------# whereis CPP ?? (I need CPP, can't use gcc with proper options)# that's the location of gcc for SUSE 5.3## CPP_ = /usr/lib/gcc-lib/i486-linux/2.7.2/cpp -P -C## that's probably the right line for some Red Hat distribution:## CPP_ = /usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3/cpp -P -C## SUSE X.X, maybe some Red Hat distributions:CPP_ = ./preprocess <$*.F | /usr/bin/cpp -P -C -traditional >$*$(SUFFIX)#-----------------------------------------------------------------------# possible options for CPP:# NGXhalf charge density reduced in X direction# wNGXhalf gamma point only reduced in X direction# avoidalloc avoid ALLOCA TE if possible# IFC work around some IFC bugs# CACHE_SIZE 1000 for PII,PIII, 5000 for Athlon, 8000-12000 P4# RPROMU_DGEMV use DGEMV instead of DGEMM in RPRO (depends on used BLAS)# RACCMU_DGEMV use DGEMV instead of DGEMM in RACC (depends on used BLAS)#-----------------------------------------------------------------------#CPP = $(CPP_) -DHOST=\"LinuxIFC\" \-Dkind8 -DNGXhalf -DCACHE_SIZE=12000 -DPGF90 -Davoidalloc \# -DRPROMU_DGEMV -DRACCMU_DGEMV#-----------------------------------------------------------------------# general fortran flags (there must a trailing blank on this line)#-----------------------------------------------------------------------FFLAGS = -FR -lowercase -assume byterecl#-----------------------------------------------------------------------# optimization# we have tested whether higher optimisation improves performance# -axK SSE1 optimization, but also generate code executable on all mach.# xK improves performance somewhat on XP, and a is required in order# to run the code on older Athlons as well# -xW SSE2 optimization# -axW SSE2 optimization, but also generate code executable on all mach.# -tpp6 P3 optimization# -tpp7 P4 optimization#-----------------------------------------------------------------------#OFLAG=-O3 -xTOFLAG=-O3 -xT -static-intel -static -mtune=core2 -fp-model strictOFLAG_HIGH = $(OFLAG)OBJ_HIGH =OBJ_NOOPT =DEBUG = -FR -O0INLINE = $(OFLAG)#-----------------------------------------------------------------------# the following lines specify the position of BLAS and LAPACK# on P4, V ASP works fastest with the libgoto library# so that's what I recommend#-----------------------------------------------------------------------# Atlas based libraries#A TLASHOME= $(HOME)/archives/BLAS_OPT/A TLAS/lib/Linux_P4SSE2/#BLAS= -L$(A TLASHOME) -lf77blas -latlas# use specific libraries (default library path might point to other libraries)#BLAS= $(A TLASHOME)/libf77blas.a $(A TLASHOME)/libatlas.a# use the mkl Intel libraries for p4 ()# mkl.5.1# set -DRPROMU_DGEMV -DRACCMU_DGEMV in the CPP lines#BLAS=-L/opt/intel/mkl/lib/32 -lmkl_p4 -lpthread#BLAS= -L/opt/intel/mkl/10.0.1.014/lib/em64t -lmkl_em64t -lmkl_core -lmkl_intel_lp64 -lmkl_intel_thread \-lmkl_sequential -lmkl_solver_lp64 -lmkl_solver_lp64_sequential –lguide(注明:这样是mkl编译)# mkl.5.2 requires also to -lguide library# set -DRPROMU_DGEMV -DRACCMU_DGEMV in the CPP lines# even faster Kazushige Goto's BLAS# /users/kgoto/signup_first.html#BLAS= /opt/libs/libgoto/libgoto_p4_512-r0.6.soBLAS= /home/samuel/soft/lib/GotoBLAS/libgoto_penrynp-r1.26.so (注:这个是goto编译) #BLAS= /home/samuel/soft/lib/GotoBLAS2/libgoto2_core2p-r1.13.so (注:这个是goto2编译)# LAPACK, simplest use vasp.4.lib/lapack_doubleLAPACK= ../vasp.4.lib/lapack_double.o# use atlas optimized part of lapack#LAPACK= ../vasp.4.lib/lapack_atlas.o -llapack -lcblas# use the mkl Intel lapack#LAPACK= -lmkl_lapack#-----------------------------------------------------------------------#LIB = -L../vasp.4.lib -ldmy \../vasp.4.lib/linpack_double.o $(LAPACK) \$(BLAS)# options for linking (for compiler version 6.X, 7.1) nothing is requiredLINK =# compiler version 7.0 generates some vector statments which are located# in the svml library, add the LIBPA TH and the library (just in case)#LINK = -L/opt/intel/compiler70/ia32/lib/ -lsvml#-----------------------------------------------------------------------# fft libraries:# V ASP.4.6 can use fftw.3.0.X ()# since this version is faster on P4 machines, we recommend to use it#-----------------------------------------------------------------------#FFT3D = fft3dfurth.o fft3dlib.o#FFT3D = fftw3d.o fft3dlib.o /opt/libs/fftw-3.0.1/lib/libfftw3.a#===================================================================== ==# MPI section, uncomment the following lines## one comment for users of mpich or lam:# Y ou must *not* compile mpi with g77/f77, because f77/g77# appends *two* underscores to symbols that contain already an# underscore (i.e. MPI_SEND becomes mpi_send__). The pgf90/ifc# compilers however append only one underscore.# Precompiled mpi version will also not work## We found that mpich.1.2.1 and lam-6.5.X to lam-7.0.4 are stable# mpich.1.2.1 was configured with# ./configure -prefix=/usr/local/mpich_nodvdbg -fc="pgf77 -Mx,119,0x200000" \# -f90="pgf90 " \# --without-romio --without-mpe -opt=-O \## lam was configured with the line# ./configure -prefix /opt/libs/lam-7.0.4 --with-cflags=-O -with-fc=ifc \# --with-f77flags=-O --without-romio## please note that you might be able to use a lam or mpich version# compiled with f77/g77, but then you need to add the following# options: -Msecond_underscore (compilation) and -g77libs (linking)## Please do not send me any queries on how to install MPI, I will# certainly not answer them#===================================================================== ==#-----------------------------------------------------------------------# fortran linker for mpi: if you use LAM and compiled it with the options# suggested above, you can use the following line#-----------------------------------------------------------------------FC=/opt/mpich/intel/bin/mpif90FCL=$(FC)#-----------------------------------------------------------------------# additional options for CPP in parallel version (see also above):# NGZhalf charge density reduced in Z direction# wNGZhalf gamma point only reduced in Z direction# scaLAPACK use scaLAPACK (usually slower on 100 Mbit Net)#-----------------------------------------------------------------------CPP = $(CPP_) -DMPI -DHOST=\"LinuxIFC\" -DIFC \-Dkind8 -DCACHE_SIZE=16000 -DPGF90 -Davoidalloc -DNGZhalf \-DMPI_BLOCK=8000 -DRPROMU_DGEMV -DRACCMU_DGEMV#CPP = $(CPP_) -DMPI -DHOST=\"LinuxIFC\" -DIFC \-Dkind8 -DNGZhalf -DCACHE_SIZE=4000 -DPGF90 -Davoidalloc \# -DMPI_BLOCK=500 \## -DRPROMU_DGEMV -DRACCMU_DGEMV#-----------------------------------------------------------------------# location of SCALAPACK# if you do not use SCALAPACK simply uncomment the line SCA#-----------------------------------------------------------------------#BLACS=$(HOME)/archives/SCALAPACK/BLACS/#SCA_=$(HOME)/archives/SCALAPACK/SCALAPACK#SCA= $(SCA_)/libscalapack.a \#$(BLACS)/LIB/blacsF77init_MPI-LINUX-0.a $(BLACS)/LIB/blacs_MPI-LINUX-0.a $(BLACS)/LIB/blacsF77init_MPI-LINUX-0.aSCA=#-----------------------------------------------------------------------# libraries for mpi#-----------------------------------------------------------------------LIB = -L../vasp.4.lib -ldmy \../vasp.4.lib/linpack_double.o $(LAPACK) \-L/opt/intel/mkl/10.0.1.014/lib/em64t \-lmkl_em64t -lguide -lpthread -lm \$(BLAS)# $(SCA) $(BLAS)# FFT: fftmpi.o with fft3dlib of Juergen FurthmuellerFFT3D = fftmpi.o fftmpi_map.o fft3dlib.o \/opt/intel/mkl/10.0.1.014/lib/em64t/libfftw3xf_intel.a# fftw.3.0.1 is slighly faster and should be used if available#FFT3D = fftmpiw.o fftmpi_map.o fft3dlib.o /opt/libs/fftw-3.0.1/lib/libfftw3.a#-----------------------------------------------------------------------# general rules and compile lines#-----------------------------------------------------------------------BASIC= symmetry.o symlib.o lattlib.o random.oSOURCE= base.o mpi.o smart_allocate.o xml.o \constant.o jacobi.o main_mpi.o scala.o \asa.o lattice.o poscar.o ini.o setex.o radial.o \pseudo.o mgrid.o mkpoints.o wave.o wave_mpi.o $(BASIC) \nonl.o nonlr.o dfast.o choleski2.o \mix.o charge.o xcgrad.o xcspin.o potex1.o potex2.o \metagga.o constrmag.o pot.o cl_shift.o force.o dos.o elf.o \tet.o hamil.o steep.o \chain.o dyna.o relativistic.o LDApU.o sphpro.o paw.o us.o \ebs.o wavpre.o wavpre_noio.o broyden.o \dynbr.o rmm-diis.o reader.o writer.o tutor.o xml_writer.o \brent.o stufak.o fileio.o opergrid.o stepver.o \dipol.o xclib.o chgloc.o subrot.o optreal.o davidson.o \edtest.o electron.o shm.o pardens.o paircorrection.o \optics.o constr_cell_relax.o stm.o finite_diff.o \elpol.o setlocalpp.oINC=vasp: $(SOURCE) $(FFT3D) $(INC) main.orm -f vasp$(FCL) -o vasp $(LINK) main.o $(SOURCE) $(FFT3D) $(LIB) makeparam: $(SOURCE) $(FFT3D) makeparam.o main.F $(INC)$(FCL) -o makeparam $(LINK) makeparam.o $(SOURCE) $(FFT3D) $(LIB) zgemmtest: zgemmtest.o base.o random.o $(INC)$(FCL) -o zgemmtest $(LINK) zgemmtest.o random.o base.o $(LIB) dgemmtest: dgemmtest.o base.o random.o $(INC)$(FCL) -o dgemmtest $(LINK) dgemmtest.o random.o base.o $(LIB)ffttest: base.o smart_allocate.o mpi.o mgrid.o random.o ffttest.o $(FFT3D) $(INC) $(FCL) -o ffttest $(LINK) ffttest.o mpi.o mgrid.o random.o smart_allocate.o base.o $(FFT3D) $(LIB)kpoints: $(SOURCE) $(FFT3D) makekpoints.o main.F $(INC)$(FCL) -o kpoints $(LINK) makekpoints.o $(SOURCE) $(FFT3D) $(LIB)clean:-rm -f *.g *.f *.o *.L *.mod ; touch *.Fmain.o: main$(SUFFIX)$(FC) $(FFLAGS)$(DEBUG) $(INCS) -c main$(SUFFIX)xcgrad.o: xcgrad$(SUFFIX)$(FC) $(FFLAGS) $(INLINE) $(INCS) -c xcgrad$(SUFFIX)xcspin.o: xcspin$(SUFFIX)$(FC) $(FFLAGS) $(INLINE) $(INCS) -c xcspin$(SUFFIX)makeparam.o: makeparam$(SUFFIX)$(FC) $(FFLAGS)$(DEBUG) $(INCS) -c makeparam$(SUFFIX)makeparam$(SUFFIX): makeparam.F main.F## MIND: I do not have a full dependency list for the include# and MODULES: here are only the minimal basic dependencies# if one strucuture is changed then touch_dep must be called# with the corresponding name of the structure#base.o: base.inc base.Fmgrid.o: mgrid.inc mgrid.Fconstant.o: constant.inc constant.Flattice.o: lattice.inc lattice.Fsetex.o: setexm.inc setex.Fpseudo.o: pseudo.inc pseudo.Fposcar.o: poscar.inc poscar.Fmkpoints.o: mkpoints.inc mkpoints.Fwave.o: wave.inc wave.Fnonl.o: nonl.inc nonl.Fnonlr.o: nonlr.inc nonlr.F$(OBJ_HIGH):$(CPP)$(FC) $(FFLAGS) $(OFLAG_HIGH) $(INCS) -c $*$(SUFFIX)$(OBJ_NOOPT):$(CPP)$(FC) $(FFLAGS) $(INCS) -c $*$(SUFFIX)fft3dlib_f77.o: fft3dlib_f77.F$(CPP)$(F77) $(FFLAGS_F77) -c $*$(SUFFIX).F.o:$(CPP)$(FC) $(FFLAGS) $(OFLAG) $(INCS) -c $*$(SUFFIX).F$(SUFFIX):$(CPP)$(SUFFIX).o:$(FC) $(FFLAGS) $(OFLAG) $(INCS) -c $*$(SUFFIX)# special rules#-----------------------------------------------------------------------# these special rules are cummulative (that is once failed# in one compiler version, stays in the list forever)# -tpp5|6|7 P, PII-PIII, PIV# -xW use SIMD (does not pay of on PII, since fft3d uses double prec)# all other options do no affect the code performance since -O1 is used#-----------------------------------------------------------------------fft3dlib.o : fft3dlib.F$(CPP)$(FC) -FR -lowercase -O1 (注明:这里去掉了-tpp7)-xT -prefetch- -unroll0 (注明:这里去掉了-e95 )-vec_report3 -c $*$(SUFFIX)fft3dfurth.o : fft3dfurth.F$(CPP)$(FC) -FR -lowercase -O1 -c $*$(SUFFIX)radial.o : radial.F$(CPP)$(FC) -FR -lowercase -O1 -c $*$(SUFFIX)symlib.o : symlib.F$(CPP)$(FC) -FR -lowercase -O1 -c $*$(SUFFIX)symmetry.o : symmetry.F$(CPP)$(FC) -FR -lowercase -O1 -c $*$(SUFFIX)dynbr.o : dynbr.F$(CPP)$(FC) -FR -lowercase -O1 -c $*$(SUFFIX)broyden.o : broyden.F$(CPP)$(FC) -FR -lowercase -O2 -c $*$(SUFFIX)us.o : us.F$(CPP)$(FC) -FR -lowercase -O1 -c $*$(SUFFIX)wave.o : wave.F$(CPP)$(FC) -FR -lowercase -O0 -c $*$(SUFFIX)LDApU.o : LDApU.F$(CPP)$(FC) -FR -lowercase -O2 -c $*$(SUFFIX) V asp编译测试:CentOS5.2+mkl 10.1.0.015+openmpi 1.3.2+ifort 11.0.074编译vasp5.2安装编译环境:Cluster简况:xeon 5420, 12G ram, 千兆交换机。
(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的可执行文件。
Linux下多机mpi并行配置一.mpich安装步骤#./configure –prefix=/usr/local/mpich-gcc –rsh=/usr/bin/ssh#make#make install其中prefix后面的是安装的目录,安装完成后就可以看到。
(卸载mpi是进入到/usr/local/mpich-gcc/sbin/mpiuninstall.)如果没有出错,那么说明安装成功,进入/etc,编辑profile文件,添加如下内容:export MPI_ROOT=/usr/local/mpich-gccexport PATH=$MPI_ROOT/bin:$PATHexport MAN PATH=$MPI_ROOT/man:$MANPATH保存退出,执行source profile使她生效。
二.多机环境配置为了简单起见,这里所有的计算机节点都建了一个相同的用户及密码1.安装ssh sshd 保证相互之间可以互联在每台机子下进行如下操作:cd ~ ?//进入home目录ssh-keygen -b 1024 -t dsa 这一步是ssh这一方生成了一对密钥,公钥必须放到sshd的那一方,ssh的这一方才能正常访问sshd那一方。
cd .sshcp id_dsa.pub pub_keycp pub_key /home/duanple将pub_key 也就是*.pub的文件内容拷贝到服务端也就是sshd的那一方的$HOME/.ssh目录下的author ized_keys文件(它保存了一系列的公钥,新公钥只需要加在该文件的末尾新一行即可)内chmod 644 authorized_keys2.打开/etc/hosts文件,加入计算机信息,前面是IP,后面是主机名字,如同这样:222.195.150.203 node2,保存退出。
3.权限设置设定/etc/hosts.equiv创建/etc/mpd.conf (root用户)普通用户需要创建$HOME/.mpd.conf,之后设置secretword=修改hostname或者ip,一些涉及到的需要同时更新的文件:/etc/hostname/etc/hosts/etc/hosts.equiv 负责放权的文件说明:为了能够在多个不同的机器上运行MPI程序,首先需要其它机器对启动MPI程序的机器放权,即允许启动MPI程序的机器访问其它机器。
debian使用方法Debian是一个流行的Linux发行版,提供了强大的文件管理、软件包管理和系统配置功能。
以下是Debian使用方法的简要概述:1. 文件管理:Debian提供了一个强大的文件管理器,您可以使用它来创建、复制、移动和删除文件。
您还可以使用命令行工具进行文件操作,例如使用“cd”命令切换目录,使用“ls”命令查看目录内容等。
2. 软件包管理:Debian使用APT(Advanced Package Tool)作为软件包管理系统。
通过使用APT命令,您可以轻松安装、更新和卸载软件包。
使用“apt-get install package_name”命令安装软件包,使用“apt-get update”命令更新软件包列表等。
3. 系统配置:Debian允许您对系统进行各种配置和定制。
您可以修改网络设置、安装新的驱动程序、设置防火墙等。
了解Debian的配置文件结构和常用命令将帮助您更好地管理和优化系统。
4. 软件源管理:在/etc/apt/文件中写入deb-src的记录,以便访问软件源。
使用“apt-get build-dep”命令安装构建依赖项,然后尝试编译源码。
5. 源码包管理:如果您手工下载了程序的源码包,其中包含.、.dsc以及.等文件,可以使用dpkg-source -x命令解压源码包。
同时,您可以在源码树的主目录下使用dpkg-buildpackage命令从Debian源码树建立一个deb包。
以上是Debian使用方法的一些基本步骤,但请注意,具体操作可能因您的系统版本和配置而有所不同。
在进行任何系统配置或软件安装之前,建议仔细阅读相关文档或咨询专业人士以获得更准确和具体的信息。
intel fortran9.1.036 安装过程Intel Fortran Compiler这个编译器性能极佳,它在x86 和Itanium 级Linux 主机上会有光明的未来,因为Intel 的编译器组整合了曾在DEC、Compaq 和HP 确立声誉的工程团队。
它的发行版有Windows和Linux两种,这2种都分别提供Non-Commercial版免费下载,但不提供技术支持。
而性能则与商业版相同。
其中Windows版需要Visual Studio的支持才可以使用。
以下是整个的安装过程。
1、登陆intel网站下载Non-commercial版。
登陆/software/products/global/eval.htm ,选择Intel? Fortran Compiler for Linux* 下的第二项Non-Commercial Unsupported Version 点击进入。
或者直接登陆/software/products/compilers/flin/noncom.htm,简单的看一下说明,整个下载过程需要好几步,可以慢慢来进行,首先点击“Continue”按钮进入下一页;第二页有个调查表,填好之后进入下一页;第二页有个调查表,填好之后进入下一页;第三页是软件协议页面,可以粗略看一下,选择“Accept”进入下一页;第四页是注册页面,其中Email栏一定要填好,填写之后选择“Submit”进入下一页;这是最后一页,说明已经注册成功,intel会给你发一封电子邮件,并且其中包含一个协议附件。
剩下的工作是收取邮件,然后根据邮件中提供的地址下载软件即可。
我这里下载的软件是l_fc_p_9.1.036.tar.gz,大约130M,另外把邮件中的附件另存在刚才下载的软件的同一目录下,我这里的文件名是l_for_******.lic,每个人的文件名可能不同,它是一个协议文件。
下来以root用户进行以下的安装工作,假设前面的2个文件存放在/usr/src/intel目录下,这也是我们的工作目录:2、解压安装文件tar xzvf l_fc_p_9.1.036.tar.gz3、安装并指定协议,我们这里编译器的是安装在/opt/intel_fc_91目录下,协议则在该目录下的*s 文件夹中。
linux下安装intel编译器及mpich2的总结linux下安装intel编译器及mpich2的总结 2008年1.fortran编译器从intel网站可以下载免费的fortran,c++等编译器,注意是非商业免费版;AccountID=&ProgramID=&RequestDt=&rm=NCOM&lang= 用可用的邮箱注册,会分配一个序列号,保存此序列号,安装产品时将需要使用它: 我的序列号: NF83-7G8J9JLM联网状态下只需输入序列号就可安装,否则需要使用发送到注册邮箱附件的.lic文件选择要下载的文件我下载了C++和fortran的编译器l_cc_p_10.1.018.tar.gzl_fc_p_10.1.018.tar.gz存放在/usr/src目录下打开终端,进入当前文件夹[root@localhost ~]# cd /usr/src解压[root@localhost src]# tar zxvf l_cc_p_10.1.018.tar.gz[root@localhost src]# tar zxvf l_fc_p_10.1.018.tar.gzIntel 10.x 编译器为了保证和基于 GCC 3.2 的系统兼容, 需要使用标准 C++ 库 /usr/lib/libstdc++.so.5, 但是很多比较新的 Linux 发行版本中开始使用GCC 3.4, 并且提供了全新的标准 C++ 库 /usr/lib/libstdc++.so.6. 所以安装前需先装 compat-libstdc++ rpm包,它包含了 /usr/lib/libstdc++.so.5 库. 否则会提示缺少libstdc++.so.5最简单的方法[root@localhost src]# yum install libstdc++.so.5 按照提示安装即可,也可以自己在网上下载。
简单组建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!。