项目简介
本项目是一个基于C++的模拟器,名为LogGOPSim,用于模拟大规模并行计算系统中的事件调度和处理过程。它能够模拟网络通信协议(如Portals 4)的通信操作,具备网络模块的简化和可视化功能,并且支持与GEM5处理器模拟器集成以模拟处理器行为。
项目的主要特性和功能
- 网络通信模拟:支持模拟网络通信协议的发送、接收、本地操作等。
- GEM5集成:可与GEM5处理器模拟器集成,模拟处理器行为。
- 可视化功能:能显示事件的处理过程。
- 自动调度生成:支持自动生成适用于Portals 4和通用调度的GOAL调度文件。
- 基准测试:提供评估模拟器性能的基准测试功能。
安装使用步骤
环境准备
- 安装依赖库:C++编译器(如g++)、re2c、gengetopt、libagraph。
- 可选依赖(安装GEM5支持):
- 安装GEM5所需依赖:
sudo apt-get install mercurial scons swig gcc m4 python python-dev libgoogle-perftools-dev g++ zlib1g-dev
- 复制GEM5仓库:
hg clone -r 11794 http://repo.gem5.org/gem5
- 编译GEM5:
scons build/ARM/gem5.opt -j 4
- 测试GEM5:
build/ARM/gem5.opt configs/example/se.py -c tests/test-progs/hello/bin/arm/linux/hello
- 安装GEM5所需依赖:
编译与安装
- 编译LogGOPSim:
- 无GEM5支持:
./configure
- 有GEM5支持:
- 安装lgs - gem5模块:
./install_gem5mod.sh <path to gem5 BUILD>
- 编译GEM5为库:
scons --without-python --with-cxx-config --without-tcmalloc -j 4 build/ARM/libgem5_opt.so
- 配置LogGOPSim:
./configure --with-gem5=<path to gem5>
- 编译:
make
- 安装:
make install
- 安装lgs - gem5模块:
- 无GEM5支持:
运行模拟
- 无GEM5的LogP模拟:
- 编写或生成GOAL调度文件。
- 使用
txt2bin
将调度文件转换为二进制格式。 - 执行模拟:
LogGOPSim -f <调度文件>
- 带GEM5的LogP + packet模拟:
- 生成网络拓扑文件。
- 编写或生成GOAL调度文件。
- 运行模拟:
./run.sh <goal-file-prefix>
可视化
- 运行可视化:
- 使用
-V
选项运行LogGOPSim:LogGOPSim -f <调度文件> -V viz.out
- 编译DrawViz:
make
- 运行DrawViz:
drawviz -i viz.out -o viz.eps
- 查看输出:
gv viz.eps
- 使用
基准测试
- 构建基准测试:执行
./init.sh {PATH TO GEM5}
构建所有基准测试所需的二进制文件。 - 运行基准测试:使用
./run_all_tests.sh
运行所有基准测试。 - 创建可视化:使用
./create_all_visualizations.sh
创建所有测试的可视化结果。
引用
在使用此软件进行研究时,请引用以下文献: T. Hoefler, T. Schneider, A. Lumsdaine: LogGOPSim – Simulating Large-Scale Applications in the LogGOPS Model
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】