littlebot
Published on 2025-04-14 / 1 Visits
0

【源码】基于C++的LogGOPSim模拟器

项目简介

本项目是一个基于C++的模拟器,名为LogGOPSim,用于模拟大规模并行计算系统中的事件调度和处理过程。它能够模拟网络通信协议(如Portals 4)的通信操作,具备网络模块的简化和可视化功能,并且支持与GEM5处理器模拟器集成以模拟处理器行为。

项目的主要特性和功能

  1. 网络通信模拟:支持模拟网络通信协议的发送、接收、本地操作等。
  2. GEM5集成:可与GEM5处理器模拟器集成,模拟处理器行为。
  3. 可视化功能:能显示事件的处理过程。
  4. 自动调度生成:支持自动生成适用于Portals 4和通用调度的GOAL调度文件。
  5. 基准测试:提供评估模拟器性能的基准测试功能。

安装使用步骤

环境准备

  1. 安装依赖库:C++编译器(如g++)、re2c、gengetopt、libagraph。
  2. 可选依赖(安装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

编译与安装

  1. 编译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

运行模拟

  1. 无GEM5的LogP模拟:
    • 编写或生成GOAL调度文件。
    • 使用txt2bin将调度文件转换为二进制格式。
    • 执行模拟:LogGOPSim -f <调度文件>
  2. 带GEM5的LogP + packet模拟:
    • 生成网络拓扑文件。
    • 编写或生成GOAL调度文件。
    • 运行模拟:./run.sh <goal-file-prefix>

可视化

  1. 运行可视化:
    • 使用-V选项运行LogGOPSim:LogGOPSim -f <调度文件> -V viz.out
    • 编译DrawViz:make
    • 运行DrawViz:drawviz -i viz.out -o viz.eps
    • 查看输出:gv viz.eps

基准测试

  1. 构建基准测试:执行./init.sh {PATH TO GEM5}构建所有基准测试所需的二进制文件。
  2. 运行基准测试:使用./run_all_tests.sh运行所有基准测试。
  3. 创建可视化:使用./create_all_visualizations.sh创建所有测试的可视化结果。

引用

在使用此软件进行研究时,请引用以下文献: T. Hoefler, T. Schneider, A. Lumsdaine: LogGOPSim – Simulating Large-Scale Applications in the LogGOPS Model

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】