Raja هي مكتبة من تجريدات البرمجيات C ++ ، والتي تم تطويرها بشكل أساسي في مختبر لورنس ليفرمور الوطني (LLNL) ، والتي تتيح قابلية نقل النموذج للعمارة والبرمجة لتطبيقات HPC. لدى رجا هدفين رئيسيين:
يوفر Raja تنفيذ حلقة محمولة ومتوازية من خلال توفير لبنات بناء تمتد بالتوازي المقبول عمومًا للتصفيات. يعتمد رجا على ميزات C ++ 14 القياسية.
تصميم Raja متجذر منذ عقود من الخبرة في العمل على تطبيقات الإنتاج متعددة المواد القائمة على شبكة الإنتاج. استنادًا إلى تنوع الخوارزميات وأنماط هندسة البرمجيات المستخدمة في مثل هذه التطبيقات ، تم تصميم Raja لتمكين مطوري التطبيقات من تكييف مفاهيم Raja وتخصصها لأنماط تنفيذ الكود المختلفة واستخدام C ++.
تشارك Raja الأهداف والمفاهيم الموجودة في مقاربات تجريد C ++ الأخرى ، مثل Kokkos و Thrust. ومع ذلك ، فإنه يتضمن مفاهيم وقدرات غائبة في النماذج الأخرى الأساسية للتطبيقات التي نعمل معها.
من المهم أن نلاحظ أنه على الرغم من استخدام Raja في مجموعة متنوعة من تطبيقات الإنتاج ، إلا أنه من العمل بشكل كبير. مجتمع الباحثين ومطوري التطبيقات في LLNL الذي يساهم بنشاط في نموه. تحتوي الإصدارات المتوفرة كإصدارات Github على ميزات جيدة الاستخدام والمختبر جيدًا. واجهاتنا الأساسية مستقرة إلى حد ما بينما يتم تحسين التطبيقات الأساسية. ستظهر ميزات إضافية في الإصدارات المستقبلية.
كود رجا يعيش في مستودع جيثب. لاستنساخ الريبو ، استخدم الأمر:
git clone --recursive https://github.com/llnl/raja.git
بعد ذلك ، يمكنك بناء Raja مثل أي مشروع CMAKE آخر ، شريطة أن يكون لديك برنامج التحويل البرمجي C ++ يدعم معيار C ++ 14. إن أبسط طريقة لبناء الرمز ، باستخدام برنامج التحويل البرمجي الافتراضي لنظامك ، هي تشغيل التسلسل التالي للأوامر في دليل Raja من المستوى الأعلى (لا يُسمح ببناء المصدر!):
mkdir build
cd build
cmake ../
make
توجد مزيد من التفاصيل حول خيارات تكوين Raja في دليل مستخدم Raja (مرتبط أدناه).
نحافظ أيضًا على مشروع قالب Raja يوضح كيفية استخدام Raja في مشروع Cmake ، إما كوحدة فرعية git أو كمكتبة مثبتة.
دليل مستخدم Raja هو أفضل مكان للبدء في التعرف على Raja وكيفية استخدامه.
أحدث إصدار من دليل المستخدم (Raja تطوير فرع): https://raja.readthedocs.io
للوصول إلى مستندات لإصدارات Raja الأخرى التي تم إصدارها: https://readthedocs.org/projects/raja/
نحافظ على مستودع لمواد برنامج Raja Portaility Suite: https://github.com/llnl/raja-suite-tutorial
للاستشهاد رجا ، يرجى استخدام المراجع التالية:
طبقة قابلية الأداء في رجا. https://github.com/llnl/raja
Da Beckingsale ، J. Burmark ، R. Hornung ، H. Jones ، W. Killian ، AJ Kunen ، O. Pearce ، P. Robinson ، BS Ryujin ، Trw Scogland ، "Raja: Portable Performance للتطبيقات العلمية على نطاق واسع" ، 2019 ورشة عمل IEEE/ACM الدولية حول الأداء ، وقابلية النقل والإنتاجية في HPC (P3HPC). تنزيل هنا
يحتوي جناح Raja Performance على مجموعة من حبات الحلقة التي تم تنفيذها في العديد من المتغيرات Raja وغير Raja. نحن نستخدمه لمراقبة وتقييم أداء Raja على منصات مختلفة باستخدام مجموعة متنوعة من المترجمين. يستخدم العديد من بائعي المترجمين الرئيسيين الجناح لتحسين دعمهم للتجريدات مثل Raja. يعد مجموعة Raja Performance Suite مصدرًا ممتازًا لاستخدام Raja حيث يمكنك مقارنة المتغيرات Raja وغير Raja لمجموعة متنوعة من النواة المختلفة ونهايات Raja الخلفية.
يحتوي مستودع Proxies Raja على إصدارات Raja من العديد من تطبيقات وكيل HPC الهامة.
يوفر Chai تجريدًا مُدارًا يعمل مع Raja لنسخ البيانات المستخدمة تلقائيًا في حبات Raja إلى المساحة المناسبة للتنفيذ. تم تطويره كمكمل لرجا.
الطريقة الأكثر فعالية للتواصل مع فريق تطوير Raja الأساسي هي عبر قائمتنا البريدية: [email protected]
نرحب أيضًا بالانضمام إلى مجموعة Raja Google.
إذا كانت لديك أسئلة أو ابحث عن خطأ أو لديك أفكار حول توسيع وظائف أو قابلية تطبيق Raja وتهتم بالمساهمة في تطويرها ، فيرجى عدم التردد في الاتصال بنا. نحن مهتمون جدًا بتحسين رجا واستكشاف طرق جديدة لاستخدامه.
يتبع فريق Raja نموذج تطوير Gitflow. يجب على الأشخاص الذين يرغبون في المساهمة في رجا ، أن يشملوا عملهم في فرع ميزة تم إنشاؤه من فرع Raja develop
. يحتوي هذا الفرع على أحدث أعمال في رجا. ثم ، قم بإنشاء طلب سحب مع فرع develop
كوجهة. بشكل دوري ، نقوم بدمج فرع التطوير في الفرع main
ووضع علامة على إصدار جديد.
يرجى الاطلاع على صفحة المساهمين Raja ، لمعرفة القائمة الكاملة للمساهمين في المشروع.
Raja مرخصة بموجب ترخيص BSD 3-Cause.
يتم الاحتفاظ بحقوق الطبع والنشر وبراءات الاختراع في مشروع Raja من قبل المساهمين. لا يوجد أي مهمة حقوق الطبع والنشر مطلوبة للمساهمة في رجا.
Open Source Open غير المحدود-توزيع BSD 3-طبقة LLNL-CODE-689114
OCEC-16-063
للحصول على تفاصيل الإصدار والقيود ، يرجى الاطلاع على المعلومات في ما يلي:
تحتوي الملفات الفردية على علامات SPDX بدلاً من نص الترخيص الكامل. يتيح هذا معالجة الجهاز لمعلومات الترخيص بناءً على معرفات ترخيص SPDX المتوفرة هنا: https://spdx.org/licenses/
تحتوي الملفات المرخصة على أنها BSD 3 ، على النص التالي في رأس الترخيص:
SPDX-License-Identifier: (BSD-3-Clause)
يقوم Raja بتجميع تبعياتها الخارجية كفيروسات فرعية في مستودع GIT. وتتم تغطية هذه الحزم من خلال تراخيص متساهلة مختلفة. يتبع قائمة ملخص. راجع الترخيص المدرج مع كل حزمة للحصول على التفاصيل الكاملة.
Packagename: BLT
PackagehomePage: https://github.com/llnl/blt
PackagelicensedEclared: BSD-3-cause
Packagename: Camp
PackagehomePage: https://github.com/llnl/camp
PackagelicensedEclared: BSD-3-cause
Packagename: شبل
PackagehomePage: https://github.com/nvlabs/cub
PackagelicensedEclared: BSD-3-cause
Packagename: Rocprim
PackagehomePage: https://github.com/rocmsoftwareplatform/rocprim.git
PackagelicensedEclared: ترخيص معهد ماساتشوستس للتكنولوجيا