#hpc #heterogeneous #run-time #gpu #fpga

app mcl_sched

本软件包提供并安装了MCL(Minos计算库)调度器'mcl_sched'的包装器

4个版本

0.1.0 2023年6月23日
0.1.0-rc32023年2月24日
0.1.0-rc2023年2月1日

495硬件支持

每月 22 次下载

自定义许可协议

1MB
23K SLoC

C 21K SLoC // 0.1% comments Automake 521 SLoC // 0.0% comments Rust 293 SLoC // 0.3% comments Shell 172 SLoC // 0.0% comments M4 83 SLoC // 0.6% comments BASH 43 SLoC C++ 29 SLoC Perl 11 SLoC // 0.5% comments Batch 10 SLoC // 0.3% comments GNU Style Assembly 7 SLoC // 0.4% comments

mcl_sched

本软件包提供MCL(Minos计算库)调度器'mcl_sched'的安装式包装器

摘要

这是一个方便的软件包,用于构建和安装MCL(Minos计算库)调度器'mcl_sched'。可以使用以下命令安装:

cargo install mcl_sched

安装的mcl_sched二进制文件可以与基于C和Rust的MCL应用程序一起使用(尽管C应用程序可能已经手动构建了调度器)。安装后,调度器的使用方法与手动从源代码构建相同。

此包装器将尝试使用系统默认的OpenCL实现。如果没有找到,您将被提示设置OCL_PATH_INCOCL_PATH_LIB环境变量,以便指向适当的OpenCL头文件和库。对于复杂的安装,我们建议手动构建MCL。有关说明,请参阅MCL

安装mcl_sched

所需库/软件包

  • libmcl-sys及其依赖项
    • Clang
    • OpenCL
    • Autotools
    • MCL(手动安装或通过cargo install mcl_sched安装)
  • 在Cargo.toml中列出的其他软件包

说明

mcl_sched依赖于软件包libmcl-sys,它为MCL的C库提供底层Rust绑定

libmcl-sys使用Clang从MCL头文件生成底层Rust绑定,因此如果Clang不可用,则必须将其安装到系统中。

  1. 安装Clang

解决所有依赖项后,我们可以安装mcl_sched。

cargo install mcl_sched

运行

mcl_sched附带一系列单元测试,可以使用以下命令执行:

mcl_sched

功能标志

我们重新公开了三个功能标志(来自libmcl-rs),大致对应于底层MCL C库的配置选项

  1. mcl_debug - 启用底层MCL C库的调试日志输出
  2. shared_mem - 启用进程间主机共享内存缓冲区 -- 这将启用一些不安全的API
  3. pocl_extensions - 启用基于设备进程间的共享内存缓冲区,需要已成功安装修补版的POCL 1.8(更多信息请参阅 https://github.com/pnnl/mcl/tree/dev#using-custom-pocl-extensions)-- 这将启用一些不安全的API

状态

MCL、libmcl-sys 和 mcl_sched 是研究原型,仍在开发中,因此并非所有预期功能都已实现。

联系方式

如有任何MCL问题,请联系PNNL的Roberto Gioiosa([email protected])。有关Rust相关问题的咨询,请联系PNNL的Ryan Friese([email protected]

MCL-Rust团队

Roberto Gioiosa
Ryan Friese
Polykarpos Thomadakis

许可证

本项目采用BSD许可证授权 - 有关详细信息,请参阅LICENSE文件。

参考文献

如果您想引用MCL,请使用以下参考文献

  • Roberto Gioiosa, Burcu O. Mutlu, Seyong Lee, Jeffrey S. Vetter, Giulio Picierro, and Marco Cesati. 2020. The Minos Computing Library: efficient parallel programming for extremely heterogeneous systems. In Proceedings of the 13th Annual Workshop on General Purpose Processing using Graphics Processing Unit (GPGPU '20). Association for Computing Machinery, New York, NY, USA, 1–10. DOI:https://doi.org/10.1145/3366428.3380770

其他利用或描述MCL其他功能的作业

  • A. V. Kamatar, R. D. Friese 和 R. Gioiosa, "Locality-Aware Scheduling for Scalable Heterogeneous Environments," 2020 IEEE/ACM International Workshop on Runtime and Operating Systems for Supercomputers (ROSS), 2020, pp. 50-58, doi:10.1109/ROSS51935.2020.00011.
  • Rizwan Ashraf 和 Roberto Gioiosa, "Exploring the Use of Novel Spatial Accelerators in Scientific Applications" 2020 ACM/SPEC International Conference on Performance Engineering (ICPE), 2022.

依赖项

~1.2–3.5MB
~72K SLoC