ADD file via upload
参赛者:姜澜 提交时间:2025年10月14日 邮箱:jianglan23@nudt.gfkd.cn Gitlink 仓库地址:Huster/超算招新题目 | GitLink
高性能计算依赖于稳定可控的运行环境。本任务旨在搭建一个可用于后续HPC实验的Rocky Linux平台。
使用 VMware 创建虚拟机;
安装 **Rocky Linux 8.10 Minimal ISO (x86-64)**;
成功安装git,vim,make,gcc等必要组件。
对于网络连接不上,需要手动打开端口
sudo nmcli device connect ens33
通过运行HPCG基准测试,评估平台性能,理解HPC软件栈运行机制。
下载HPCG源码以及mpich并行环境,安装并编译;
首先git下载源码
git clone https://github.com/hpcg-benchmark/hpcg.git
接着进行编译
make arch=Linux_MPI
注意使用vim修改Linux_MPI中的HPCG的文件夹地址以及MPICH并行环境的编译器地址。
配置测试参数(hpcg.dat);
16 16 16 15
参数如上,其中16,16,16代表三维网格的XYZ尺寸,15代表运行时间。
执行测试,记录结果。
mpiexec -np 2 ./xhpcg
其中如果测试规模或者线程开太多会导致OOM,应该是虚拟机性能上限的问题。
HPCG性能:2.18796 GFLOPS(考虑收敛和优化阶段开销后)
理论峰值性能:166.4GFLOPS
效率:1.32%(为上面两种性能相除)
DAOS是一种面向HPC和AI训练的高性能分布式对象存储系统。
首先下载DAOS仓库配置
sudo wget -O /etc/yum.repos.d/daos-packages.repo https://packages.daos.io/v2.0/EL8/packages/x86_64/daos_packages.repo
然后安装客户端
sudo dnf install -y daos-server
使用文件模拟NVMe设备;
加载NVMe模拟模块:
sudo modprobe nvme-loop
创建虚拟 NVMe 设备:
sudo dd if=/dev/zero of=/nvme1.img bs=1G count=5 #创建一个5GB的虚拟NVMe设备文件
挂载并使用虚拟磁盘
sudo mkdir -p /mnt/nvme1 sudo mount /dev/loop0 /mnt/nvme1
配置POSIX兼容接口;
我使用dmg指令来创建存储池,但显示安全证书不通过,我修改了安全证书但没有作用。
使用 fio 进行读写测试。
fio
参数名称如下
--name=sequate
--filename=/mnt/nvme1/testfile
--rw=write
--bs=4k
--size=1g
--numjobs=1
--runtime=60
随机读:7880 IOPS(带宽平均约 30.8 MiB/s,延迟平均约 2026 微秒)
随机写:9630 IOPS(带宽平均约37.6 MiB/s,延迟平均约1658 微秒)
顺序读/写带宽:515 MB/s
大语言模型推理对计算和内存要求极高,需通过优化提升效率。
使用给定CPU推理引擎运行模型;
首先参考readme的流程,安装miniconda用于创建虚拟环境,接着通过requirements.txt安装依赖
使用测试语句进行测试发现makefile中存在C++20与g++版本不匹配,所以修改更新g++版本
conda install -c conda-forge gxx_linux-64=11.4.0
重新make clean 清除缓存后可以运行
./build/main model.yalm -i "Q: What is the meaning of life?"
结果非常缓慢
使用 OpenMP 进行多线程并行;
需要在编译阶段通过编译器选项开启 OpenMP 支持,即修改makefile,但在检查makefile后发现已经开启了OpenMP
采用最高指令集(实际发现可以使用avx512f)用来加速,不同指令集支持的单次浮点运算数量不同,直接决定峰值 FLOPS 的计算。
CFLAGS += -march=native - # 自动识别并使用当前CPU支持的最高SIMD指令集
通过阅读官方的模型卡片发现无需使用所给的model.cpp及相关推理引擎的代码,可以使用huggingface支持的模版推理引擎,并且同时开启cuda进行推理。
公式如上述所示
当前优化后性能达到理论值的 12.5%。
我是姜澜,计算机学院大三学员,目前是AIBD专业。我对高性能计算与系统软件有浓厚兴趣,曾在陈娟老师的项目组完成一项省级大创,获得一项编译选项组合优化的专利,有论文撰写的经历(虽然后来没有发表),曾获得美国数学建模国际一等奖。
期待能在超算团队中深入学习,为我国高性能计算事业贡献力量。
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
超算招新题目文档
第一题:Linux环境搭建
任务背景
高性能计算依赖于稳定可控的运行环境。本任务旨在搭建一个可用于后续HPC实验的Rocky Linux平台。
任务完成情况
使用 VMware 创建虚拟机;
安装 **Rocky Linux 8.10 Minimal ISO (x86-64)**;
成功安装git,vim,make,gcc等必要组件。
对于网络连接不上,需要手动打开端口
环境验证
第二题:基准测试
任务背景
通过运行HPCG基准测试,评估平台性能,理解HPC软件栈运行机制。
安装与运行HPCG
下载HPCG源码以及mpich并行环境,安装并编译;
首先git下载源码
接着进行编译
注意使用vim修改Linux_MPI中的HPCG的文件夹地址以及MPICH并行环境的编译器地址。
配置测试参数(hpcg.dat);
参数如上,其中16,16,16代表三维网格的XYZ尺寸,15代表运行时间。
执行测试,记录结果。
其中如果测试规模或者线程开太多会导致OOM,应该是虚拟机性能上限的问题。
测试结果
HPCG性能:2.18796 GFLOPS(考虑收敛和优化阶段开销后)
理论峰值性能:166.4GFLOPS
效率:1.32%(为上面两种性能相除)
分析与理解
第三题:DAOS配置
任务背景
DAOS是一种面向HPC和AI训练的高性能分布式对象存储系统。
配置过程
首先下载DAOS仓库配置
然后安装客户端
使用文件模拟NVMe设备;
加载NVMe模拟模块:
创建虚拟 NVMe 设备:
挂载并使用虚拟磁盘
配置POSIX兼容接口;
我使用dmg指令来创建存储池,但显示安全证书不通过,我修改了安全证书但没有作用。
使用
fio进行读写测试。参数名称如下
--name=sequate:测试作业的名称。--filename=/mnt/nvme1/testfile:指定测试文件的路径,存储在 NVMe 设备挂载点下。--rw=write:测试写操作。--bs=4k:IO 操作的 块大小 为 4KB。--size=1g:测试文件的总大小为 1GB。--numjobs=1:启动的并行作业数为 1。--runtime=60:测试运行时间为 60 秒。fio测试结果
随机读:7880 IOPS(带宽平均约 30.8 MiB/s,延迟平均约 2026 微秒)
随机写:9630 IOPS(带宽平均约37.6 MiB/s,延迟平均约1658 微秒)
顺序读/写带宽:515 MB/s
DAOS性能优势分析
第四题:大语言模型推理引擎优化
任务背景
大语言模型推理对计算和内存要求极高,需通过优化提升效率。
初始性能分析
使用给定CPU推理引擎运行模型;
首先参考readme的流程,安装miniconda用于创建虚拟环境,接着通过requirements.txt安装依赖
使用测试语句进行测试发现makefile中存在C++20与g++版本不匹配,所以修改更新g++版本
重新make clean 清除缓存后可以运行
结果非常缓慢
优化措施
使用 OpenMP 进行多线程并行;
需要在编译阶段通过编译器选项开启 OpenMP 支持,即修改makefile,但在检查makefile后发现已经开启了OpenMP
采用最高指令集(实际发现可以使用avx512f)用来加速,不同指令集支持的单次浮点运算数量不同,直接决定峰值 FLOPS 的计算。
通过阅读官方的模型卡片发现无需使用所给的model.cpp及相关推理引擎的代码,可以使用huggingface支持的模版推理引擎,并且同时开启cuda进行推理。
优化后性能
理论性能计算
公式如上述所示
Ppeak=N×f×n=32×2.3G×32=2355.2GFLOPS当前优化后性能达到理论值的 12.5%。
第五题:个人经历介绍
个人意向书
我是姜澜,计算机学院大三学员,目前是AIBD专业。我对高性能计算与系统软件有浓厚兴趣,曾在陈娟老师的项目组完成一项省级大创,获得一项编译选项组合优化的专利,有论文撰写的经历(虽然后来没有发表),曾获得美国数学建模国际一等奖。
期待能在超算团队中深入学习,为我国高性能计算事业贡献力量。