简单组建linux集群及并行编译vasp过程

简单组建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.0

3.服务器的配置

3.1.Nfs设置

NFS(NetWork File System)是一种使用比较多的网络文件系统,它以它的安装容易,使用方便得到很多Linux爱好者的使用。在使用NFS时,我们把需要共享的分区或者文件按照一定的规范共享出去,想使用这个资源的机器使用mount 命令把共享的资源加载到自己的系统上,然后就可以像使用自己的本地文件系统一样方便。

进入图形yast-network-nfs server,之后开始配置,点击add directory:之后设置两个共享目录, /home,/usr/local/,然后加入共享这两个目录的主机通配符192.168.1.0/255.255.255.0 rw,root_squash, sync。其实配置nfs就是修改/etc/exports 文件,你也可以直接修改成

/home/ 192.168.1.1/255.255.255.0(rw,root_squash,sync)

/usr/local 192.168.1.1/255.255.255.0(rw,root_squash,sync)

Ok,NFS就这样配置好了。

3.2 NIS的配置

NIS(Network Information Service)是实现网络上各Linux机器之间的重要数据分享。这些数据包括用户帐号,密码,组文件,主机文件,等等。在集群中我们要做到单一的镜象就需要NIS的一些服务。比如我们不需要在每个节点上建立各自的用户,而是在master上建立一个用户以后,就同时在其它的节点上能够访问到这个用户。

下面是我的配置过程:

Yast-network-nis server-create nis master server之后填入nis domain name,就是域名,我们填node0.Cluster,之后一些信息一般选默认就可以了,之后要配置hosts:

netmask:255.255.255.255 network:127.0.0.1

netmask:255.255.0.0 network:192.168.0.0

ok,之后完成,进入/var/yp目录,执行make就最后完成nis的配置。注意的是如果你新建用户了,要注意执行make命令更新nis信息。

最后启动网络服务yast-network-start service进入设置,开启shell,login 两项服务。

3.3 rsh的配置

注意修改这两个文件/etc/hosts /etc/hosts.equiv 所建立用户的.rhosts,这个文件和/hosts.equiv文件内容设置相同。

Hosts的文件信息,最后修改成:

127.0.0.1 localhost

192.168.1.253 node0.cluster node0

192.168.1.1 node1.cluster node1

192.168.1.10 node10.cluster node10

Hosts.equiv:

Node0

Node1

Node10

把所有节点的信息输入到这两个文件,等节点机器的配置好后,你就可以用命令rlogin node*,登陆节点机器,这样就可以对节点机器进行操作了。

节点机器的配置

配置nis,nfs的情况基本和服务器类似,只是进入yast的时候选择的是nis

客户端,和nfs客户端即可,这里不再详细说明。之后启动rsh服务,启动过程,编辑/etc/xinetd.d/rsh 将其中内容“disable=yes”改成“disable=no”,重新restart xinetd,激活rsh #chkconfig –level 345 rsh on

#/etc/rc.d/xinetd restart,这样就配置好rsh了,

Lam-mpi的编译安装使用。

(1)到lam-mpi官方网站https://www.360docs.net/doc/7f19321183.html,下载最新的源代码,注意不要下载rpm格式的,要自己编译tar.gz格式的

(2)用“tar zxvf lam-7.1.1.tar.gz”解压

(3)进入该目录配置编译信息(后面编译vasp中的makefile有)

./configure—prefix =/usr/local/lam-7.1.1 ――with CFLAGS=―O ―with –fc=ifort ―― with ―f77flags=―O ―without ―romio

几点说明,前面是配置lam-mpi的安装路径/usr/local/lam-7.1.1,指定的编译器是intel的fortran编译器ifort

(4)然后执行make进行编译,最后执行make install安装,ok成功安装lam -mpi

之后最好把/usr/local/lam-7.1.1/bin加入到搜索路径中,具体做法vi编辑

/etc/profile找到

#make path more comfortable

#if test ………then

PATH=/usr/local/bin:/usr/bin:/usr/X11R6/bin:/usr/local/lam-7.1.1/bin Ok, 这样就设置好路径了,注意的是服务器和节点机器都要设置,因为我们是通过nfs共享lam。之后新建一个文件,lamhosts,输入node0,执行lamboot -lamhosts

如果显示有lam的相关信息,那说明安装成功。

之后顺便说一下lam的使用的几个命令,注意执行lam不能在root下操作

1)新建一个文件,说明要使用并行计算的几个机器,vi lamhosts

加入你要计算的机器,比如node0 node1 node2 …每个机器一行

2) lamboot -v lamhosts 启动lam-mpi

3) mpirun - np * program *为你运行机器的台数,progran为并行程序,在vasp中我就直接运行mpirun -np 10 vasp

4)运行结束,记得wipe -v lamhosts 释放机器,否则节点机器无法关机,我经常忘记执行这个命令,导致关机的时候无法正常关机.。

Ifc8.0并行vasp的编译(参考了本论坛的[转帖]VASP程序的编译(valenhou))感觉vasp安装不同操作系统不同的版本情况有很大不一样,在suse中并行vasp4.6我编译不成功,并行vasp4.5成功,串行4.6也成功,在rhas4.0中串行vasp4.6无法成功编译,vasp4.5则没有问题,大家如果编译不成功的话,可以试试不同版本。下面讲讲我的并行编译。首先要安装好fortran的编译器ifc 这个不详细讲了,重要是要配置好路径,节点机器也是同样问题,ifc可以通过nfs共享,节点机器只要设置好路径就好了。

1.下载数学库libgoto,我的是intel平台我下libgoto_prescott32p-r1.00.so,之后我把他放在vasp上一级目录/usr/local/lib中

2.解压vasp.4.5.tar.gz和vasp.4.lib.tar.gz,注意把vasp安装在usr/local 的共享目录中

Tar zxvf vasp.4.5.tar.gz tar zxvf vasp.4.lib.tar.gz

3. cd vasp.

4.lib

cp makefile.linux_ifc_P4 makefile

vi makefile 把当中的编译命令ifc改为ifort,在8.0中的命令是ifort不是ifc

之后执行make命令得到libdmy.a。

4. cd vasp.4.5

cp makefile.linux_ifc_P4 makefile

vi makefile 把前面第50行的FC=IFC部分用#注释掉,第80-82的cpp部分也注释掉

之后就是136行blas=/usr/local/lib/libgoto_prescott32p-r1.00.so

-lsvml

LAPACK用139行vasp自带的lapack,

把第166行和167行有关FFT3D的行前加上注释号,如下面的

#FFT3D = fft3dfurth.o fft3dlib.o

#FFT3D = fftw3d.o fft3dlib.o /opt/libs/fftw-3.0.1/lib/libfftw3.a 之后把202,203行mpi部分fc=mpif77的#去掉

把212行有关CPP的行前的注释号去掉

把226和227行有关SCA的行,加上注释号

把239和243行有关FFT3D的行,改成如下的内容:

# FFT: fftmpi.o with fft3dlib of Juergen Furthmueller

FFT3D = fftmpi.o fftmpi_map.o fft3dlib.o

# 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

把这些都修改后,保存,再make得到vasp的可执行程序,为了和串行区别之后我把vasp修改为vaspmpi,copy到/bin中去。这样就大功告成了。

作者:wuli8

首先,安装和配置MPICH2

MPICH2是MPI(Message-Passing Interface)的一个应用实现,支持最新的MPI-2接口标准,是用于并行运算的工具,在程序设计语言上支持C/C++和Fortran。最近因为有项目需要的计算量比较大,所以就学习使用了MPICH2,在此根据网络上查询的相关信息和我自己的实际使用经历,分别总结一下MPICH2在windows 和linux下基本的安装使用方法。

软件下载

MPICH2的主页是https://www.360docs.net/doc/7f19321183.html,/mpi/mpich2/index.htm,在这个页面上就能找到各平台最新版本MPICH2的下载地址,其中还包括源代码,我在开始作这个项目的时候最新版本是windows版mpich2-1.0.5p2,源代码mpich2-1.0.5p4。我们的项目是一个CentOS版linux下的程序,所以最终是要在linux下运行的,但是又舍不得windows,于是就打算可能的话就在windows 下写程序,用MinGW加windows版的MPICH2编译调试,通过后再到wmware虚拟机组成的简单集群作测试。所以,为避免不必要的麻烦,就要统一一下windows 和linux下的MPICH2版本,而且不打算用最新的,因此决定用mpich2-1.0.5版。但是,如果在主页上找的话是没有以前旧版本下载的链接的(至少我没找到),只有最新版本的http和ftp下载。这难不住我等有心之人,既然提供了ftp下载,那咱就直接到他ftp服务器上找,最新源代码链接的地址是

ftp://https://www.360docs.net/doc/7f19321183.html,/pub/mpi/mpich2-1.0.5p4.tar.gz,把后面文件名去掉就应该是文件的ftp存放路径,把这个路径直接写到浏览器地址栏里回车(偶用的是FireFox2),就能看到他们服务器上这个目录的文件列表,里面就有1.0.5

版的windows安装文件和源代码包,分别为

ftp://https://www.360docs.net/doc/7f19321183.html,/pub/mpi/mpich2-1.0.5-win32-ia32.msi和

ftp://https://www.360docs.net/doc/7f19321183.html,/pub/mpi/mpich2-1.0.5.tar.gz。msi文件不用多说,这是windows下安装用的,源代码包我们拿来在linux下用。

文档下载

还是主页上就有MPICH2的安装和使用指南文档,主要有三个,分别是User's Guide,Installer's Guide和Windows Developer's Guide,都down下来看看很有用的说。具体开发用的有关MPI标准的文档在MPI论坛的网站里都有,地址是https://www.360docs.net/doc/7f19321183.html,/,我觉得最有用的是MPI-2: Extensions to the Message-Passing Interface。

Windows下的安装配置

我用的参与计算的系统都是WindowsXP Pro SP2,安装的过程没什么太特别的,一般就是默认就可以,只是其中有个地方要填一个什么passphrase,上面提示说所有系统都要用相同的passphrase,照做就是了,在所有参与计算的结点机器上都填一样的passphrase就好了。另外就是需要.net framework 2的运行环境。

默认安装的位置是C:\Program Files\MPICH2,下面的bin目录下是系统配置运行需要的程序,为了方便在控制台使用,可以把C:\Program Files\MPICH2\bin 加到系统的PATH变量中去。Include是头文件,开发的时候用,lib是链接程序的时候用的库文件。Jumpshot下有个pdf的文档,干什么用的可以看看这个文档,我没仔细看,感觉我暂时还用不上。Examples下面是一个样本程序,就是一个用MPI计算圆周率的程序,分别有C,C++和Fortran版,C/C++的应该可以用VS2003以上版本打开。同时,安装程序还会自动向系统注册一个服务MPICH2 Process Manager,我们从控制面板-管理工具-服务里就能找到,这是管理运行MPI程序的一个服务,安装好后就是自动启动的,所以一般也就不用动它。

安装完毕后开始菜单-程序中就添加了一个MPICH2目录,其中就有上面提到的Jumpshot,另外wmpiconfig.exe是用来配置运行环境的,我在网上有找到的说明都是以前旧版本的,和现在的差别比较大,感觉这新版本用的不爽,没搞明白这个程序该咋用,不过好像默认状态下不改什么就能正常使用,所以也就不管它了。wmpiregister.exe则是用来注册用户的,使用MPI之前需要在这个程序里注册一个系统里已经存在的用户,而且这个用户必需拥有管理员权限,拥有运行我们安装了的MPI系统的能力。比如我就在所有参与运算的机器上添加了一个管理员mpi,密码也是mpi。

接下来,我们就可以开始试着运行一下MPI的程序了。就用examples目录下面的那个计算圆周率的程序。如果要多机并行计算的话,就需要在所有机器上的相同位置放置要运行的程序,我的情况就是在所有机器的C盘下建了一个mpiexe的目录,并把cpi.exe拷到所有机器的这个目录下。然后,在其中的某台机器上进入控制台(运行MPI程序其实也可以用开始菜单的MPICH2下的wmpiexec.exe,这是个gui程序,但是我觉得用的不爽,不如直接在控制台下敲命令来得灵活),敲下命令mpiexec -hosts 2 192.168.10.142

192.168.0.23 c:\mpiexe\cpi.exe。mpiexec是安装目录下bin目录里的一个程序,在本文的例子中就是C:\Program Files\MPICH2\bin\mpiexec.exe,因为刚才说了,我把这个地址加入到PATH里了,所以可以在任何地方直接执行,它是用来启动MPI程序的,-hosts参数说明是启动多台机器并行运算,后面跟着的2就是说要在两台机器上执行程序,再后面的就是那两台机器的ip地址,其中第一个就是我启动程序的机器,当然,这个地方也可以写机器名,只要它的机器名能被正常的解析就可以,最后面的就是要运行的程序,也就是刚才提到的所有机器都要在相同位置放置的那个MPI程序。如果只是在本机运行,则命令为mpiexec –n 2 cpi.exe,-n表示是在本地运行,后面的2表示启动的进程数。程序运行后就会提示让你输入一个数字intervals,这个数字影响计算的精度,值越大精度越高,当然计算时间就越长了,然后程序会打印出计算的结果和花费的时间。

比如,我使用单机单进程运行,intervals设为99999999,耗时1.253849秒,而用两台机器双进程则只有0.628954秒,明显快很多,并行运算还是很有效果的。不过,如果我们把intervals改为9999,单机运行只用了0.000279秒,而两台机器却花了0.001548秒,这是因为并行运算过程中,参与运算的机器需要通过网络传递一些消息,如果计算量不大的话,花在了这上面的时间影响会比较明显,因而反不如单机版的来得快。

到现在我们的MPI运行环境就基本安装好了,当然,MPI还有很多其他的命令参数,只不过最常用估计也就这两条了,其他的用得着的时候就去查上面提到的文档,里面有比较详细的介绍。另外,如果按照以上的介绍进行安装配置,在运行多机并行MPI程序的时候却出现连接错误的话,八成是因为网络的问题,看看你的防火墙是不是开着,打开相应的端口,或者干脆关掉防火墙就好了。

Linux下的安装配置和单机运行

Linux下的操作要相对来说麻烦一点,这个麻烦从安装开始,呵呵。我用的系统是CentOS4.4,装在VMware Workstation里的,一共装了两个虚拟机,环境基本上完全一样。为运行MPI在两台虚拟机都创建了一个用户mpi,密码也是mpi,home路径也都是/home/mpi,然后继续都创建了一个目录/home/mpi/mpich2用来作MPI运行环境的安装路径,一个/home/mpi/mpich2/src来存放编译用的源代码。然后将源代码包mpich2-1.0.5.tar.gz下载到两台机器上,都解压缩到

/home/mpi/mpich2/src中,然后到/home/mpi/mpich2/src下,指定安装路径,

./configure -prefix=/home/mpi/mpich2

make

make install

几分钟后安装完毕。需要提一下的是,我曾经试着用root用户来安装MPICH2,但是安装后好重启系统就出了问题,所以建议还是另外建个用户来装吧(ubuntu 干脆就把root给禁了,不让你直接用root)。

安装后/home/mpi/mpich2下多出来一些目录和文件,要比windows多,lib是库文件,include是头文件,bin还是程序文件,所以还是要写到环境变量里,可以用命令export PATH /home/mpi/mpich2/bin:$PATH,但我是用root 用户直接在/etc/profile最后面加了这么一句export

PATH=/home/mpi/mpich2/bin:$PATH,一劳永逸。

MPI应用一个管理器来管理运行MPI程序,这个管理器就是mpd,但是在正式开始运行mpd前还需要一个基于安全考虑的配置文件,.mpd.conf,这个文件是要放在运行程序的用户的home目录下,本例子中就是

/home/mpi/.mpd.conf,而且这个文件只能由这个用户读写,创建文件的命令是,

cd $HOME

touch .mpd.conf

chmod 600 .mpd.conf

然后在文件中写入这么一行,secretword=***,***在参与计算的计算机上必需完全一致。如果是root用户的话,这个文件应该是/etc/mpf.conf。

然后,我们就可以启动mpd管理器了,直接在控制台下使用mpd命令,或者是mpd &,让mpd在后台运行,若关闭启动的mpd,只需要命令mpdallexit 即可。在启动mpd之后就可以运行MPI应用程序了,执行命令与windows下类似,如我们仍然是测试一下examples里的cpi程序可以这样来作,

cd ~/mpich2/examples

mpiexec -n 1 ./ cpi

参数含义同windows下的单机运行命令。另外,启动mpd后还可以用命令mpdtrace来察看当前运行的mpd情况。

SSH配置和多机并行

MPI的多机并行是用mpdboot来管理启动的,是由参与计算的其中一台机器通过mpdboot同时启动其他机器上的mpd管理器并运行相应MPI程序的,所以,需要赋予运行mpdboot的机器执行其他机器上程序的能力。MPICH2支持通过ssh和rsh来做到这一点,其中ssh是默认的,而且其安全性也优于rsh,因此,我在项目中是用的ssh。

首先,我们需要修改所有机器上的/etc/hosts文件,在里面添加上参与计算的机器名和ip地址,比如本文中有两台机器参加的例子里,hosts文件应当为:

127.0.0.1 localhost.localdomain localhost

192.168.10.142 node0

192.168.10.23 node1

这里的意思是说,主机名为node0的机器ip地址为192.168.10.142,主机名为node1的机器ip地址为192.168.10.23。

当然,其实这一步也可以跳过,因为我们也可以在操作过程中直接使用ip地址,只不过那样不太方便。另外就是,有些机器默认情况下第一行可能包括本机的主机名,比如在ip为192.168.10.142的node0上,hosts文件第一行是

127.0.0.1 localhost.localdomain localhost node0

这样可能会使得mpdboot工作不正常,所以还是最好给成上面的那种形式。

第二步是创建ssh密钥,命令行下:

#ssh-keygen -t rsa

-t rsa指的是密钥类型,具体请察看ssh相关资料,这里不多说。这样就在当前用户的home目录下生成了一个.ssh目录,本文中的就是/home/mpi/.ssh。

第三步,将/home/mpi/.ssh下的id_rsa.pub文件拷贝改名为authorized_keys,即

#cp id_rsa.pub authorized_keys

第四步,在其他所有机器上进行以下操作。

#ssh-keygen -t rsa 生成.ssh

文件夹

#scp node0的IP:/home/mpi/.ssh/* ~/.ssh 拷贝node0上的.ssh 文件夹覆盖本地的

第五步,在所有机器上建立与自己和所有其他机器的信任连接。

对每个节点执行:

#ssh node0

#ssh node1

根据提示键入yes即可。然后就可以在不需要用户名密码的情况下通过ssh登陆其他机器了,比如在node0上#ssh node1,

就可以直接进入node1。

接下来,在启动mpdboot的机器上创建一个参与计算的host列表文件,如文件mpd.hosts,每行是一个主机名,创建过程如

#cd ~

#touch mpd.hosts

#vi mpd.hosts

nod0

node1

现在,就可以启动运算集群了

#mpdboot -n 2 -f mpd.hosts

-n表示要启动的机器个数,一般是不大于mpd.hosts文件中的机器数,比如本文中的例子就是两台机器。这样,列表中的机器就会启动其本机上的mpd管理器。

然后,就可以开始运行MPI程序,进行运算了,同windows下一样,程序需要放在每台机器上的相同位置(如果用NFS就只需在一台机器上放置程序,其他机器作映射就行),比如都是程序/home/mpi/mpich2/examples/cpi,在运行mpdboot 的结点机器上:

#mpiexec -n 2 /home/mpi/mpich2/examples/cpi

-n表示要启动的进程个数,一般是不大于mpd.hosts文件中的机器数(或者cpu核心数?偶用的机器就是双核的了,所以单机的时候双进程比单进程效率好很多,但是三进程就不行)。

Mpd在运行过程中,可以通过mpdtrace显示参与计算的机器名,mpdtrace –l则是显示机器名以及其端口

●让计算集群能够良好运转的,不仅有软件、工程师以及电力和散热,更重要

的是,其背后强大的“数据供给”――存储集群。

●Panasas公司是一个结合了软件、网络、存储为一体的,提供Linux集群存

储产品的厂商。目前该公司的产品较多地应用在“Las Alamos”等美国国家实验室和大学等研究机构,而在中国,Panasas已经成功的进入了石油行业。

Victor Perez先生认为目前的存储行业,提供的存储设备可以分为三个层次,第一个层次是以SAN、NAS、DAS为主的低端网络存储;第二个层次则是一些初级的存储集群,这些存储集群是利用一个软件来管理不同的存储池,整个存储集群中,仍会形成两个甚至三个截然不同的存储池。甚至可能NAS 池和SAN 池分别部署在由不同供应商提供的不同存储平台上,而且各自都有自己独特的管理工具。结果,不仅增加了系统的复杂程度和系统管理员的负担,而且增加了费用。第三种,则是以Panasas、Lustre、GPFS为代表的能够建立单一卷的高端存储集群。他表示,作为能够并行管理多个存储池并让用户在应用中只需面对一个单一的卷的存储集群,目前Panasas的存储集群是业内的领先者。

●随着众多行业的自身发展,其企业的应用要求更强的计算和分析海量数据的

能力,从而完成企业业务的需求,目前来看,Cluster集群以其巨大的可扩展性和计算能力,对不断提升的对高性能计算的要求有着天然的“吸引力”。

而在基于包括Windows、Unix、Linux众多系统的集群中,Linux集群因其开放性、较低的价格、良好的性能以及并不输于Unix集群的稳定性,成为了很多企业建立集群时的首选。

●Linux集群在如石油勘探、气象、地震海啸预警等方面大展拳脚的同时,存储却成为了限制Linux集群的发展羁绊。我们知道集群中节点众多,其每个节点及整体的计算量都非常大,所以才能完成企业大规模的高性能计算任务,但是这些计算能力都是要以存储系统能够提供充足的数据为前提的。Victor Perez先生谈到,以现在中国的很多油田为例,他们为了完成计算任务,不断的加入新的节点,虽然提高了整个网络内的集群的计算节点,结果却带来了很大的存储问题,存储系统的I/O带宽难以为继,很多计算节点因为无法获得数据而被迫停止运算或降低运算效率。谈到存储集群,不得不提到目前Linux集群的存储问题,我们知道一个Linux集群有着成百上千的计算节点,这些计算节点通过或独立运算或通过分布式软件进行分布式计算,而在计算过程中获得数据,就成了目前用户集群系统面临的最大问题。如果还是采用传统的连接和存储方式已经不能满足系统的需求。

●目前高性能计算在业界较为流行的解决方案是使用PC集群技术,就是把多

台计算机用高速网络连接,组成一个集群,运行特定的程序进行计算。另外,还需要在服务器集群等大规模并行计算机上运行需要上百万美元的国外商业

专业处理软件来运算这些海量数据。但是,随着集群的不断扩大,软硬件投资、庞大场地、空调制冷、功耗等,都成为制约集群发展的问题。比如,1万个CPU集群,每年仅电费就消耗1000多万,其软硬件投资更是天文数字。

●集群计算机系统成为石油物探数据处理的主流甚至是唯一系统架构类型。从技术发展趋

势来看,异构并行计算系统将成为下一个十年的主要发展方向。

●项目组按照GPU原理及协同并行计算(CPPC)的思路,针对偏移算法中不同阶段的运算

特点,采用不同的软件编写策略,在刘洪研究员偏移算法程序的每一个环节最大限度实现不同处理器协同计算,使得其成功编写了“非对称走时Kirchhoff叠前时间偏移算法”

的协同并行计算(CPPC)软件。

vasp安装

1.安装linux (1) 虚拟机的安装 (2) VMware配置linux,过程如下: a)选择File菜单下的“New Virtual Machine”出现新虚拟机向导后单击“下一步” 选择“Typical”典型安装。 b)再单击“下一步”,在选择操作系统界面的“Guest Operation System”中选择“Linux”,然后单击Version对应的下拉菜单选择具体的Linux版本,此处我选择的是“Red Hat Linux”。 c)单击“下一步”进入安装目录选择界面。该界面上面的文本框是系统的名字,保持默认值即可,下面的文本框需要选择虚拟机操作系统的安装位置。 (2) VMware下linux的安装 a)安装第一张虚拟光盘 (如果直接用光盘安装,可省去此步及后述的第五步。直接将光盘插入物理光驱即 可) 选择VM菜单下的Settings选项,单击比Hardware选项卡下的CD—ROMl,在右边的“connection”单选按钮组中选择“Use ISO image”然后按“OK”。 b)启动虚拟光驱 点击工具栏上的绿色启动按钮或屏幕显示区的start this virtual machine命令,然后 按“ok”。RED HAT会自动进入安装程序的界面。首先询问的是以图形界面还是以文本界面安 装,依据提示按回车选择图形界面安装,接下来询问是否要测试光驱,这里选择不要即可。

方法是:在VMware窗口上单击一下鼠标(实现从windows切换至VMware),再按键盘上的TAB 键,然后按空格。 注意:光标从Windows切换到VMware只需在VMware窗口上单击鼠标左健,而从VMware 回到 Windows,则要按Ctrl十Alt。提醒大家的是,在对虚拟机进行操作前一定要确保光标在 VMware中。 c)设置分区 依提示选择完安装语言、键盘、鼠标、安装类型(与Windows类似,此处不再详述)后进入磁盘 分区界面,此时会出现警告,既然是在虚拟机上进行的操作,此处大胆地选“是”就可以在接下来的窗口中一路默认连按“下一步”后,弹出“你已选择了要在—F列驱动器内删除所有 分区……”的警告,选择“是”进入引导程序装载界面。 d)设置口令 在引导程序装载界面连按“下一步”。设置完系统语言和时区后进入根口令的设置界面,这里的根口令相当于Windows 2000的系统管理员密码。设置好口令后连按“下一步”,等待安 装软件包,直到出现更换光盘的提示。 e) 创建个人用户账号和密码 重启后,系统提示你创建一个个人账号和密码,和Windows中创建一个新用户相当。 f) 其它设置 选择日期和试听声卡后问你是否注册,选择“否,我不想注册我的系统”,接下来问 有无附加安装,在此我们先不安装,直接按“前进”。VMware内系统再次重启。

VASP使用手册

V ASP使用手册 (完善中) 基础(前提)知识 Linux系统文字界面的基础操作 *会进一个特定的目录下,学会建立,删除,移动,复制目录和文件,掌握vim文字处理程序(可以理解成Windows下的文本文档(*.txt),但是功能更强,可以在里面编辑脚本程序,fortran或者C语言程序)建议参见网页https://www.360docs.net/doc/7f19321183.html,/里面的内容非常详尽还有很多例子,看时建议抓住重点看 关于origin(用来画DOS图)和VESTA(用来显示几何结构和电子结构)都非常容易学,会基本操作就可,遇到问题可以上网查查或与同学交流 在Linux系统下计算软件V ASP的使用 一、建好5个输入文件(POSCAR, INCAR, POTCAR, KPOINTS, 一个提交文件) 1,POSCAR 手动建立,vi POSCAR….. 还可以在MS的帮助下建立 2,INCAR 咱们组有公用标准的INCAR文件,进行不同的计算只需改其中的几个参数就可以 了 3,POTCAR 从cluster上的某个目录下面拷贝过来,放到要计算的目录里 如果要算多个元素的体系,使用命令 Eg: cat POTCAR-Ni POTCAR-Pt > POTCAR 4, KPOINTS文件,从别处拷贝一个,修改里面的参数即可 5,提交文件都可以用现成的,在老节点上(node1~node21)使用lsf.sub 新节点上使用yzx8vasp (记不清了,用绿衬底标出) 二、在服务器上编译vasp,一般管理员或别的用户以及编译过了,本平台编译好的目录在 /public/home/zslu/my-soft/vasp.5.2或/public/baoer/vasp.5.2,编译使用的mpi可能不同。 将上面目录下的可执行文件vasp拷贝到用户工作目录下或者在作业提交脚本里通过目录找到可执行文件vasp。 三、提交任务 使用命令 qsub lsf.sub 或者qsub yzx8vasp 之后会自动产生例如的字样,这个8026表示的就是你提交的这个 任务的任务号码 四、查看任务 qstat –a 或qstat -n

RedHat linux7 虚拟化+集群安装精简手册

RedHat linux7 虚拟化+集群安装精简手册 redhatlinux7-虚拟化+集群安装精简手册 RedHat Linux X7虚拟化环境群集安装手册 1、前期准备挂载磁盘 /*通过使ISO便于后续安装操作,ISO映像系统*/ddif=/dev/sr0of=/APP/rh71应在知识库isomount oloop/APP/rh71中形成。ISO/MNT安装 mount-loop/dev/sr0/mnt 看看丢失了什么包裹 /*如果想要是用vgscan指令,系统至少需要安装lvm2包,这个从安装好的系统上查*/[root@jttldb1host5]#rpm-qf/sbin/vgscanlvm2-2.02.83-3.el6.x86_64 通用软件包安装 net-tools(ifconfig等用) Yum-yinstallnautilus-open-terminal(右击可添加终端) 配置yum /*调整*/build file/etc/yum。Com根据具体的安装路径和版本进行重新安装。 d/mycdrom。回购[基础] name=rhel baseurl=file:///mntenabled=1gpgcheck=0[cluster]name=rhel baseurl=file:///mnt/addons/highavailabilityenabled=1gpgcheck=0 配置IP ipaddr=10.88.89.100gateway=10.88.89.1netmask=255.255.255.0onboot=yes 在一张网卡上配置多个IP地址 ifconfigteam0:010.88.89.101netmask255.255.255.0(临时添加一个ip,重启后消失,如果想永久拥有,需要配置ifcfg-ens32:0文件)临时文件取消: ifconfigens32:0down 网卡绑定

VASP5.4编译过程说明

V ASP5.4编译 1.编译器安装:parallel_studio_xe_2011_sp1_update2_intel64.tgz 解压安装即可,./install.sh:安装中使用的激活码为L3FN-2VRGKX7K 安装完设置环境变量: For csh/tcsh: $ source install-dir/bin/compilervars.csh intel64 For bash: $ source install-dir/bin/compilervars.sh intel64 测试是否成功:which icc /opt/intel/composer_xe_2011_sp1.9.293/bin/intel64/icc which ifort /opt/intel/composer_xe_2011_sp1.9.293/bin/intel64/ifort 2.安装openmpi:openmpi-1.4.5.tar.gz 解压,然后输入./configure CC=icc CXX=icpc F77=ifort FC=ifort 指定编译器之后依次执行make,make install 安装完成后,加入如下三个环境变量: export PATH=/usr/local/bin:$PATH export LD_LIBRARY_PATH=/usr/local/lib/openmpi:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH 具体路径找自己的,其中少了第三个路径的话可以编译文件,但是运行编译后的文件会说找不到库函数。建议安装完成之后进入解压文件夹(不是安装目录)下的example文件夹中测试程序,输入make之后会自动编译,完成之后输入mpirun –np 8 hello_f90,如果安装正确,会出现: Hello, world, I am 0 of 8 Hello, world, I am 1 of 8 Hello, world, I am 2 of 8 Hello, world, I am 3 of 8 Hello, world, I am 4 of 8 Hello, world, I am 5 of 8 Hello, world, I am 6 of 8

Materials Studio Linux 集群安装手册(比较详细)

Materials Studio Linux集群安装手册 一、安装Linux操作系统,进行系统配置 一般都建议最小化安装,不用安装图形界面。下面我以red hat enterprise linux 6.0 x86-64在AMD Athlon(tm)64 X2 Dual Core Processor 4400+ 电脑上的安装为例。rhel6.0的安装过程和windows差不多,一路下一步(或Next)基本就ok了,在您要进行哪种类型的安装?你如果是第一次安装,是新硬盘的话可以选使用所有空间,并勾选下边的查看并修改分区布局,然后下一步,你可以看下大概的分区情况,在Red Hat Enterprise Linux 的默认安装是基本服务器安装。如果对Linux不太熟的话,最好选择软件开发工作站(或Software Development Workstation),这样基本上把要用的软件都安装上了,然后再选上下边的现在自定义(或 Customize now),再下一步,然后把所有能选上的软件都选上,再一路下一步。安装完以后,创建一个非root用户,比如创建一个msi用户,root和msi用户密码设的简单一些比较好,别一会儿你自己都忘了,我是root和msi用的一个密码,当然将来你自己真正组建集群用于计算的时候再设置复杂一些,这样课题提高系统的安全性。 gcc glibc-2.3.4-2.43 (32-bit and 64-bit) libgcc-3.4.6-11 (32-bit and 64-bit) libstdc++-33-3.4.6-11 (32-bit and 64-bit) compat-libstdc++-33-3.2.3-47.3 (32-bit) hpmpi-2.03.01.00-20090402r.x86_64 这几个补丁,好像除了hpmpi-2.03.01.00-20090402r.x86_64和 libstdc++-33-3.4.6-11 (32-bit)没有装上之外,别的都给你装好了。这里要说的是,这些补丁每个节点都要装,千万记住。你可以用命令: rpm -qa|grep gcc 查询,当然你要查libstdc++就要用命令:rpm -qa|grep libstdc++了。对于hpmpi-2.03.01.00-20090402r.x86_64和libstdc++-33-3.4.6-11 (32-bit)的安装可以用命令rpm安装,首先切换到这两个软件包所在的目录下,执行下列命令,格式如下: rpm -ivh libstdc++-33-3.4.6-11.i386.rpm rpm -ivh hpmpi-2.03.01.00-20090402r.x86_64.rpm

vasp.5.2编译过程

Vasp.5.2编译 ⒈正常安装ifort编辑器(如vasp.4.6安装过程) 修改环境变量 # .bashrc # User specific aliases and functions # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc #IFORT=/home/usr1/intel/ PATH="/home/usr1/intel/fce/9.0/bin":${PATH} PATH="/home/usr1/intel/idbe/9.0/bin":${PATH} export PATH MANPATH="/home/usr1/intel/fce/9.0/man":${MANPATH} MANPATH="/home/usr1/intel/idbe/9.0/man":${MANPATH} export MANPATH LD_LIBRARY_PATH="/home/usr1/intel/fce/9.0/lib":${LD_LIBRARY_PATH} export LD_LIBRARY_PATH # INTEL_LICENSE_FILE="/home/usr1/intel/licenses":$INTEL_LICENSE_FILE export INTEL_LICENSE_FILE # fi ⒉安装mkl ⑴过程如vasp.4.6的过程 ⑵编译mkl的FFTW函数库:进入到opt/intel/mkl/xxxx/interfaces/fftw3xf(默认安装)的路径,在root权限下在终端键入make libem64t compiler=intel。 加入环境变量

(完整版)vasp常见问题

最近在学vasp,这篇文章是百度文库找到的,看了不错,转载一把。另外附上vasp程序,linux 中下载后无须安装即可使用.单机中可能会出现内存溢出问题,可以放机群上使用. 01、第一原理计算的一些心得 (1)第一性原理其实是包括基于密度泛函的从头算和基于Hartree—Fock自洽计算的从头算,前者以电子密度作为基本变量(霍亨伯格—科洪定理),通过求解Kohn—Sham方程,迭代自洽得到体系的基态电子密度,然后求体系的基态性质;后者则通过自洽求解Hartree—Fock方程,获得体系的波函数,求基态性质;评述:K—S方程的计算水平达到了H—F水平,同时还考虑了电子间的交换关联作用. (2)关于DFT中密度泛函的Functional,其实是交换关联泛函,包括LDA,GGA,杂化泛函等等一般LDA为局域密度近似,在空间某点用均匀电子气密度作为交换关联泛函的唯一变量,多数为参数化的CA—PZ 方案;GGA为广义梯度近似,不仅将电子密度作为交换关联泛函的变量,也考虑了密度的梯度为变量,包括PBE,PW,RPBE等方案,BLYP泛函也属于GGA;此外还有一些杂化泛函,B3LYP等。(3)关于赝势在处理计算体系中原子的电子态时,有两种方法,一种是考虑所有电子,叫做全电子法,比如WIEN2K中的FLAPW 方法(线性缀加平面波);此外还有一种方法是只考虑价电子,而把芯电子和原子核构成离子实放在一起考虑,即赝势法. 一般赝势法是选取一个截断半径,截断半径以内,波函数变化较平滑,和真实的不同,截断半径以外则和真实情况相同,而且赝势法得到的能量本征值和全电子法应该相同. 赝势包括模守恒和超软,模守恒较硬,一般需要较大的截断能,超软势则可以用较小的截断能即可。另外,模守恒势的散射特性和全电子相同,因此一般红外,拉曼等光谱的计算需要用模守恒势。 赝势的测试标准应是赝势与全电子法计算结果的匹配度,而不是赝势与实验结果的匹配度,因为和实验结果的匹配可能是偶然的。(4)关于收敛测试(a)Ecut,也就是截断能,一般情况下,总能相对于不同Ecut做计算,当Ecut增大时总能变化不明显了即可;然而,在需要考虑体系应力时,还需对应力进行收敛测试,而且应力相对于Ecut的收敛要比总能更为苛刻,也就是某个截断能下总能已经收敛了,但应力未必收敛。(b)K—point,即K网格,一般金属需要较大的K网格,采用超晶胞时可以选用相对较小的K网格,但实际上还是要经过测试。(5)关于磁性一般何时考虑自旋呢?举例子,例如BaTiO3中,Ba、Ti和O 分别为+2,+4和—2价,离子全部为各个轨道满壳层的结构,就不必考虑自旋了;对于BaMnO3中,由于Mn+3价时d轨道还有电子,但未满,因此需考虑Mn的自旋,至于Ba和O则不必考虑.其实设定自旋就是给定一个原子磁矩的初始值,只在刚开始计算时作为初始值使用,具体的可参照磁性物理. (6)关于几何优化包括很多种了,比如晶格常数和原子位置同时优化,只优化原子位置,只优化晶格常数,还有晶格常数和原子位置分开优化等等. 在PRL一篇文章中见到过只优化原子位置,晶格常数用实验值的例子(PRL 100, 186402 (2008));也见到过晶格常数先优化,之后固定晶格常数优化原子位置的情况;更多的情况则是Full geometry optimization。 一般情况下,也有不优化几何结构直接计算电子结构的,但是对于缺陷形成能的计算则往往要优化. (7)关于软件软件大致分为基于平面波的软件,如CASTEP、PWSCF和ABINIT等等,计算量大概和体系原子数目的三次方相关;还有基于原子轨道线性组合的软件(LCAO),比如openmx,siesta,dmol等,计算量和体系原子数目相关,一般可模拟较多原子数目的体系。 VASP是使用赝势和平面波基组,进行从头量子力学分子动力学计算的软件包,它基于CASTEP1989版开发。VAMP/VASP中的方法基于有限温度下的局域密度近似(用自由能作为变量)以及对每一MD步骤用有效矩阵对角方案和有效Pulay混合求解瞬时电子基态。这些技术可以避免原始的Car-Parrinello方法存在的一切问题,而后者是基于电子、离子运动方程同时积分的方法.离子和电子的相互作用超缓Vanderbilt赝势(US-PP)或投影扩充波(PAW)方法描述。两种技术都可以相当程度地减少过渡金属或第一行元素的每个原子所必需的平面波数量.力与张量可以用VAMP/VASP很容易地计算,用于把原子衰减到其瞬时基态中。 02、VASP程序的亮点: 1. VASP使用PAW方法或超软赝势,因此基组尺寸非常小,描述体材料一般需要每原子不超过100个平面波,大多数情况下甚至每原子50个平面波就能得到可靠结果。 2。在平面波程序中,某些部分代码的执行是三次标度。在VASP中,三次标度部分的前因子足可忽略,导致关于体系尺寸的高效标度。因此可以在实空间求解势的非局域贡献,并使正交化的次数最少。当体系具有大约2000个电子能带时,三次标度部分与其它部分可比,因此VASP可用于直到4000个价电子的体系。

ubuntu 10 install vasp

ubuntu 10.04 install vasp 序列号VMH9-R8WGNLGW libstdc++ libstdc++5 glibc libgcc 一安装基本编译环境 sudo apt-get install build-essential sudo aptitude install build-essential sudo apt-get install rpm sudo apt-get install gawk 安装libstdc++5 对于64位系统要求安装32位的库这个时候我们在第一步加入 sudo apt-get install ia32-libs 详细过程https://www.360docs.net/doc/7f19321183.html,/en-us/articles/using-intel-compilers-for-linux-with-ubuntu/ 解压32位的libstdc++5 然后cp libstdc++.so.5.0.7 /usr/lib32 cd /usr/lib32 ln -s libstdc++.so.5.0.7 libstdc++.so.5 apt-get install openjdk-6-jre-headless 二. Intel? Fortran Compiler for Linux, 这里我使用的是10.1.018 版; 1. 解压安装(为了清理方便,解压后都在/tmp目录下) user@~$ tar -xvf l_fc_p_10.1.018.tar.gz -C /tmp/ user@~$ cd /tmp/l_fc_p_10.1.018/ 2. 运行安装脚本 user@/tmp/l_fc_p_10.1.018$ sudo ./install.sh sudo vi /etc/profile 在Unmask后面加上source /opt/intel/Compiler/11.1/046/bin/ifortvars.sh ia32 source /opt/intel/Compiler/11.1/046/mkl/tools/environment/mklvars32.sh 输入: 输入“wq” (保存并退出的意思) enter 设置环境变量

简单组建linux集群及并行编译vasp过程

简单组建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.0 3.服务器的配置 3.1.Nfs设置 NFS(NetWork File System)是一种使用比较多的网络文件系统,它以它的安装容易,使用方便得到很多Linux爱好者的使用。在使用NFS时,我们把需要共享的分区或者文件按照一定的规范共享出去,想使用这个资源的机器使用mount 命令把共享的资源加载到自己的系统上,然后就可以像使用自己的本地文件系统一样方便。 进入图形yast-network-nfs server,之后开始配置,点击add directory:之后设置两个共享目录, /home,/usr/local/,然后加入共享这两个目录的主机通配符192.168.1.0/255.255.255.0 rw,root_squash, sync。其实配置nfs就是修改/etc/exports 文件,你也可以直接修改成 /home/ 192.168.1.1/255.255.255.0(rw,root_squash,sync) /usr/local 192.168.1.1/255.255.255.0(rw,root_squash,sync) Ok,NFS就这样配置好了。

vasp5.3安装方法

1. 采用Centos 6.4光盘安装系统。安装系统时,将有如下几个配置可供先择: (1) Desktop, (2) Minimal Desktop, (3)Minimal, (4) Basic Server, (5) Database Server, (6) Web Sever, (7) Virtual Host, (8) Software Development Workstation。任选一个选项即可。选择一个选项后,对系统进行配置。语言配置只选英语。除语言配置外,其余所有配置全部选上。选上所有其它配置之原因,是使系统文件更全面,以减少后续安装软件时由于软件依赖所带来的麻烦。 所有安装软件都在/home 目录下。安装目录可以任意,但在/home目录下容易管理。为使安装软件时拥有最大的系统操作权限,用root 身份安装。 2. 安装Python。版本为Python-2.5.2。在/home 下建Python文件夹,则安装命令如下:# tar –jxvf Python-2.5.2.tar.bz2 ’解压 # cd Python-2.5.2 ’进入解压后的文件目录 # ./configure ’配置文件,不要指定路径,直接覆盖 # make ’编译 # make install ’安装 检测是否安装成功:在任意目录下的命令行输入python,如果出现python的解析器,则表示已正确安装,如未出现,则未正确安装,需重新安装。 安装Python是为了系统能够识别后续将要安装的mpich 编译器。 3. GCC编译器采用Centos 6.4系统自带的即可,不用安装。对于Centos 6.4 系统,安装系统时,除语言配置外,如果选择了其余全部系统配置软件,并且第2步已正确安装Python 的话,安装完Python时,在命令行输入python以检验是否安装成功时,如果Python已安装成功,则可同时显示Python和与之本匹配的GCC版本信息。对于Centos 6.4系统内已预定安装的所有GCC版本中,与Python相匹配的版本为GCC 4.4.7 (Red Hat 4.4.7-3)。 如果在任意目录下的命令行输入rpm –qa | grep gcc,则可列出系统内所有已安装的GCC 的信息。预安装的GCC版本较多。 4. 安装MPI编译器。此步骤极为关键,即使已安装好MPI后,路径配置不正确的话,将会导致后续安装的V ASP不能正常运行。采用mpich-3.2.1版本。首先在/home下建一个mpich 的文件夹,将mpich-3.2.1.tar.gz放入mpich文件夹中。安装时,由于需要配置安装文件的路径,因此,安装后的软件不一事实上在mpich文件夹中,这由安装过程具体配置的路径确定。本安装的mpich文件配置路径为/home/mpichexe,则安装命令如下: # tar -zxvf mpich-3.2.1.tar.gz ’解压 # cd mpich-3.2.1 ’进入解压后的文件目录 # export F90=ifort FC=ifort ’引入环境变量 # ./configure --prefix=/ home/mpichexe / --enable-f90 --enable-f77 ’指定安装路径,并指定可使用mpif90及mpi77编译器红色的是解压目录 # make ’编译 # make install ’安装

Ubuntu18.04编译VASP.5.4.4及20180516补丁

Ubuntu18.04编译VASP.5.4.4及20180516补丁 1.装好Ubuntu18.04后,先安装编译VASP必要的软件: # apt-get install make build-essential g++ gfortran # apt-get install libblas-dev liblapack-dev libopenmpi-dev libscalapack-mpi-dev libfftw3-dev 2.去下载VASP.5.4.4及20180516补丁 tar -xzvf vasp.5.4.4.tar.gz cd vasp.5.4.4 将patch.5.4.4.16052018.gz补丁考到vasp.5.4.4 gunzip patch.5.4.4.16052018.gz patch -p0 < patch.5.4.4.16052018 3.创建make.include,内容如下 # Precompiler options CPP_OPTIONS= -DHOST=\"LinuxGNU\" \ -DMPI -DMPI_BLOCK=8000 -Duse_collective \ -DscaLAPACK -DCACHE_SIZE=4000 \ -Davoidalloc -Duse_bse_te \ -Dtbdyn CPP = gcc -E -P -C -w $*$(FUFFIX) >$*$(SUFFIX) $(CPP_OPTIONS) FC = mpif90 FCL = mpif90 FREE = -ffree-form -ffree-line-length-none FFLAGS = -w OFLAG = -O2 -mtune=native -m64 OFLAG_IN = $(OFLAG) DEBUG = -O0 LIBDIR = /usr/lib/x86_64-linux-gnu

并行64位vasp 5.2安装过程+ ifort +intel MKL+ openmpi

并行64位vasp 5.2安装过程+ ifort +intel MKL+ openmpi 前前后后折腾了半个月,总算把vasp安装到了自己的电脑里。很多内容是从网上百度到的,所以我认为有必要写个总结和大家分享。当然这一个月自己并没有全心投入到安装vasp上边,有空的时候就安装一下试试,没时间就把它扔一边去了。我在这里只讲一种安装方法,自己网上百度了很多安装教程,感觉方法越多对初学者看了越迷茫,不清楚该先干什么,好多安装教程写的顺利也很混乱。 新手的话,首先要补充些linux的基础知识,如果你打算用vasp做研究,估计都多少学了一点linux 了,什么是linux就不介绍了。 下面我以CentOS-6.5- x86-64在Intel(R)Core(TM)i3-2100 CPU@3.10GHz电脑上的安装为例(ThinkPadx200 900元在二手电脑市场淘的)。CentOS的安装过程和windows差不多,一路下一步(或Next)基本就ok了,在您要进行哪种类型的安装?你如果是第一次安装,是新硬盘的话可以选使用所有空间,并勾选下边的查看并修改分区布局,然后下一步,你可以看下大概的分区情况,在CentOS 的默认安装是基本服务器安装。如果对Linux不太熟的话,最好选择软件开发工作站(或Software Development Workstation),这样基本上把要用的软件都安装上了,然后再选上下边的现在自定义(或Customize now),再下一步,然后把所有能选上的软件都选上,再一路下一步。安装完以后,创建一个非root用户,比如创建一个phy用户,root和phy用户密码设的简单一些比较好,别一会儿你自己都忘了,当然将来你自己真正组建集群用于计算的时候再设置复杂一些,这样可以提高系统的安全性。 Linux下解压文件经常用的是:tar zxvf xxxx.tar.gz;(xxxx表示文件或文件夹名)创建一个文件夹用命令:mkdir xxxx;如果创建的是文件,比如创建openmpi.sh文件,就用命令:touch openmpi.sh;编辑文件用vi或vim命令;暗转rpm包一类的软件用如下的各式: rpm -ivh libstdc++-4.4.7-4.el6.i686.rpm 更改文件或文件夹的读取权限,一般是root的权限最大,可以先切换到root下,用命令chmod 777 xxxx 更改;复制命令用cp;移动文件用mv;删除文件用rm –rf xxxx;这些命令都是网上百度的,如果不清楚怎么用或用什么命令可以百度一下你用做的事情,一般都会给出比较满意的答案。 安装好系统后,用root登录,有人建议用非root账户登录,这对初学者可能带来更多的问题,所以初学者最好自己找一台破电脑先折腾,装软件一般不会把电脑折腾坏的,除非你买的电脑有质量问题,那就不好说了。 现在/home下建一个安装软件的文件夹software: cd home/ mkdir software chmod 777 software 然后把从网上下载的vasp.5.2.12.tar.gz vasp.5.lib.tar.gz openmpi-1.8.tar.gz parallel_studio_xe_2013_update2.tgz fftw-3.3.3.tar.gz intel.lic libstdc++-4.4.7-4.el6.i686.rpm都复制到software文件夹下边,这里的intel.lic是parallel_studio_xe_2013_update2.tgz的license,安装 parallel_studio_xe_2013_update2.tgz的时候会用到;libstdc++-4.4.7-4.el6.i686.rpm软件包在CentOS6.5安装盘里可以找到,网上百度也行,默认情况下这个是不安装的。parallel_studio_xe_2013_update2可以到百度网盘下载:https://www.360docs.net/doc/7f19321183.html,/s/1o6sPd8m 。刚试过,连接还可以用,你也可以去官网下载,官网下载免费的需要学校类的邮箱注册一下才可以下载。Intel 的Fortran、MKL、fftw都包含的这个软件包里边了。openmpi我也装了,好像用的是Intel提供的mpi; vasp5.2.12和vasp.5.lib下载可以去小木虫下载,这些软件如果找不到,你可以给我发邮件,我有时间会发给你,不过我不太常上网,估计会比较慢些(binghe5945@https://www.360docs.net/doc/7f19321183.html,)。 一.先安装libstdc++-4.4.7-4.el6.i686.rpm cd /home/softwarew

最简单的 k8s 集群搭建流程

建立Kubernetes(k8s)集裙对于初学者来说可能是一项艰巨的任务,但只要有正确的指导,就不必如此。在本篇文章中,我们将走过建立 最简单的k8s集裙的步骤,为进一步探索和理解奠定基础。 必须了解一个k8s集裙的关键组件。在其核心上,一个k8s集裙由一个控制平面和一个或多个工人节点组成。控制平面管理集裙,并作出 部署应用程序的决定,而工人节点执行这些部署。 为了建立最简单的k8s集裙,我们将使用一个叫做kubeadm的工具,这个工具是用来给一个k8s的控制平面和工人节点设置靴子。 在开始前,至少需要安装3台虚拟机或物理服务器,安装64位Linux 操作系统。服务器最好有2GB的RAM和2个CPU。 现在,让我们潜入一步步的过程,用kubeadm来建立最简单的k8s 集裙。 步骤1:安装嵌入器 在安装kubeadm和其他必要的软件包之前,我们需要在所有服务器 上安装Docker。Docker是使用kubeadm建立k8s集裙的先决条件。 要安装Docker,我们可以使用下列命令: —更新pt包索引并安装包,以便pt使用HTTPS上的寄存器。

使用 apt—get 软件包管理器安装 Docker 的社区版。 —将当前用户添加到嵌入器组中,这样我们就可以不用sudo而使用Docker 。 步骤2:安装Kubeadm、kubelet和kubectl 一旦安装了Docker,我们就可以开始安装kubeadm,kubelet和kubectl。这些是用来与一个k8s集裙交互的三个主要工具。 我们可以使用下列命令安装这些工具: —将Kubernetes仓库添加到服务器的软件包源中。 —使用apt—get软件包管理器安装三个工具。 步骤3:启动控制计划 在所有服务器上安装了Docker,kubeadm,kubelet和kubectl,我们现在可以初始化一个服务器上的控制平面。这将建立k8s集裙的核心组件,包括API服务器,控制器管理器,以及调度器。 我们可以使用以下命令初始化控制飞机: —运行 kubeadm init 与——pod— network— cidr 旗,为 pock 网络分配 IP 位置区域。 步骤4:建立Pod网络 在初始化控制平面后,我们需要建立吊舱网络,这使得k8s集裙内的

vasp编译

(1)准备 1. sudo apt-get install g++ sudo apt-get install build-essential sudo apt-get install gcc-multilib sudo apt-get install libstdc++5 sudo apt-get install openjdk-6-jre-headless sudo apt-get install ia32-libs sudo apt-get install lib32stdc++6 sudo apt-get install libc6-dev-i386 sudo apt-get install g++-multilib sudo apt-get install gfrotran 1 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 ~/.bashrc 4. 编译mpi 首先下载mpich2的安装文件 1 2 3 4 5 6 tar mpich2压缩包 cd 文件夹 ./configure --prefix=安装目录 f77=ifort f90=ifort fc=ifort make make install vi ~/.bashrc 笔者安装目录在/opt/mpich2,也可以放在其他文件夹中,注意执行make install 用户需要有写入权限 在文件最后写入如下代码 1 2 3 4 #mpi2 start PATH=/usr/local/mpich2-1.2.1p1/bin:$PATH export PATH #mpi2 end 再source 一下 1 source ~/.bashrc 5.编译fftw

vasp并行总结安装

一、安装vasp 前的软件要求: ①C++ 编译器用intel 的( l_cprof_p_11.1.07 ) ②Fortra n 编译器用in tel 的ifortll (l_cprof_p_11.1.072 ) ③l_mpi_p_3.2.011 ④MKL有非商业版本可以免费下载,本来要用l_mkl_p_10.2.5.035的,但发现ifortll里 /home/bjwang/intel/Compiler/11.1/072/mkl 就有,这里免装,在.bashrc 里把ifort11 下mkl 的路径包括进去。 附完整安装后的.bashrc source /home/bjwang/intel/Compiler/11.1/072/bin/intel64/ifortvars_intel64.sh---ifort source /home/bjwang/intel/Compiler/11.1/073/bin/intel64/iccvars_intel64.sh ---c++ export LD_LIBRARY_PATH=/home/bjwang/intel/Compiler/11.1/072/ifort/mkl/lib/em64t/:$LD_LIBRA RY_PATH ----- ifort 中包含的mkl source /home/bjwang/intel/impi/3.2.0.011/bin64/mpivars.sh ------- l_mpi 请确认mpi、C++、Fortran 编译器都已正确安装,并设定好相关的PATH 路径和 LD_LIBRARY_PATH 路径,具体参见新浪博客的其它相关内容。 示意如下:

VASP计算效率的讨论

vasp运行效率 vasp运行时间主要消耗在对角化上。运行时间正比于NBANDS * NPLNW2,前者是能带数目,后者是平面波数目;也正比于NELECT3,电子数目三次方。由于NPLNW ∝ ENCUT3/2,故运行时间正比于ENCUT3。IALGO, 选择对角化算法。对于小体系,用IALGO=38(Davidson algorithm);对于大体系用IALGO=48(RMM-DIIS)。可以设置ALGO=very fast or fast. RMM-DIIS并行效率比Davidson algorithm高一些。 NPAR,如果IALGO=38,则NPAR取1。对IALGO=48,影响不是特别大,可选2或4,可选节点数,取值越大,内存占用越多。并行效率总是低于线性叠加效率的,核越多并行效率越低。所以对于一定核(如20),一定作业(如2个),同时算(每个作业10个核)比先后算(每个作业20个核)要更节约时间。LREAL 控制赝势能量的非局域部分如何计算(k空间或实空间)。对k-空间,计算量正比于平面波数目(∝ENCUT3/2*a1*a2*a3)。实空间计算依赖体系大小。小于25个原子,可用K空间。对大体系用 LREAL = Auto or LREAL = .Ture. 。设置KPAR为计算节点数或K点数。KPAR用来设置K点的计算并行度。每个K点用N/KPAR个核来计算,N为总核数。核数很多时(>100),这个参数的影响比较大。 vasp大体系计算的参数设置 1.减小收敛精度的一些参数设置 k点密度减少K点 改变迭代算法(ALGO)大体系,一般ALGO=Very_Fast,IALGO=48 提高高斯展宽(SIGMA增加)SIGMA默认0.2 设置自洽延迟(NELMDL)在一开始计算时初始化的过程中电子非自洽迭代的步数 截断能ENCUT 确定平面波的切断动能。 PREC 确定计算的精度,它决定了ENCUT和ROPT的默认值。默认设为Medium中等的,V ASP4.5以后的版本可设置的值为Normal普通和Accurate精确 2.有两个提高并行效率的参数NPAR和KPAR 3.大体系一般不进行收敛测试了,主要根据小体系的测试值和别人文章的使值来选择比较合适的参数 4.分步优化:先采用低精度进行优化,比如增大离子步长,降低收敛精度,等收敛之后再提高精度进行精优化,这样相对比 较可能会快一些 vasp的并行计算 vasp的并行分为两个方面:一是对平面波系数的并行,一是对能带的并行。对两者都支持的算法是RMM—DIIS迭代矩阵对角

相关主题
相关文档
最新文档