تمثل قابلية نقل الأداء الافتراض بأن قاعدة التعليمات البرمجية الفردية للمطور ستعمل بشكل جيد على البنيات الجديدة وتحافظ على حدود أداء مقبولة على مجموعة متنوعة من البنيات الحالية التي لم يتم اختبارها بعد.
يعد تعريف وقياس قابلية نقل الأداء محل جدال ساخن. يزعم البعض أن الأمر يتعلق في المقام الأول بإمكانية نقل التطبيقات، في حين يصر البعض الآخر على أن إمكانية نقل الكود المصدري هي المفتاح. وخاصة في الوضع الحالي حيث تتغير الأجهزة مع كل يوم يمر، يحتاج المطورون إلى التفكير في كيفية تمكين منتجاتهم من الاستمرار في العمل على منصات متعددة. يؤكد برنامج الحوسبة الفائقة التابع لوزارة الطاقة الأمريكية (ECP) على هذه النقطة حيث يحتاجون إلى إنشاء نظام بيئي حاسوبي متوافق مع بنيات الأجهزة المختلفة.
عند تقييم قابلية نقل الأداء، عادةً ما يأخذ المطورون في الاعتبار عاملين: قابلية النقل والأداء. يمكن قياس قابلية النقل من خلال النظر إلى أسطر التعليمات البرمجية المستخدمة في مختلف المعماريات، بينما يمكن تحديد الأداء من خلال مقارنة الإصدارات المحسّنة للمنصة مع الإصدارات المحمولة. على الرغم من هذه الطرق القياسية، لا تزال الصناعة تفتقر إلى المعايير الشفافة، مما يجعل من الصعب على المطورين فهم كيفية تحقيق أفضل أداء من حيث قابلية النقل بشكل واضح.من المعتقد عمومًا أن "كود واحد يمكن أن يعمل جيدًا على هياكل معمارية متعددة، وهذا ما يسمى بقابلية نقل الأداء."
في مؤتمر قابلية النقل الذي نظمته وزارة الطاقة الأمريكية عام 2016، انخرط المشاركون في نقاش حاد حول قابلية نقل الأداء. حضر الاجتماع العديد من المطورين والعلماء المعروفين لمشاركة رؤى ومتطلبات جديدة لقابلية الأداء للنقل. ومن الجدير بالذكر أن هناك وجهة نظر مفادها أن قابلية نقل الأداء التي توفرها نماذج البرمجة المتوازية المستقبلية ستكون أكثر أهمية مما تستطيع التطبيقات نفسها توفيره.
كما ذكر في الاجتماع، "يصبح الكود قابلاً للنقل عندما يعتبره فريق التطبيق قابلاً للنقل."
في مواجهة منصات الأجهزة المتنوعة، يحتاج المطورون إلى العثور على إطار عمل مناسب لدعم الكود الخاص بهم. تزعم الأطر المعروفة مثل OpenCL وSYCL وOpenMP أنها تسهل نقل الوظائف. تدعم هذه الأطر البرمجة المتوازية على منصات متعددة، مما يسمح للمطورين بالبرمجة بلغات متعددة. ومع ذلك، بالإضافة إلى الأطر، هناك أيضًا حلول غير إطارية، مثل اللغات ذاتية الضبط واللغات الخاصة بالمجال، والتي يمكنها أيضًا المساعدة في تحسين قابلية نقل الأداء.
باختصار، أصبحت مسألة قابلية نقل الأداء ذات أهمية متزايدة في الحوسبة عالية الأداء لأنها تؤثر بشكل مباشر على كفاءة عمل المطور والتطوير المستدام للتطبيقات. مع تغير احتياجات الحوسبة في المستقبل والتقدم السريع في تكنولوجيا الحوسبة، كيف ينبغي للمطورين التكيف ومواجهة هذه التحديات؟