ExaDigiT/RAPS

ExaDigiT/RAPS readme文件解析

项目概述

ExaDigiT's Resource Allocator and Power Simulator (RAPS) - 一个用于超算系统的资源分配和功耗模拟器。

开源地址: https://code.ornl.gov/exadigit/raps

核心功能

  1. 工作负载调度:调度合成工作负载或回放系统遥测工作负载
  2. 系统监控:在模拟期间提供系统监控
  3. 功耗估计:在指定时间间隔估计动态系统功耗
  4. 冷却模型接口:可与FMU冷却模型接口,提供CDU级功耗输入
  5. 可视化功能:内置绘图功能,可生成功耗和冷却图
  6. 可选仪表板:提供RAPS仪表板(需要运行RAPS服务器)

详细解读

1. 环境设置

复制代码
Note: Requires python3.12 or greater.
pip install -e .
  • Python版本要求:必须使用Python 3.12或更高版本
  • 安装方式 :使用开发模式安装(-e参数),允许直接修改源代码

2. 使用帮助

复制代码
raps run -h
  • 查看raps run命令的详细帮助信息

3. 默认合成工作负载模拟

复制代码
raps run
  • 最简单的运行方式,使用默认的合成工作负载进行模拟

4. 遥测回放模式

Frontier系统示例:
bash 复制代码
DATEDIR="date=2024-01-18"
DPATH=/opt/data/frontier
raps run -f $DPATH/slurm/joblive/$DATEDIR,$DPATH/jobprofile/$DATEDIR
  • 数据路径结构 :Frontier系统的数据分为slurm/joblive/jobprofile/两部分
  • 日期格式:使用特定日期格式(如2024-01-18)组织数据
  • 多路径支持:用逗号分隔多个数据路径
其他系统遥测数据:
  1. Marconi100 :从Zenodo下载job_table.parquet文件
  2. Adastra MI250 :从Zenodo下载AdastaJobsMI250_15days.parquet文件
  3. Google集群跟踪v2:使用特定格式的时间戳
  4. MIT Supercloud:支持从S3下载数据,有专门的命令行工具

5. 网络模拟

复制代码
raps run -f /opt/data/lassen/Lassen-Supercomputer-Job-Dataset --system lassen --policy fcfs --backfill firstfit --start '2019-08-22T00:00:00+00:00' -t 12h --arrival poisson --net
  • 特殊性:Lassen是少数具有网络数据的数据集之一
  • 参数说明
    • --system lassen:指定系统类型
    • --policy fcfs:调度策略为FCFS
    • --backfill firstfit:回填策略为首次适配
    • --start:模拟开始时间
    • -t 12h:模拟持续时间12小时
    • --arrival poisson:作业到达遵循泊松分布
    • --net:启用网络模拟

6. 数据快照功能

复制代码
raps run -f jobs_2024-02-20_12-20-39.npz
  • 优化目的:为减少从parquet文件提取数据的开销
  • 格式:NPZ格式(NumPy压缩格式)
  • 优势:后续模拟加载更快

7. 冷却模型

8. 多分区系统支持

bash 复制代码
raps run-parts -x setonix/part-cpu setonix/part-gpu
  • 命令 :使用raps run-parts而非raps run
  • 分区指定-x参数后跟分区列表,如setonix系统的CPU和GPU分区
  • 配置方式 :每个分区有独立的配置文件(如config/setonix-cpu
  • 工作负载缩放 :可以使用--scale参数调整工作负载规模

9. 遥测回放的修改选项

有四种方式修改遥测回放:

  1. --arrival:改变到达时间分布

    • prescribed(默认):按原始提交时间回放
    • poisson:按泊松分布到达
  2. --policy:改变调度策略

    • replay(默认):按原始开始时间调度
    • fcfsbackfill等:使用内部调度器
  3. --scale:改变工作负载规模

    • 用于将大系统数据回放到小系统上
  4. --shuffle:回放前打乱作业顺序

10. 单个作业的回放和分析

复制代码
raps run -f $DPATH/slurm/joblive/$DATEDIR,$DPATH/jobprofile/$DATEDIR --jid 1234567 -o
  • --jid:指定作业ID
  • -o:输出作业级功耗结果

11. 遥测数据统计分析

复制代码
raps telemetry -f $DPATH/slurm/joblive/$DATEDIR,$DPATH/jobprofile/$DATEDIR
  • 计算平均作业到达时间等统计信息

12. Docker容器构建和运行

复制代码
make docker_build && make docker_run
  • 提供Docker支持,便于部署

13. 第三方调度器

复制代码
git submodule update --init --recursive
  • 支持集成第三方调度器如ScheduleFlow
  • 使用Git子模块管理

14. 服务器和仪表板设置

  • 服务器 :参见server/README.md
  • 仪表板 :参见dashboard/README.md

15. 测试运行

  • 测试框架:使用pytest
  • 数据目录 :需要设置RAPS_DATA_DIR环境变量
  • 并行测试 :使用pytest-xdist进行并行测试
  • 测试分类
    • 多分区系统测试:-k "multi_part_sim"
    • 网络相关测试:-m network

属性声明

  • 地图数据:来自OpenStreetMap,使用ODbL许可证
  • 天气数据:来自Open-Meteo API,免费提供

关键技术要点总结

  1. 灵活性:支持合成工作负载和真实遥测数据回放
  2. 扩展性:支持多分区系统、冷却模型、网络模拟
  3. 性能优化:使用NPZ快照加速重复模拟
  4. 可视化:提供实时监控和后期绘图功能
  5. 生态系统:支持Docker、第三方调度器、服务器/客户端架构
  6. 数据多样性:支持多个超算系统的数据格式

使用建议

  1. 新手用户 :从raps run开始,使用默认合成工作负载
  2. 研究人员:使用遥测回放进行真实数据分析
  3. 系统管理员:利用冷却模型和网络模拟进行系统优化
  4. 开发者:关注测试框架和代码贡献指南
相关推荐
longerxin20203 小时前
在 Linux 上使用 SCP 将文件传输到 Windows(已开启 SSH)
linux·运维·ssh
王正南6 小时前
kali-linux 虚拟机连接安卓模拟器
android·linux·运维·虚拟机连接模拟器·安卓模拟器,linux虚拟机
Web极客码6 小时前
如何在Ubuntu服务器上安装和配置BIND9
服务器·数据库·ubuntu
吳所畏惧6 小时前
Linux环境/麒麟V10SP3下离线安装Redis、修改默认密码并设置Redis开机自启动
linux·运维·服务器·redis·中间件·架构·ssh
yueguangni7 小时前
sysstat 版本 10.1.5 是 CentOS 7 的默认版本,默认情况下确实不显示 %wait 字段。需要升级到新版sysstat
linux·运维·centos
极客小云7 小时前
【Android Gradle 构建常见报错及解决方法大全】
android·运维开发
西***63477 小时前
全兼容・高安全:KVM 一站式服务器远程监控与管理指南
服务器
一叶龙洲7 小时前
解决Ubuntu25.04无法使用快捷键打开
ubuntu
萧曵 丶8 小时前
Linux 业务场景常用命令详解
linux·运维·服务器
豆是浪个9 小时前
Linux(Centos 7.6)命令详解:ps
linux·windows·centos