以数据为中心的并行程序设计框架
dace的Python项目详细描述
ace-以数据为中心的并行编程
将域科学与性能优化分离。
dace以各种编程语言和范例(python/numpy、matlab、tensorflow)编译代码,并高效地将其映射到cpu、gpu和fpgas,具有很高的利用率,与最新技术不相上下。驱动dace的关键特性是它的有状态数据流多图(sdfg)以数据为中心的中间表示:一种基于数据移动的可转换的交互式代码表示。 通过以数据为中心的并行编程,我们可以实现性能优化的直接知识转移,而不管是科学应用程序还是目标处理器。
dace可以在python中内联编写并在命令行中转换,或者sdfgs可以使用以数据为中心的交互式优化开发环境(diode)进行交互式修改。
有关更多信息,请参见我们的paper。
教程
- python中的隐式数据流(即将推出)
- Explicit Dataflow in Python
- SDFG API
- Transformations
安装和依赖项
要安装:pip install dace
运行时依赖项:
- 一个C++ 14编译器(例如,GCC 5.3 +)
- python 3.5或更新版本
运行二极管可能需要其他依赖项:
sudo apt-get install libgtksourceviewmm-3.0-dev libyaml-dev
sudo apt-get install python3-cairo python3-gi-cairo libgirepository1.0-dev xdot libwebkitgtk-dev libwebkitgtk-3.0-dev libwebkit2gtk-4.0-dev
pip install pygobject matplotlib
要在Windows上运行二极管,请使用msys2:
- 从http://www.msys2.org/ 下载
- 在msys2控制台中,安装所有依赖项:
pacman -S mingw-w64-i686-gtk3 mingw-w64-i686-python2-gobject mingw-w64-i686-python3-gobject mingw-w64-i686-python3-cairo mingw-w64-i686-python3-pip mingw-w64-i686-gtksourceviewmm3 mingw-w64-i686-gcc mingw-w64-i686-boost mingw-w64-i686-python3-numpy mingw-w64-i686-python3-scipy mingw-w64-i686-python3-matplotlib
- 更新msys2:
pacman -Syu
,关闭并重新启动msys2,然后运行pacman -Su
来更新其余的包。
出版物
如果您使用DACE,请引用我们:
@article{dace,author={Ben-Nun, Tal and de Fine Licht, Johannes and Ziogas, Alexandros Nikolaos and Schneider, Timo and Hoefler, Torsten},title={Stateful Dataflow Multigraphs: A Data-Centric Model for High-Performance Parallel Programs},journal={CoRR},volume={abs/1902.10345},year={2019},url={http://arxiv.org/abs/1902.10345},archivePrefix={arXiv},eprint={1902.10345}}
配置
dace在用户的主目录中创建一个名为.dace.conf
的文件。它提供了有用的设置,可以直接在文件(yaml)、二极管内修改,也可以使用以DACE_
开头的环境变量逐个重写,并指定设置(其中类别由下划线分隔)。完整配置架构位于here。
有用的环境变量配置包括:
DACE_CONFIG
(默认值:~/.dace.conf
):重写DACE配置文件选择。
上下文配置:
DACE_use_cache
(默认值:false):使用DACE程序缓存,而不是重新优化和编译程序。DACE_debugprint
(默认值:true):打印调试信息。
CPU目标配置:
- {
}(默认值:g++):为CPU代码选择默认的C++编译器。 DACE_compiler_cpu_additional_args
(默认值:none):其他编译器标志(用空格分隔)。
SDFG处理:
DACE_optimizer_interface
(默认值:dace.transformation.optimizer.SDFGOptimizer
):控制sdfg优化过程。如果空名称或类名无效,则跳过进程。默认情况下,使用转换命令行界面。DACE_optimizer_visualize
(默认值:false):通过在每次模式替换后保存.dot(graphviz)文件来可视化优化过程。
分析:
DACE_profiling
(默认值:false):以毫秒为单位启用DACE程序运行时的分析度量。生成日志文件并打印出中值运行时。DACE_treps
(默认值:100):启用分析时运行dace程序的重复次数。
贡献
DACE是一个开源项目。我们很高兴接受你的贡献拉请求!
许可证
DACE是在新的BSD许可证下发布的,请参阅许可证。