| 订阅 | 在线投稿
分享
 
 
 

Linux操作系统关于集群的安装与并行计算

来源:互联网  宽屏版  评论
2008-06-01 03:11:10

1.linux安装

安装过程就不多说了。需要注意的是安装时,如果机群不与外界联网则可以不考虑安全

方面的因素而把rsh选为可信赖的服务,注意安装相应的软件包;如果还要与外界保持联

网,出于安全需要应把ssh选为可信赖的服务。安装以后,应该保证各节点之间能够用s

sh相互登录。每个节点的sshd都应该能正常提供服务。主机名:node1...noden (我所构

建的系统n=2)

2.创建NFS服务

在服务器节点public目录下建立mpi目录,并将其配置成NFS服务器,在/etc/exports文

件中加入一行:

/public/mpi node1(rw) node2(rw)

在客户端节点的/etc/fstab文件中增加一行:

sever :/pubilc/mpi nfs rw , bg , soft 0 0

将/public/mpi这个目录从服务器节点输出,并装载在各客户端,从而便于在各节点间分

发任务

3.修改/etc/hosts文件,将所有节点名称极其ip地址填入。例如:

127.0.0.1localhost.localdomain localhost

192.168.1.1node1

192.168.1.2node2

…………………….

每个节点都进行类似的配置。这样做的目的是使节点之间能够通过node1 ... noden的名

称相互访问。你可以通过ping noden 或 ssh noden进行测试。

4.修改(或创建)/etc/hosts.equiv文件

将所有你允许访问本机进行mpi计算的机器名填入,一行一个机器名。这一步是为了使节

点对其它的节点放权。

例如,我的node1是我用于启动mpi集群计算的机器,其他的节点是参与计算者,在node

1的/etc/hosts.equiv文件是这样的:

node1 #给自己放权,这样在只有一台机器时也可以模拟并行计算环境

node2

.....

noden

在node2...noden的/etc/hosts.equiv文件:

node1 #对node1放权

node2

......

noden

5.修改~/.bash_profile文件

首先决定一个用于启动集群计算的用户名,不提倡使用root进行集群计算。这里在每个

节点上建立新用户chief,他们的主目录都是/home/chief,必须采用同样的密码,将来

的计算程序必须放在相同的路径上。譬如你的程序为:fpi.f和a.out,则必须把a.out放

在同样的路境内,比如~/mpirun/a.out,每个节点都是如此。 修改~/.bash_profile文

件,主要是加入下列几行脚本:

export PATH=$PATH:/usr/local/mpich/bin

export MPI_USEP4SSPORT=yes

export MPI_P4SSPORT=22

export P4_RSHCOMMAND=rsh 或ssh

这里我们预定了将来mpich的运行环境安装在目录/usr/local/mpich下面。其余的三个变

量是用来通知mpi运行环境采用rsh(或ssh)来作为远程shell。linux的运行环境到此就配

置完毕了。

6.配置rsh 或ssh

对于采用rsh来作为远程shell运行MPI的用户只要保证在各个节点上都具有相同的用户,

并把这一用户的密码设为空密码就可以运行了。

若采用ssh作为远程shell则按如下配置:以你设定的用于启动mpi计算的用户登录,运行

ssh-keygen,这将生成一个私有/公开密钥对,分别存放在~/.ssh/identity和~/.ssh/i

dentity.pub文件内。然后进行访问授权,运行:

cp ~/.ssh/identity.pub ~/.ssh/authorized_keys

chmod go-rwx ~/.ssh/authorized_keys

ssh-agent $SHELL

ssh-add

在每个节点重复一遍。试着在某一节点上登录其它节点,ssh noden,则在.ssh/下生成

一个known_hosts2文件,里面放着访问该主机的密钥,把所有密钥收集起来,在各个节

点上作同样的拷贝。这样做的目的是使各节点相互之间访问无需输入密码。

7.开启各项必需的服务

如果是以根用户root 登陆系统的则可以用ntsysv命令启动ntsysv实用程序。ntsysv 实

用程序允许使用简单的菜单界面启动或关闭各种运行等级的服务。在其中我们选择开启

rsh ,rlogin,telnet等。也可以关闭一些服务以加快启动速度如sendmail。

如果是使用su命令转为root用户的则很可能运行ntsysv并不出现ntsysvs实用程序。此时

可以直接去修改/etc/xinetd.d下的rlogin, rsh ,telenet的设置。用vi编辑器打开xin

etd.d:

vi /etc/xinetd.d

则可看到如下所示的配置文件:

关于rsh的设置如下

# default: off

# description: The rshd server is the server for the rcmd(3) routine and, # consequently, for the rsh(1) program. The server provides # remote execution facilities with authentication based on # privileged port numbers from trusted hosts.

service shell

{

disable = yes

socket_type = stream

wait = no

user = root

log_on_success += USERID

log_on_failure += USERID

server = /usr/sbin/in.rshd

}

关于rlogin的设置如下

# default: off

# description: rlogind is the server for the rlogin(1) program. The server

# provides a remote login facility with authentication based on # privileged port numbers from trusted hosts.

service login

{

disable = yes

socket_type = stream

wait = no

user = root

log_on_success += USERID

log_on_failure += USERID

server = /usr/sbin/in.rlogind

}

关于telnet的设置如下

# default: off

# description: The telnet server serves telnet sessions; it uses # unencrypted username/password pairs for authentication.

service telnet

{

disable = yes

flags = REUSE

socket_type = stream

wait = no

user = root

server = /usr/sbin/in.telnetd

log_on_failure += USERID

}

所有这些服务在安装完系统之后都是默认为禁用的,要进行修改来打开这些服务。如要

通过修改启动telenet则就需要改disable = yes为disable = no。对于其他的服务的启

动的修改与之相同。若启动这些服务则只需要简单执行:

#/etc/rc.d/init.d/xinetd restart

或重起计算机就可以使所作的更改生效。

8.在服务器节点编译、安装Fortran90编译器

先将Fortran90(我用的是Intel的)编译器拷贝至/tmp下,然后用tar xvfz fortran90

.tar.gzj解压缩。运行

./install

选择你所要安装的类型,如果你的机器是基于IA-32,就选择1。如果你的机器是基于It

anium(TM)-based system就选择2。如果要停止安装,就选择X。选择过之后安回车进入

下一步,此时会要求你选择 :

1.Intel(R) Fortran Complier for 32-bit Applications,Version 6.0 build 020312Z

2.2.Linux Applicationdebugger for 32-bit Applications,Version 6.0 buid 20020

x. Exit

按顺序选择1和2,最后选择X 完成安装并退出。在选择完1之后会要求你看版权声明,

输入Accept继续安装。默认的安装路径为/opt/intel,选择默认路径按Enter继续。选2之

后的情形与1相同。如果不注册可以用90天。

9.在服务器节点编译、安装mpich 1.2.3

将mpich 1.2.4:ftp://ftp.mcs.anl.gov/pub/mpi/mpich.tar.gz。拷贝到一个临时目录

下,放在/tmp下了。用root用户登录进行编译安装。

(1). 对mpich的安装进行预处理:

首先,用tar xvfz mpich.tar.gz解压。生成mpich-1.2.3目录。切换到mpich-1.2.3目录

。运行预处理:

./configure --prefix=/usr/local/mpi --对应于用rsh进行远程登录的系统

./configure --prefix=/usr/local/mpi -rsh=ssh --对应于用ssh进行远程登录的

系统

这里我们通知编译系统mpich的安装位置为/usr/local/mpich,运行环境的远程shell为

rsh或ssh。

(2).编译:

make

运行此命令后mpich软件包会自动编译形成MPI系统的函数库,需要数分钟的时间,根据

不同的机器可以略有不同。

(3).安装:

make install

运行此命令可以将MPI软件包安装到由./configure --prefix选项指定MPICH安装目录即

/usr/local/mpi

修改文件/usr/local/mpi/share/util/machines/machines.LINUX。如下:

node1

ndoe2

......

ndoen

这一步是通知mpich运行环境都有那些节点可供集群计算。每个节点都这样输入一遍。

(4).测试安装是否正确

在/usr/local/mpi/examples/basics下编译cpi.c:

make cpi

用命令行:

../../bin/mpirun -np 2 cp

运行。将会获得如下信息。

Processes 0 on node1

Processes 1 on node2

……..………………..

如果能正常运行即证明mpich软件包安装完全成功。

 
1.linux安装 安装过程就不多说了。需要注意的是安装时,如果机群不与外界联网则可以不考虑安全 方面的因素而把rsh选为可信赖的服务,注意安装相应的软件包;如果还要与外界保持联 网,出于安全需要应把ssh选为可信赖的服务。安装以后,应该保证各节点之间能够用s sh相互登录。每个节点的sshd都应该能正常提供服务。主机名:node1...noden (我所构 建的系统n=2) 2.创建NFS服务 在服务器节点public目录下建立mpi目录,并将其配置成NFS服务器,在/etc/exports文 件中加入一行: /public/mpi node1(rw) node2(rw) 在客户端节点的/etc/fstab文件中增加一行: sever :/pubilc/mpi nfs rw , bg , soft 0 0 将/public/mpi这个目录从服务器节点输出,并装载在各客户端,从而便于在各节点间分 发任务 3.修改/etc/hosts文件,将所有节点名称极其ip地址填入。例如: 127.0.0.1 localhost.localdomain localhost 192.168.1.1 node1 192.168.1.2 node2 ……………………. 每个节点都进行类似的配置。这样做的目的是使节点之间能够通过node1 ... noden的名 称相互访问。你可以通过ping noden 或 ssh noden进行测试。 4.修改(或创建)/etc/hosts.equiv文件 将所有你允许访问本机进行mpi计算的机器名填入,一行一个机器名。这一步是为了使节 点对其它的节点放权。 例如,我的node1是我用于启动mpi集群计算的机器,其他的节点是参与计算者,在node 1的/etc/hosts.equiv文件是这样的: node1 #给自己放权,这样在只有一台机器时也可以模拟并行计算环境 node2 ..... noden 在node2...noden的/etc/hosts.equiv文件: node1 #对node1放权 node2 ...... noden 5.修改~/.bash_profile文件 首先决定一个用于启动集群计算的用户名,不提倡使用root进行集群计算。这里在每个 节点上建立新用户chief,他们的主目录都是/home/chief,必须采用同样的密码,将来 的计算程序必须放在相同的路径上。譬如你的程序为:fpi.f和a.out,则必须把a.out放 在同样的路境内,比如~/mpirun/a.out,每个节点都是如此。 修改~/.bash_profile文 件,主要是加入下列几行脚本: export PATH=$PATH:/usr/local/mpich/bin export MPI_USEP4SSPORT=yes export MPI_P4SSPORT=22 export P4_RSHCOMMAND=rsh 或ssh 这里我们预定了将来mpich的运行环境安装在目录/usr/local/mpich下面。其余的三个变 量是用来通知mpi运行环境采用rsh(或ssh)来作为远程shell。linux的运行环境到此就配 置完毕了。 6.配置rsh 或ssh 对于采用rsh来作为远程shell运行MPI的用户只要保证在各个节点上都具有相同的用户, 并把这一用户的密码设为空密码就可以运行了。 若采用ssh作为远程shell则按如下配置:以你设定的用于启动mpi计算的用户登录,运行 ssh-keygen,这将生成一个私有/公开密钥对,分别存放在~/.ssh/identity和~/.ssh/i dentity.pub文件内。然后进行访问授权,运行: cp ~/.ssh/identity.pub ~/.ssh/authorized_keys chmod go-rwx ~/.ssh/authorized_keys ssh-agent $SHELL ssh-add 在每个节点重复一遍。试着在某一节点上登录其它节点,ssh noden,则在.ssh/下生成 一个known_hosts2文件,里面放着访问该主机的密钥,把所有密钥收集起来,在各个节 点上作同样的拷贝。这样做的目的是使各节点相互之间访问无需输入密码。 7.开启各项必需的服务 如果是以根用户root 登陆系统的则可以用ntsysv命令启动ntsysv实用程序。ntsysv 实 用程序允许使用简单的菜单界面启动或关闭各种运行等级的服务。在其中我们选择开启 rsh ,rlogin,telnet等。也可以关闭一些服务以加快启动速度如sendmail。 如果是使用su命令转为root用户的则很可能运行ntsysv并不出现ntsysvs实用程序。此时 可以直接去修改/etc/xinetd.d下的rlogin, rsh ,telenet的设置。用vi编辑器打开xin etd.d: vi /etc/xinetd.d 则可看到如下所示的配置文件: 关于rsh的设置如下 # default: off # description: The rshd server is the server for the rcmd(3) routine and, # consequently, for the rsh(1) program. The server provides # remote execution facilities with authentication based on # privileged port numbers from trusted hosts. service shell { disable = yes socket_type = stream wait = no user = root log_on_success += USERID log_on_failure += USERID server = /usr/sbin/in.rshd } 关于rlogin的设置如下 # default: off # description: rlogind is the server for the rlogin(1) program. The server # provides a remote login facility with authentication based on # privileged port numbers from trusted hosts. service login { disable = yes socket_type = stream wait = no user = root log_on_success += USERID log_on_failure += USERID server = /usr/sbin/in.rlogind } 关于telnet的设置如下 # default: off # description: The telnet server serves telnet sessions; it uses # unencrypted username/password pairs for authentication. service telnet { disable = yes flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure += USERID } 所有这些服务在安装完系统之后都是默认为禁用的,要进行修改来打开这些服务。如要 通过修改启动telenet则就需要改disable = yes为disable = no。对于其他的服务的启 动的修改与之相同。若启动这些服务则只需要简单执行: #/etc/rc.d/init.d/xinetd restart 或重起计算机就可以使所作的更改生效。 8.在服务器节点编译、安装Fortran90编译器 先将Fortran90(我用的是Intel的)编译器拷贝至/tmp下,然后用tar xvfz fortran90 .tar.gzj解压缩。运行 ./install 选择你所要安装的类型,如果你的机器是基于IA-32,就选择1。如果你的机器是基于It anium(TM)-based system就选择2。如果要停止安装,就选择X。选择过之后安回车进入 下一步,此时会要求你选择 : 1.Intel(R) Fortran Complier for 32-bit Applications,Version 6.0 build 020312Z 2.2.Linux Applicationdebugger for 32-bit Applications,Version 6.0 buid 20020 x. Exit 按顺序选择1和2,最后选择X 完成安装并退出。在选择完1之后会要求你看版权声明, 输入Accept继续安装。默认的安装路径为/opt/intel,选择默认路径按Enter继续。选2之 后的情形与1相同。如果不注册可以用90天。 9.在服务器节点编译、安装mpich 1.2.3 将mpich 1.2.4:ftp://ftp.mcs.anl.gov/pub/mpi/mpich.tar.gz。拷贝到一个临时目录 下,放在/tmp下了。用root用户登录进行编译安装。 (1). 对mpich的安装进行预处理: 首先,用tar xvfz mpich.tar.gz解压。生成mpich-1.2.3目录。切换到mpich-1.2.3目录 。运行预处理: ./configure --prefix=/usr/local/mpi --对应于用rsh进行远程登录的系统 ./configure --prefix=/usr/local/mpi -rsh=ssh --对应于用ssh进行远程登录的 系统 这里我们通知编译系统mpich的安装位置为/usr/local/mpich,运行环境的远程shell为 rsh或ssh。 (2).编译: make 运行此命令后mpich软件包会自动编译形成MPI系统的函数库,需要数分钟的时间,根据 不同的机器可以略有不同。 (3).安装: make install 运行此命令可以将MPI软件包安装到由./configure --prefix选项指定MPICH安装目录即 /usr/local/mpi 修改文件/usr/local/mpi/share/util/machines/machines.LINUX。如下: node1 ndoe2 ...... ndoen 这一步是通知mpich运行环境都有那些节点可供集群计算。每个节点都这样输入一遍。 (4).测试安装是否正确 在/usr/local/mpi/examples/basics下编译cpi.c: make cpi 用命令行: ../../bin/mpirun -np 2 cp 运行。将会获得如下信息。 Processes 0 on node1 Processes 1 on node2 ……..……………….. 如果能正常运行即证明mpich软件包安装完全成功。
󰈣󰈤
 
 
 
>>返回首页<<
 
 热帖排行
 
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
©2005- 王朝网络 版权所有