Ubuntu+Open MPI+SSH小集群简易配置

为了完成课程作业,笔者致力于寻找最简捷的配置方式。目的是连接三个节点运行简单的MPI程序。

参考资料:https://www.open-mpi.orghttps://blog.csdn.net/kongxx/article/details/52227572

各节点初始化

为了方便后续的SSH连接,这里设置所有节点具有相同的username(因为 ssh IP等价于 ssh $USER@IP) 。关于新建用户的部分请参考https://blog.csdn.net/silent56_th/article/details/80033636

一个方便后续输入的可选操作是:在各个节点中通过修改/etc/hosts为其他节点的IP地址映射一个名称,用于指代。

节点间免密码SSH连接

详情参考:https://blog.csdn.net/kongxx/article/details/47046817

简单的说,是节点A用例如RSA的算法生成了公私钥做身份认证,节点B通过记录节点A的公钥,对节点A进行授权。授权完成后,节点A可以不需要密码直接访问节点B。

理论上只需要其他节点对主节点做授权,笔者为了防止bug,对所有节点之间均做了授权。

Open MPI简介与编译

关于MPI以及Open MPI的简介详见:https://www.open-mpi.org/video/?category=general

简单的说是MPI为协议,Open MPI是具体实现。

关于Open MPI的编译详见:https://www.open-mpi.org/faq/?category=building#easy-build

简易步骤为:下载解压–>configure(--prefix用于指定安装位置)–> sudo make all install

笔者直接将Open MPI安装到系统中,所以 --prefix=/user/local,后续也无需设置PATH等系统参数;否则需要将相应位置的bin以及lib路径加入到 $PATH$LD_LIBRARY_PATH中(可以通过 .bashrc设置)

编译与运行代码

mpicc命令和 gcc/cc使用方法相似,简单操作是 mpicc <c_filename> -o <excutable_filename>

单节点执行: mpirun -np <processor_num> <filename>,其中-np指定处理器数目,第一个不可解释的字符串( <filename>)被看作可执行文件名称。

小集群执行: mpirun -np <processor_num> --hostfile <hostfile_name> <filename>,其中 <hostfile_name>内指定可用的节点IP地址与slot数。例如笔者的mpi-hosts文件为:

localhost   slots=2
slave1  slots=2
slave2  slots=2

其中localhost为本地节点,slave1/2是其他两个节点在主节点中的IP地址指代(于/etc/hosts中设置)

猜你喜欢

转载自blog.csdn.net/silent56_th/article/details/80034102