OPS
Version 1.00
OPS(結構化網格求解器的牛津並行庫)是一種高級嵌入式領域特定語言,用於編寫多塊結構化網格演算法,以及相應的軟體庫和程式碼翻譯工具,以實現多核心和眾核架構上的自動並行化。多塊結構化網格。 OPS API 嵌入在 C/C++ 和 Fortran 中。
此儲存庫包含後端庫和程式碼產生器的實現,其結構如下:
ops
:使用者和執行時間 OPS C/C++ API 的實現apps
:C 語言的應用程式範例。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 的文件。