إكس إم تي سي

XMTC (اختصارًا لـ explicit multi-threading C ) هي لغة برمجة متوازية تعتمد على الذاكرة المشتركة. وهي امتداد للغة البرمجة C، وتسعى إلى تسهيل البرمجة الشبيهة بـ PRAM بالاعتماد على نموذج البرمجة المتوازية الصريحة . وقد طُوّرت كجزء من رؤية XMT PRAM-On-Chip من قِبل فريق بحثي في ​​جامعة ميريلاند، كوليدج بارك ، بقيادة الدكتور عوزي فيشكين .

تقوم فلسفة XMTC ومشروع XMT برمته على أن البرمجة المتوازية مهمة فكرية معقدة، وأن منهجية بناء نظام مادي أولًا ثم محاولة برمجته لم تحقق نجاحًا يُذكر. لذا، ينبغي أن تكون نظرية خوارزمية متينة وتجريد مادي سهل نسبيًا هما المعياران الأساسيان لبناء بنية متوازية جديدة ولغة برمجة خاصة بها. بالنسبة للخوارزميات المتوازية، تُعرف النظرية الخوارزمية التي حظيت بأكبر قدر من الدراسات باسم PRAM ( آلة الوصول العشوائي المتوازية ). وهذا ليس من قبيل المصادفة، إذ تُعد PRAM طريقة طبيعية للتفكير الخوارزمي المتوازي. في أوائل التسعينيات، اعتُبر نموذج PRAM غير واقعي لأن التجريد المادي الذي استند إليه لم يكن قابلًا للتنفيذ (بسبب انخفاض عرض النطاق الترددي بين الرقاقات وارتفاع زمن الاستجابة). أما الآن، ومع إمكانية وضع معالجات متعددة على رقاقة واحدة، فقد زالت هذه القيود. تستفيد بنية XMT من هذه المساحة الإضافية على الرقاقة لتنفيذ تجريد PRAM.

لغة XMTC هي امتداد بسيط للغة C، وما زالت قيد التطوير. تقوم فكرتها الأساسية على أن المبرمج مسؤول عن توفير جميع إمكانيات التوازي المتاحة. ورغم أن هذا يبدو بسيطًا، وتشترك فيه العديد من المناهج السابقة، إلا أنه عمليًا، إذا حدد المبرمج عددًا كبيرًا جدًا من المهام المتوازية وكانت هذه المهام قصيرة، فسيكون أداء البرنامج ضعيفًا للغاية. ولتجاوز هذه المشكلة، يتم دمج المهام المتوازية القصيرة في مهمة واحدة أطول، وهي عادةً مسؤولية المبرمج. في XMTC، يمكن للغة القيام بذلك تلقائيًا، مما يُخفف العبء عن المبرمج.

إصدار برنامج XMTC: يسمح البرمجة الشبيهة بـ PRAM بتجربة برمجة XMTC على أجهزة الكمبيوتر القياسية.