基于 Computer Language Benchmark Game 的 10 个基准、28 种语言实现,提供编译、运行、能耗测量与内存峰值检测的统一操作框架。
这个工具是什么
该仓库来自 greensoftwarelab,以 Computer Language Benchmark Game 的基准程序为案例,收录 10 个基准在 28 种编程语言下的源码。仓库同时提供配套工具,对每个语言的每个基准支持四类操作:编译、执行、能耗测量与内存峰值检测。目录按语言与基准两级组织,每个基准子目录内含源码、Makefile 与可选输入文件;根目录的 RAPL 子文件夹存放能耗测量框架代码,compile_all.py 用于批量执行操作,gen-input.sh 生成 k-nucleotide、reverse-complement、regex-redux 三个基准的输入文件。项目采用 MIT 许可证。
核心能力
- 覆盖 10 个基准在 28 种语言下的实现,便于在同一基准上横向比较不同语言的能耗表现
- 每个基准的 Makefile 统一约定 compile、run、measure、mem 四条规则,操作方式清晰可扩展
- 内置基于 RAPL 的能耗测量框架,并支持内存峰值检测
- compile_all.py 可按指定规则批量处理同层及以下所有 Makefile,减少重复操作
科研中的典型用法
- 在语言与能耗关系的实证研究中,对同一基准的不同语言实现分别测量能耗与内存峰值,形成对比数据
- 作为教学或方法演示,展示如何用统一 Makefile 规则组织多语言基准的编译、运行与测量流程
- 在新增语言或基准时,按现有目录结构与四条 Makefile 规则接入,复用批量脚本与 RAPL 测量框架
快速上手
使用前需加载 msr 模块以允许 RAPL 访问能耗寄存器:sudo modprobe msr;随后运行 ./gen-input.sh 生成所需输入文件。批量操作通过 python compile_all.py [rule] 执行,rule 可取 compile、run、measure、mem 之一,默认 compile;脚本会对当前目录及以下所有 Makefile 执行该规则。也可进入具体语言或基准目录单独调用。
生态与相近工具
同领域可参考 Computer Language Benchmark Game 官方站点提供的基准与测量结果,以及各类能耗测量工具。本仓库的特点是把多语言基准源码、统一 Makefile 约定与 RAPL 测量整合在一个目录结构中,适合需要自行复现测量流程的场景;若只需现成对比数据,可直接查阅基准游戏官方结果。
项目信息
- 仓库:greensoftwarelab/Energy-Languages
- 星标:713 · 派生:124
- 主要语言:C
- 许可证:MIT
- 最近提交:2023-10-12
本文属于《学科研究工具知识库 · 能源科学》第 7 篇(按 GitHub 星标排序)。收录标准:该学科公开可获取的开源研究工具,星标与活跃度为主要参考,不代表对其性能或适用性的背书;选型前请结合自身场景评估。

发表评论 取消回复