OPS (Oxford Parallel Library for Structured Mesh Solver) ist eine eingebettete domänenspezifische High-Level-Sprache zum Schreiben von strukturierten Multiblock-Mesh- Algorithmen sowie der entsprechenden Softwarebibliothek und Codeübersetzungstools, um die automatische Parallelisierung auf Multi-Core- und Many-Core-Architekturen zu ermöglichen . Mehrblockstrukturierte Netze. Die OPS-API ist in C/C++ und Fortran eingebettet.
Dieses Repository enthält die Implementierung der Back-End-Bibliothek und des Codegenerators und ist wie folgt aufgebaut:
ops
: Implementierung der Benutzer- und Laufzeit-OPS-C/C++-APIsapps
: Anwendungsbeispiele in C. Dies sind Beispiele für Benutzeranwendungscode und umfassen auch den vom OPS-Codegenerator generierten parallelen Zielcode.ops_translator
: Python/Clang/Fparser/jinja2-basierter OPS-Codegenerator für die C/C++/Fortran-API (neue Codegenerierungs-Engine). Hinweis: Bitte beachten Sie die Anweisungen unter „Dokumente lesen“. Einzelheiten zu Python-Abhängigkeiten, die für die Verwendung dieser Codegenerierung erforderlich sind.ops_translator_legacy
: Python-OPS-Codegenerator für C/C++/Fortran-API (alte Codegenerierungs-Engine)scripts
: Beispielskripte zum Festlegen von Umgebungsvariablen und Testen von Anwendungencmake
: cmake-Installationsdateienmakefiles
: Makefile-basierte Installationsdateiendoc
: Dokumentation Die OPS-Dokumentation kann unter „Dokumente lesen“ eingesehen werden.
Um OPS zu zitieren, verweisen Sie bitte auf das folgende Dokument:
IZ Reguly, GR Mudalige und MB Giles, Loop Tiling in Large-Scale Stencil Codes at Run-Time with OPS, in IEEE Transactions on Parallel and Distributed Systems, vol. 29, nein. 4, S. 873–886, 1. April 2018, 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}}
Die bevorzugte Methode zum Melden von Fehlern und Problemen mit OPS besteht darin, ein Problem über den Issue-Tracker des Repositorys einzureichen. Benutzer können den Autoren auch direkt eine E-Mail senden, indem sie sich an das OP-DSL-Team wenden.
Um zu OPS beizutragen, gehen Sie bitte wie folgt vor:
develop
des OPS-Repositorys erstellen Die Beiträge im develop
werden mit dem Master-Zweig zusammengeführt, wenn wir eine neue Version erstellen.
OPS wird als Open-Source-Projekt unter der BSD-3-Clause-Lizenz veröffentlicht. Weitere Informationen finden Sie in der Datei LICENSE.