然后安装某些工具。。。
这些都是啥呢,我慢慢讲-来自维基百科,
expect :含有利用正则表达式进行方式匹配或者通用的编程功能,允许简单的脚本智能地管理如下工具:telnet,ftp和ssh(这些软件都缺乏编程的用途),宏或者其他程序。Expect脚本的出现并且这种老的硬件软件有了新的功能和更多的灵活性。
rlwrap:rlwrap 是一个读行包装,允许在其它命令中使用键盘输入进行编辑。
emacs24 :编辑器
openssh-server openssh-client: openssh 的服务和客户端
xinetd: 守护进程
nfs-common: 网络文件系统

libgomp1 :openmp 是一套支持跨平台共享存储模式的多线程并发的编程API
samba samba-client: 在Windows與UNIX系列OS之間搭起一座橋樑,讓兩者的資源可互通有無
openmpi-bin libopenmpi-dev openmpi-common: openmpi,开源的mpi
update-manager-core: 更新用
sudo apt-get -y dist-upgrade
然后升级一下软件的依赖,防止发生依赖的遗漏。
a)网络联接,使用交换机集线器连接,连接模式多种多样,由于我们的组装的体量很小,所以,低于交换机的接口数的之后就把交换机作为行星网络的中心,如果必须多个交换机,就采取层状交换机结构。出于简单考虑,IP没有设成静态,直接引入路由器的hdcp功能,动态分配ip,如果要大量使用,请修改成静态ip。那么手动分配的ip分别是XXX.65.121.82和 XXX.65.121.102,分别对应的名称是server081和server156,(我在实验室随便拉起来的两台机器)。更改静态ip必须设置 /etc/network/interface 文件。
b)查询ip地址,可以直接去gui的界面去看,也可以输入<ifconfig>命令。
c)更改/etc/hosts文件,把ip和名字对应上,这样操作出来非常便于,不用处处都输入ip。如果查看自己的hostname,可以查看/etc/hostname文件。
d)然后重启network服务
sudo /etc/init.d/networking restart
测试两台机器能否还能ping通,如果,可以,说明网络没问题,如果发生疑问,检查网络连接和网络修改。
e)用ssh生成密码
ssh-keygen
f)同步密码,可以进行免密ssh登录。
cd ~/.ssh
cp id_rsa.pub authorized_keys
rsync -avz ~/.ssh XXX.65.121.102:~/.
再检测两台机器是否可以免密ssh登录,如果不行,检查问题。
这时候有人会问,我今天有两台机器,可以拷贝一下密钥,要是我有n台机器,岂不是相互都要拷贝n-1个密钥?解决的方式很简单就是大家都用一个密钥,这样进行访问的之后就不用互相交叉进行,而是由一个中心进行互相通信。
进入terminal,输入
emacs -nw test.c
还记得我们今天举的c语言的mpi的helloworld小栗子么,把它输入上去
然后ctrl+x,ctrl+s ,保存
然后ctrl+x,ctrl+c ,退出emacs
mpicc test.c
编译。。。
%mpirun -np 2 a.out
Hello, World. I am 0 of 2
Hello, World. I am 1 of 2
运行,-np就是使用几个节点进行计算,上面这是两个的结果
%mpirun -np 4 a.out
Hello, World. I am 0 of 4
Hello, World. I am 1 of 4
Hello, World. I am 2 of 4
Hello, World. I am 3 of 4
%mpirun -np 8 a.out
Hello, World. I am 0 of 8
Hello, World. I am 1 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
Hello, World. I am 7 of 8
Hello, World. I am 2 of 8
啊,再多的我也可以
新建一个mpitest.c 文件
#include <mpi.h>
#include <stdio.h>
int main(int argc, char** argv) {
// Initialize the MPI environment
MPI_Init(NULL, NULL);
// Get the number of processes
int world_size;
MPI_Comm_size(MPI_COMM_WORLD, &world_size);
// Get the rank of the process
int world_rank;
MPI_Comm_rank(MPI_COMM_WORLD, &world_rank);
// Get the name of the processor
char processor_name[MPI_MAX_PROCESSOR_NAME];
int name_len;
MPI_Get_processor_name(processor_name, &name_len);
// Print off a hello world message
printf("Hello world from processor %s, rank %d"
" out of %d processors\n",
processor_name, world_rank, world_size);
// Finalize the MPI environment.
MPI_Finalize();
}

拷贝编译完成的a.out,到此外一台机器,保证两台机器的a.out出现在同一个目录位置。
scp ~/a.out XXX.65.121.102:~/a.out
然后编辑machinefile
server018 cpu=4
server156 cpu=4
然后在这个目录下运行a.out(确保a.out也在这个文件夹下)
%mpirun --machinefile machinefile -np 8 a.out
Hello world from processor server018, rank 3 out of 8 processors
Hello world from processor server018, rank 0 out of 8 processors
Hello world from processor server018, rank 1 out of 8 processors
Hello world from processor server018, rank 2 out of 8 processors
Hello world from processor server156, rank 6 out of 8 processors
Hello world from processor server156, rank 5 out of 8 processors
Hello world from processor server156, rank 4 out of 8 processors
Hello world from processor server156, rank 7 out of 8 processors
这样就是十分初级的集群的雏形,可以进行多机并列计算。
先安装相关工具
yum install nfs-utils nfs-utils-lib
设置nfs相关服务在操作系统启动时开启
systemctl enable rpcbind
systemctl enable nfs-server
systemctl enable nfs-lock
systemctl enable nfs-idmap
启动nfs服务
systemctl start rpcbind
systemctl start nfs-server
systemctl start nfs-lock
systemctl start nfs-idmap
服务器端设置NFS卷输出,即编辑 /etc/exports 添加:
sudo emacs /etc/exports
/nfs XXX.65.121.0/24(rw)
当然也有其它设定选项,比如insecure sync ...
sudo exportfs
这个是显示一下是否挂在成功
service nfs status -l
查看NFS状态
service nfs restart
重启NFS,这样,服务器端就设定结束了。
Linux挂载NFS的客户端非常简单的命令,先创建挂载目录,然后用 -t nfs 参数挂载就可以了
mount -t nfs xxx.168.0.100:/nfs /nfs
可以先查看
showmount -e 192.168.0.100
如果要修改客户端启动之后就挂载NFS,可以配置 /etc/fstab 添加下面内容
sudo emacs /etc/fstab
192.168.0.100:/nfs /nfs defaults 0 0
然后在客户端简单使用下面命令就可以挂载
mount /nfs
欢迎批评指正。
(待续)
--------------------------------------------------------------------
ps云计算和高性能计算和虚拟化
超级计算机和云计算都是时下比较火的两个概念,前者通常主要面向科学计算、工程模拟、渲染等领域,大多属于计算密集型的应用,后者则主要是在Web2.0、社交网络、企业IT建设和信息化等领域,以数据密集型、I/O密集型应用为主。虽然侧重点有所不同,但这二者之间是很有渊源的,比如它们都使用了分布式计算、网格计算、集群、高密度计算等科技,也有一些领域在使用云计算从事HPC类的应用,如北京市计算中心就在成为“北京工业云”,为中小企业提供产品设计模拟服务,浪潮和NVIDIA也在分别推各自的“渲染云”方案。不过,HPC与云计算也存在诸多不同,比如HPC几乎不用虚拟化技术,因为一个应用就也许把多个机器的CPU都跑满了,虚拟机没什么用武之地,而在企业私有云中,虚拟化却是一个最基础的技术。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-128882-2.html
没有激烈冲突