在 MPICH 中生成绑定
分布式、并行与集群计算
2024-01-31 v1
摘要
MPI 论坛最近采用了一个 Python 脚本引擎来生成标准文档中的 API 文本。作为一个副产品,它提供了所有 MPI 函数的可靠且丰富的描述,这些描述适用于脚本工具。利用这些提取的 API 信息,我们开发了一个 Python 代码生成工具箱,用于生成 MPICH 中的语言绑定层。该工具箱用大约 5000 行 Python 脚本和一些简单的配置替换了近 70000 行手动维护的 C 和 Fortran 2008 绑定代码。除了完全消除绑定层中的代码重复并避免手动复制代码带来的错误外,代码生成还最大限度地减少了 API 扩展和代码插桩的工作量。这一点在我们实现 MPI-4 大计数函数以及原型设计下一代 MPI 性能分析接口 QMPI 中得到了证明。
引用
@article{arxiv.2401.16547,
title = {Generating Bindings in MPICH},
author = {Hui Zhou and Ken Raffenetti and Wesley Bland and Yanfei Guo},
journal= {arXiv preprint arXiv:2401.16547},
year = {2024}
}