OPS (مكتبة أكسفورد الموازية لحلول الشبكات الهيكلية) هي لغة خاصة بمجال مضمن عالي المستوى لكتابة خوارزميات الشبكات المنظمة متعددة الكتل ، ومكتبة البرامج المقابلة وأدوات ترجمة التعليمات البرمجية لتمكين الموازاة التلقائية في البنى متعددة النواة ومتعددة النواة . شبكات منظمة متعددة الكتل. واجهة برمجة تطبيقات OPS مضمنة في C/C++ وFortran.
يحتوي هذا المستودع على تنفيذ المكتبة الخلفية ومولد الأكواد، وهو منظم على النحو التالي:
ops
: تنفيذ واجهات برمجة التطبيقات الخاصة بالمستخدم ووقت التشغيل OPS C/C++apps
: أمثلة التطبيقات في لغة C. هذه أمثلة على كود تطبيق المستخدم وتتضمن أيضًا الكود الموازي المستهدف الذي تم إنشاؤه بواسطة كود OPS الذي تم إنشاؤه r.ops_translator
: مولد أكواد OPS المستند إلى Python/Clang/Fparser/jinja2 لـ C/C++/Fortran API (محرك توليد الأكواد الجديد). ملحوظة: يرجى الرجوع إلى التعليمات المقدمة في قراءة المستندات. للحصول على تفاصيل حول تبعيات Python المطلوبة للاستفادة من إنشاء التعليمات البرمجية هذا.ops_translator_legacy
: مولد أكواد Python OPS لـ C/C++/Fortran API (محرك إنشاء التعليمات البرمجية القديم)scripts
: أمثلة على البرامج النصية لإعداد المتغيرات البيئية واختبار التطبيقاتcmake
: ملفات التثبيت cmakemakefiles
: ملفات التثبيت المستندة إلى makefiledoc
: التوثيق يمكن الاطلاع على وثائق OPS على قراءة المستندات.
للاستشهاد بـ OPS، يرجى الرجوع إلى الورقة التالية:
IZ Reguly، GR Mudalige وMB Giles، حلقة التجانب في رموز الاستنسل واسعة النطاق في وقت التشغيل مع OPS، في معاملات IEEE على الأنظمة المتوازية والموزعة، المجلد. 29، لا. 4، الصفحات من 873 إلى 886، 1 أبريل 2018، دوى: 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
لمستودع OPS سيتم دمج المساهمات في فرع develop
في الفرع الرئيسي عندما نقوم بإنشاء إصدار جديد.
تم إصدار OPS كمشروع مفتوح المصدر بموجب ترخيص BSD 3-Clause. راجع الملف المسمى LICENSE لمزيد من المعلومات.