OPS
Version 1.00
OPS(结构化网格求解器的牛津并行库)是一种高级嵌入式领域特定语言,用于编写多块结构化网格算法,以及相应的软件库和代码翻译工具,以实现多核和众核架构上的自动并行化。多块结构化网格。 OPS API 嵌入在 C/C++ 和 Fortran 中。
该存储库包含后端库和代码生成器的实现,其结构如下:
ops
:用户和运行时 OPS C/C++ API 的实现apps
:C 语言的应用程序示例。这些是用户应用程序代码的示例,还包括 OPS 代码生成器生成的目标并行代码。ops_translator
:基于 Python/Clang/Fparser/jinja2 的 C/C++/Fortran API 的 OPS 代码生成器(新的代码生成引擎)。注意:请参阅阅读文档中提供的说明。有关使用此代码生成所需的 Python 依赖项的详细信息。ops_translator_legacy
:用于 C/C++/Fortran API 的 Python OPS 代码生成器(旧代码生成引擎)scripts
:用于设置环境变量和测试应用程序的示例脚本cmake
:cmake安装文件makefiles
:基于 makefile 的安装文件doc
:文档可以在阅读文档中查看 OPS 文档。
引用OPS,请参考以下论文:
IZ Reguly、GR Mudalige 和 MB Giles,使用 OPS 运行时大规模模板代码中的循环平铺,载于 IEEE Transactions on Parallel and Distributed Systems,卷。 29、没有。 4,第 873-886 页,2018 年 4 月 1 日,doi:10.1109/TPDS.2017.2778161。
@ARTICLE{Reguly_et_al_2018,
author={Reguly, István Z. and Mudalige, Gihan R. and Giles, Michael B.},
journal={IEEE Transactions on Parallel and Distributed Systems},
title={Loop Tiling in Large-Scale Stencil Codes at Run-Time with OPS},
year={2018},
volume={29},
number={4},
pages={873-886},
doi={10.1109/TPDS.2017.2778161}}
报告 OPS 错误和问题的首选方法是通过存储库的问题跟踪器提交问题。用户还可以通过联系 OP-DSL 团队直接向作者发送电子邮件。
要为 OPS 做出贡献,请使用以下步骤:
develop
分支创建拉取请求来提交更改当我们创建新版本时, develop
分支中的贡献将合并到主分支中。
OPS 在 BSD 3-Clause License 下作为开源项目发布。有关详细信息,请参阅名为 LICENSE 的文件。