Lab1-简单集群搭建

实验简介

1
2
3
4
5
6
本次实验要求使用四台虚拟机搭建一个简易的集群,并对该集群进行性能测试,最后提交测试结果和实验报告。

集群搭建的任务包括创建虚拟机、安装 Linux 发行版、配置网络和 ssh 通信。

性能测试通过使用 OpenMPI 将 HPL 测试程序分配到四个虚拟机节点上执行。因此,需要下载并编译 OpenMPI、BLAS
和 HPL 的源代码,其中 OpenMPI、BLAS 是 HPL 的依赖项。

虚拟机安装与镜像文件下载

  • 在 Virtual Box 官网下载 windows hosts
  • 在镜像站下载 Linux 光盘映像文件(debian-live-11.7.0-amd64-standard.iso)

创建虚拟机

  • 选择发行版(Linux),分配内存(2GB)、磁盘空间(5GB)

  • 插入发行版映像文件和配置网络(一开始使用的是网络地址转换(NAT))

  • 完成图形安装程序并重启

下载并安装OpenMPI

  • 下载 openmpi-4.1.5.tar.gz

    1
    wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.5.tar.gz

  • 进行解压

    1
    tar -xzvf openmpi-4.1.5.tar.gz

  • 安装 OpenMPI

    1
    2
    3
    ./configure --prefix=/usr/local
    make
    sudo make install

  • 配置环境变量

    或许是装在 /usr/local 下的原因,这里没有进行环境变量的配置也能通过 which mpicc 命令找到 mpicc

下载并安装HPL

  • 检查 gcc / gfortran 环境
    • 通过 gcc -vgfortran -v 检查安装情况
    • gcc 已经安装,使用 sudo apt-get install gfortran 命令安装 gfortran
  • BLAS
    • 下载 blas-3.11.0.tgz 并解压得到 BLAS-3.11.0
    • 使用 make 命令进行编译,得到 blas_LINUX.a 库文件
  • CBLAS
    • 下载 cblas.tgz 并解压得到 CBLAS

    • 阅读 READMEINSTALL 文件

    • 使用 mv Makefile.LINUX Makefile.in 进行重命名

    • 进入 Makefile.in 文件,修改 BLLIB 路径为 ../lib/blas_LINUX.a

    • 使用 make 命令进行编译,得到 cblas_LINUX.a 库文件

  • HPL
    • 下载 hpl-2.3.tar.gz 并解压得到 hpl-2.3

    • 进入根目录的 setup/ 文件夹下,选择 Makefile 相关文件的模板(这里选择的是 Make.LINUX_PII_CBLAS ),再将模板文件复制到根目录并重命名为 Make.test

    • 修改 Make.test 文件的参数

    • 使用 make arch=test 进行编译,得到 HPL.datxhpl 两个文件

克隆节点

Virtual Box 管理器中复制(但忘记更改mac地址)

测试集群

  • 网络再配置

    • 使用 Virtual Box 管理器工具创建 NatNetwork(NAT 网络)
    • 进入 VM1 ~ VM4 虚拟机网络配置,将连接方式选为 NAT网络 ,并选择 NatNetwork
    • 重置 MAC 地址
  • ping

  • 配置 ssh

    • 在 VM1 上使用 ssh-keygen 命令创建一个密钥 (一直 Enter ,无需设置密码)
    • 使用 sudo apt-get install ssh 命令来安装 ssh 服务
    • 使用 ssh-copy-id -i ~/.ssh/id_rsa.pub zsh@10.0.2.15 来拷贝公钥到 VM3
  • mpirun

    • OpenMPI hostfile

      编写 MPI 的 hostfile 并保存:

      1
      2
      localhost slots=2 //VM1
      10.0.2.15 slots=2

    • 测试程序

      1
      mpirun --hostfile hostfile uptime

    • 运行 HPL

      1
      mpirun --hostfile hostfile ./xhpl

写在最后

​超算的Lab1,花费了我三个晚上来完成。第一个晚上做到环境变量的添加,在Windows下做过环境变量的添加,但是在Linux虚拟机下的操作基本借助互联网,但这个问题在将 openmpi 安装在 /usr/local 下莫名其妙解决了。第二个晚上卡在了 hpl 的 Makefile 修改,正确写出这个 Makefile 中遇到了三种报错:一、Make.inc 未被找到,后来发现是 hpl 更名成 hpl-2.3 而 Makefile 中仍是 hpl 导致的😓;二、 permission denied ,这个比较好解决,是 libmpi.so/usr 下的原因; 三、 找不到 gfortran.xxx, 于是我把 Makefile 中的 LINKER 改成指向 gfortran 的路径。第三个晚上前面一直在调不同虚拟机的 IP 相同😭,在 HPC-101 群u帮助下换了 NAT 网络,这一步到最后的结果输出过程就比较顺利了。