Energy-Languages 项目教程
1. 项目的目录结构及介绍
Energy-Languages
项目是一个用于分析编程语言能耗的工具集合。项目的目录结构如下:
Energy-Languages/
├── Ada/
│ ├── benchmark-1/
│ │ ├── source/
│ │ ├── Makefile
│ │ └── [input]
│ └── benchmark-i/
│ ├── source/
│ ├── Makefile
│ └── [input]
├── C++/
│ ├── benchmark-1/
│ │ ├── source/
│ │ ├── Makefile
│ │ └── [input]
│ └── benchmark-i/
│ ├── source/
│ ├── Makefile
│ └── [input]
├── ...
├── RAPL/
│ ├── energy_measurement_code/
│ └── ...
├── compile_all.py
└── gen-input.sh
目录结构说明:
- Ada, C++, ...: 每个语言对应一个文件夹,包含该语言的所有基准测试。
- benchmark-1, benchmark-i: 每个基准测试对应一个文件夹,包含源代码、Makefile 和输入文件(如果有)。
- RAPL: 包含能耗测量框架的代码。
- compile_all.py: 用于编译、运行和测量所有基准测试的 Python 脚本。
- gen-input.sh: 用于生成基准测试输入文件的 Bash 脚本。
2. 项目的启动文件介绍
项目的启动文件是 compile_all.py
。该脚本用于自动化编译、运行和测量所有基准测试的能耗和内存使用情况。
使用方法:
python compile_all.py [rule]
rule
: 可选参数,指定要执行的操作(compile
,run
,measure
,mem
)。默认操作是compile
。
示例:
python compile_all.py measure
该命令将测量所有基准测试的能耗,并将结果存储在相应语言文件夹下的 .csv
文件中。
3. 项目的配置文件介绍
项目的配置文件主要是每个基准测试文件夹中的 Makefile
。Makefile
定义了如何编译、运行、测量能耗和检测内存峰值。
Makefile 示例:
compile:
/usr/bin/gcc -pipe -Wall -O3 -fomit-frame-pointer -march=native -fopenmp -D_FILE_OFFSET_BITS=64 -I/usr/include/apr-1.0 binarytrees.gcc-3.c -o binarytrees.gcc-3.gcc_run -lapr-1 -lgomp -lm
run:
./binarytrees.gcc-3.gcc_run 21
measure:
sudo /RAPL/main "./binarytrees.gcc-3.gcc_run 21"
mem:
/usr/bin/time -v ./binarytrees.gcc-3.gcc_run 21
Makefile 说明:
- compile: 指定如何编译基准测试。
- run: 指定如何运行基准测试。
- measure: 指定如何使用 RAPL 框架测量能耗。
- mem: 指定如何检测内存峰值。
通过这些配置文件,用户可以自定义每个基准测试的操作流程,以满足特定的需求。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考