لغة C المتوازية الموحدة

لغة C المتوازية الموحدة ( UPC ) هي امتداد للغة البرمجة C، مصممة للحوسبة عالية الأداء على أجهزة متوازية واسعة النطاق ، بما في ذلك تلك التي تستخدم مساحة عناوين عالمية مشتركة ( SMP و NUMA ) وتلك التي تستخدم ذاكرة موزعة (مثل المجموعات الحاسوبية ). يُعرض للمبرمج مساحة عناوين عالمية مقسمة ، حيث يمكن قراءة وكتابة المتغيرات المشتركة مباشرةً من أي معالج ، ولكن كل متغير مرتبط فعليًا بمعالج واحد. تستخدم UPC نموذج حساب برنامج واحد وبيانات متعددة ( SPMD )، حيث يتم تحديد مستوى التوازي عند بدء تشغيل البرنامج، وعادةً ما يكون لكل معالج خيط تنفيذ واحد.

للتعبير عن التوازي، توسع UPC معيار ISO C  99 بالبنى التالية:

  • نموذج تنفيذ متوازٍ صريح
  • مساحة عناوين مشتركة ( sharedمؤهل تخزين) مع أجزاء محلية خاصة بالخيط (متغيرات عادية)
  • عناصر التزامن الأساسية ونموذج اتساق الذاكرة
  • أساسيات الاتصال الصريحة، على سبيل المثالupc_memput
  • أساسيات إدارة الذاكرة

تطورت لغة UPC من تجارب ثلاث لغات سابقة اقترحت امتدادات متوازية لمعيار ISO C  99: AC و Split-C ومعالج Parallel C المسبق (PCP). لا تُعد UPC مجموعة شاملة لهذه اللغات الثلاث، بل هي محاولة لاستخلاص أفضل خصائص كل منها. تجمع UPC بين مزايا قابلية البرمجة لنموذج برمجة الذاكرة المشتركة والتحكم في تخطيط البيانات وأداء نموذج برمجة تمرير الرسائل .

انظر أيضاً