Automatic parallelization tool
کئی سالوں سے متوازی ہارڈ ویئر صرف تقسیم شدہ کمپیوٹنگ کے لیے دستیاب تھا لیکن حال ہی میں یہ نچلے درجے کے کمپیوٹرز کے لیے بھی دستیاب ہو رہا ہے۔ اس لیے سافٹ ویئر پروگرامرز کے لیے متوازی ایپلی کیشنز لکھنا شروع کرنا ناگزیر ہو گیا ہے۔ پروگرامرز کے لیے ترتیب وار سوچنا بالکل فطری ہے اور اس لیے وہ ملٹی تھریڈ یا متوازی پروسیسنگ ایپلی کیشنز لکھنے سے کم واقف ہیں۔ متوازی پروگرامنگ میں مطابقت پذیری اور تعطل سے بچنے جیسے مختلف مسائل کو سنبھالنے کی ضرورت ہوتی ہے۔ پروگرامرز کو ایپلی کیشن ڈومین میں اپنی مہارت کے علاوہ اس طرح کی ایپلی کیشنز لکھنے کے لیے اضافی مہارت کی ضرورت ہوتی ہے۔ لہذا پروگرامر ترتیب وار کوڈ لکھنے کو ترجیح دیتے ہیں اور زیادہ تر مقبول پروگرامنگ زبانیں اس کی حمایت کرتی ہیں۔ یہ انہیں درخواست پر زیادہ توجہ مرکوز کرنے کی اجازت دیتا ہے۔ لہذا، اس طرح کی ترتیب وار ایپلی کیشنز کو خودکار ٹولز کی مدد سے متوازی ایپلی کیشنز میں تبدیل کرنے کی ضرورت ہے۔ ضرورت بھی غیر معمولی ہے کیونکہ گزشتہ چند دہائیوں میں لکھے گئے میراث کوڈ کی بڑی مقدار کو دوبارہ استعمال کرنے اور متوازی بنانے کی ضرورت ہے۔ خودکار متوازی کی ضرورت ماضی کی تکنیکوں نے فورٹرن اور سی جیسی زبانوں کے لیے حل فراہم کیے ؛ تاہم، یہ کافی نہیں ہیں۔ یہ تکنیکیں لوپ یا کوڈ کے مخصوص حصے جیسے مخصوص نظام کو ذہن میں رکھتے ہوئے متوازی حصوں سے نمٹتی ہیں۔ ملٹی تھریڈ ایپلی کیشن تیار کرتے وقت متوازی کے مواقع کی نشاندہی کرنا ایک اہم قدم ہے۔ ایپلی کیشنز کو متوازی بنانے کی اس ضرورت کو جزوی طور پر ٹولز کے ذریعے حل کیا جاتا ہے جو متوازی کا استحصال کرنے کے لیے کوڈ کا تجزیہ کرتے ہیں۔ یہ ٹولز یا تو کمپائل ٹائم تکنیک یا رن ٹائم تکنیک کا استعمال کرتے ہیں۔ یہ تکنیکیں کچھ متوازی مرتب کرنے والوں میں بلٹ ان ہوتی ہیں لیکن صارف کو متوازی کوڈ کی شناخت کرنے اور کوڈ کو خصوصی زبان کی تعمیرات کے ساتھ نشان زد کرنے کی ضرورت ہوتی ہے۔ مرتب کرنے والا ان زبان کی تعمیرات کی شناخت کرتا ہے اور متوازی کے لیے نشان زد کوڈ کا تجزیہ کرتا ہے۔ کچھ ٹولز کوڈ کی صرف خاص شکل جیسے لوپس کو متوازی بناتے ہیں۔ لہذا ترتیب وار کوڈ کو متوازی کوڈ میں تبدیل کرنے کے لیے ایک مکمل طور پر خودکار ٹول کی ضرورت ہے۔ متوازی کا عمومی طریقہ کار 1. یہ عمل کوڈ کے ان حصوں کی شناخت کے ساتھ شروع ہوتا ہے جو پروگرامر محسوس کرتا ہے کہ متوازی ہونے کے امکانات ہیں۔ اکثر یہ کام مشکل ہوتا ہے کیونکہ جو پروگرامر کوڈ کو متوازی بنانا چاہتا ہے اس نے اصل میں زیر غور کوڈ نہیں لکھا ہے۔ ایک اور امکان یہ ہے کہ پروگرامر ایپلیکیشن ڈومین میں نیا ہے۔ اس طرح، اگرچہ متوازی عمل کا یہ پہلا مرحلہ شروع میں آسان لگتا ہے لیکن ایسا نہیں بھی ہو سکتا۔ 2. اگلا مرحلہ کوڈ کے حصوں کو ان شناخت شدہ حصوں میں سے شارٹ لسٹ کرنا ہے جو اصل میں متوازی ہیں۔ یہ مرحلہ پھر سے سب سے اہم اور مشکل ہے کیونکہ اس میں بہت زیادہ تجزیہ شامل ہوتا ہے۔ عام طور پر سی/سی + + میں کوڈز کے لیے جہاں اشارے شامل ہوتے ہیں تجزیہ کرنا مشکل ہوتا ہے۔ بہت سی خاص تکنیکیں جیسے پوائنٹر عرف تجزیہ، افعال کے ضمنی اثرات کا تجزیہ یہ نتیجہ اخذ کرنے کے لیے ضروری ہے کہ آیا کوڈ کا کوئی حصہ کسی دوسرے کوڈ پر منحصر ہے یا نہیں۔ اگر شناخت شدہ کوڈ کے حصوں میں انحصار زیادہ ہے تو متوازی ہونے کے امکانات کم ہو جاتے ہیں۔ 3. بعض اوقات کوڈ کو تبدیل کرکے انحصار کو ہٹا دیا جاتا ہے اور یہ متوازی کا اگلا مرحلہ ہوتا ہے۔ کوڈ کو اس طرح تبدیل کیا جاتا ہے کہ فعالیت اور اس وجہ سے آؤٹ پٹ تبدیل نہیں ہوتا ہے لیکن دوسرے کوڈ سیکشن یا دیگر ہدایات پر انحصار، اگر کوئی ہو تو اسے ہٹا دیا جاتا ہے۔ 4. متوازی کاری کا آخری مرحلہ متوازی کوڈ تیار کرنا ہے۔ یہ کوڈ عملی طور پر ہمیشہ اصل ترتیب وار کوڈ سے ملتا جلتا ہوتا ہے لیکن اس میں اضافی تعمیرات یا کوڈ کے حصے ہوتے ہیں جن پر عمل درآمد ہونے پر متعدد دھاگے یا عمل پیدا ہوتے ہیں۔ خودکار متوازی کاری کی تکنیک مرکزی مضمون خودکار متوازی کاری بھی دیکھیں۔ اسکین یہ پہلا مرحلہ ہے جہاں اسکینر تمام جامد اور بیرونی استعمال کی شناخت کے لیے ان پٹ سورس فائلوں کو پڑھے گا۔ فائل کی ہر لائن کو ٹوکن میں الگ کرنے کے لیے پہلے سے طے شدہ نمونوں کے خلاف چیک کیا جائے گا۔ یہ ٹوکن ایک فائل میں محفوظ کیے جائیں گے جو بعد میں گرامر انجن کے ذریعے استعمال کیے جائیں گے۔ گرائمر انجن ٹوکن کے نمونوں کی جانچ کرے گا جو متغیرات، لوپس، کنٹرول کے بیانات، افعال وغیرہ کی شناخت کے لیے پہلے سے طے شدہ اصولوں سے میل کھاتے ہیں۔ کوڈ میں۔ تجزیہ تجزیہ کار کا استعمال کوڈ کے ان حصوں کی شناخت کے لیے کیا جاتا ہے جنہیں بیک وقت انجام دیا جا سکتا ہے۔ تجزیہ کار اسکینر-پارسر کے ذریعہ فراہم کردہ جامد ڈیٹا کی معلومات کا استعمال کرتا ہے۔ تجزیہ کار پہلے ان تمام افعال کا پتہ لگائے گا جو ایک دوسرے سے مکمل طور پر آزاد ہیں اور انہیں انفرادی کاموں کے طور پر نشان زد کرے گا۔ پھر تجزیہ کار کو پتہ چلتا ہے کہ کون سے کاموں میں انحصار ہے۔ شیڈول شیڈولر تمام کاموں اور ان کے انحصار کو ایک دوسرے پر عمل درآمد اور آغاز کے اوقات کے لحاظ سے درج کرے گا۔ شیڈولر استعمال کیے جانے والے پروسیسرز کی تعداد یا درخواست کے لیے عمل درآمد کے کل وقت کے لحاظ سے زیادہ سے زیادہ شیڈول تیار کرے گا۔ کوڈ جنریشن شیڈولر تمام کاموں کی فہرست اور ان کور کی تفصیلات تیار کرے گا جن پر وہ اس وقت کے ساتھ عمل کریں گے جس کے لیے وہ عمل کریں گے۔ کوڈ جنریٹر کوڈ میں خصوصی تعمیرات داخل کرے گا جو شیڈولر کے ذریعے عمل کے دوران پڑھی جائیں گی۔ یہ تعمیرات شیڈولر کو ہدایت دیں گی کہ آغاز اور اختتام کے اوقات کے ساتھ ساتھ کوئی خاص کام کس کور پر انجام دیا جائے گا۔ متوازی ٹولز فورٹرن، سی، سی + +، اور کئی دیگر زبانوں کے لیے متعدد خودکار متوازی ٹولز موجود ہیں۔ یو سی سی اے یو سی سی اے کے پی آئی ٹی ٹیکنالوجیز لمیٹڈ پونے کے ذریعہ تیار کردہ متوازی خودکار کوڈ کے تبادلے کا ایک ٹول ہے۔ یہ ان پٹ کو سی سورس کوڈ کے طور پر لیتا ہے جس میں متعدد سورس اور ہیڈر فائلیں ہو سکتی ہیں۔ یہ پیتھریڈز فنکشنز اور اوپن ایم پی کنسٹرکٹس کا استعمال کرتے ہوئے تبدیل شدہ ملٹی تھریڈ متوازی کوڈ کے طور پر آؤٹ پٹ دیتا ہے۔ YUCCA ٹول ٹاسک اور لوپ کی سطح کو متوازی بناتا ہے۔ پار 4 آل پار 4 آل سی اور فورٹرن ترتیب وار پروگراموں کے لیے ایک خودکار متوازی اور بہتر بنانے والا مرتب (ورک بینچ) ہے۔ اس سورس ٹو سورس مرتب کرنے والے کا مقصد موجودہ ایپلی کیشنز کو مختلف ہارڈ ویئر کے اہداف جیسے ملٹی کور سسٹمز، اعلی کارکردگی والے کمپیوٹرز اور جی پی یوز کے مطابق ڈھالنا ہے۔ یہ ایک نیا سورس کوڈ بناتا ہے اور اس طرح ایپلی کیشن کے اصل سورس کوڈ کو تبدیل نہیں ہونے دیتا ہے۔ سیٹاس سیٹاس سافٹ ویئر پروگراموں کے ماخذ سے ماخذ میں تبدیلی کے لیے ایک مرتب کرنے والا بنیادی ڈھانچہ ہے۔ یہ پروجیکٹ پرڈیو یونیورسٹی نے تیار کیا ہے۔ سیٹس جاوا میں لکھا گیا ہے۔ یہ خودکار متوازی ٹولز یا مرتب لکھنے کے لیے بنیادی ڈھانچہ فراہم کرتا ہے۔ سیٹس فی الحال جو بنیادی متوازی تکنیک نافذ کر رہا ہے وہ نجکاری، تخفیف متغیرات کی شناخت اور انڈکشن متغیر متبادل ہیں۔ فروری 2013 میں ایک نیا گرافک یوزر انٹرفیس (جی یو آئی) شامل کیا گیا۔ مئی 2013 میں اسپیڈ اپ حساب اور گراف ڈسپلے شامل کیے گئے۔ کلائنٹ سرور ماڈل میں ایک سیٹاس ریموٹ سرور مئی 2013 میں شامل کیا گیا تھا اور صارفین سرور کے ذریعے اختیاری طور پر سی کوڈ کو تبدیل کر سکتے ہیں۔ یہ خاص طور پر مفید ہوتا ہے جب صارفین غیر لینکس پلیٹ فارم پر سیٹاس چلاتے ہیں۔ سیٹس کا ایک تجرباتی حبزیرو ورژن بھی مئی 2013 میں نافذ کیا گیا تھا اور صارفین ویب براؤزر کے ذریعے بھی سیٹس کو چلا سکتے ہیں۔ پلوٹو پلوٹو پولی ہیڈرل ماڈل پر مبنی ایک خودکار متوازی ٹول ہے۔ کمپائلر آپٹیمائزیشن کے لیے پولی ہیڈرل ماڈل ان پروگراموں کے لیے ایک نمائندگی ہے جو لوپ نیسٹ آپٹیمائزیشن اور لوپ متوازی جیسے اعلی سطحی تبدیلیوں کو انجام دینا آسان بناتا ہے۔ پلوٹو سی پروگراموں کو موٹے دانے والے متوازی اور ڈیٹا لوکیٹی کے لیے ایک ماخذ سے دوسرے ماخذ میں بیک وقت تبدیل کرتا ہے۔ بنیادی تبدیلی کا فریم ورک بنیادی طور پر موثر ٹائلنگ اور فیوژن کے لیے افائن تبدیلیوں کو تلاش کرکے کام کرتا ہے، لیکن ان تک محدود نہیں ہے۔ ملٹی کورز کے لیے اوپن ایم پی متوازی کوڈ ترتیب وار سی پروگرام کے حصوں سے خود بخود تیار کیا جا سکتا ہے۔ پولارس مرتب ایک فورٹرن 77 پروگرام کو ان پٹ کے طور پر لیتا ہے، اس پروگرام کو تبدیل کرتا ہے تاکہ یہ متوازی کمپیوٹر پر موثر طریقے سے چلے، اور اس پروگرام ورژن کو کئی ممکنہ متوازی فورٹرن بولیوں میں سے ایک میں آؤٹ پٹ کرتا ہے۔ پولارس کئی "تالیف پاسز" میں اپنی تبدیلیاں انجام دیتا ہے۔ بہت سے عام طور پر معروف پاس کے علاوہ، پولارس میں درج ذیل کاموں کو انجام دینے والی جدید صلاحیتیں شامل ہیں: صف کی نجکاری، ڈیٹا انحصار کی جانچ، انڈکشن متغیر شناخت، بین طریقہ کار تجزیہ، اور علامتی پروگرام تجزیہ۔ انٹیل سی + + مرتب انٹیل سی + + مرتب کی خودکار متوازی خصوصیت خود بخود ان پٹ پروگرام کے سیریل حصوں کو لفظی طور پر مساوی کثیر تھریڈ کوڈ میں ترجمہ کرتی ہے۔ خودکار متوازی کاری ان لوپس کا تعین کرتی ہے جو کام کا اشتراک کرنے والے اچھے امیدوار ہیں، درست متوازی عمل کی تصدیق کے لیے ڈیٹا فلو تجزیہ انجام دیتی ہے، اور تھریڈڈ کوڈ جنریشن کے لیے ڈیٹا کو پارٹیشن کرتی ہے جیسا کہ اوپن ایم پی ہدایات کے ساتھ پروگرامنگ میں درکار ہوتا ہے۔ اوپن ایم پی اور آٹو متوازی ایپلی کیشنز ملٹی پروسیسر سسٹمز پر مشترکہ میموری سے کارکردگی کے فوائد فراہم کرتی ہیں۔ انٹیل ایڈوائزر انٹیل ایڈوائزر 2017 ایک ویکٹرائزیشن آپٹیمائزیشن اور تھریڈ پروٹو ٹائپنگ ٹول ہے۔ یہ متوازی سائٹس کی تلاش کے لیے اپنے ورک فلو میں کئی مراحل کو مربوط کرتا ہے، صارفین کو ویکٹرائزیشن اور تھریڈنگ کے لیے لوپس کو نشان زد کرنے کے قابل بناتا ہے، نشان زدہ لوپس کے لیے لوپ لے جانے والے انحصار اور میموری تک رسائی کے نمونوں کو چیک کرتا ہے، اور ویکٹرائزیشن اور تھریڈنگ کے لیے پراگما داخل کرتا ہے۔ آٹوپار آٹوپار ایک ایسا ٹول ہے جو خود بخود اوپن ایم پی پراگما کو ان پٹ سیریل سی/سی + + کوڈز میں داخل کر سکتا ہے۔ موجودہ اوپن ایم پی ہدایات والے ان پٹ پروگراموں کے لیے، صحیح آپشن آن ہونے پر ٹول درستگی کو دو بار چیک کرے گا۔ روایتی ٹولز کے مقابلے میں، آٹوپار متوازی ہونے کے مزید مواقع دریافت کرنے کے لیے صارف کے علم (سیمنٹکس) کو شامل کر سکتا ہے۔ آئی پیٹ/او ایم پی یہ ٹول صارفین کو اوپن ایم پی کو ترتیب وار پروگرام کے متوازی بنانے کے لیے درکار مدد فراہم کرتا ہے۔ یہ ٹول ایمیکس ایڈیٹر پر افعال کے ایک سیٹ کے طور پر لاگو کیا گیا ہے۔ پروگرام کو متوازی بنانے سے متعلق تمام سرگرمیاں، جیسے پروگرام کے ہدف والے حصے کا انتخاب کرنا، اسسٹنس کمانڈ کی درخواست کرنا، اور ٹول کے ذریعے دکھائی گئی امدادی معلومات کی بنیاد پر پروگرام میں ترمیم کرنا، سورس پروگرام ایڈیٹر ماحول میں سنبھالی جا سکتی ہیں۔ ویانا فورٹرن مرتب (وی ایف سی) یہ ایچ پی ایف + (ایچ پی ایف کا بہتر ورژن) کے لیے ایک نیا سورس ٹو سورس متوازی نظام ہے، جو بے قاعدہ ایپلی کیشنز کی ضروریات کو پورا کرتا ہے۔ ایس یو آئی ایف مرتب کرنے والا ایس یو آئی ایف (اسٹینفورڈ یونیورسٹی انٹرمیڈیٹ فارمیٹ) ایک مفت بنیادی ڈھانچہ ہے جو مرتب کرنے والوں کو بہتر بنانے اور متوازی بنانے میں باہمی تعاون پر مبنی تحقیق کی حمایت کے لیے ڈیزائن کیا گیا ہے۔ ایس یو آئی ایف ایک مکمل طور پر فعال مرتب ہے جو فورٹرن اور سی دونوں کو ان پٹ زبانوں کے طور پر لیتا ہے۔ متوازی کوڈ پروگرام کے ایس پی ایم ڈی (سنگل پروگرام ملٹی پل ڈیٹا) متوازی سی ورژن کے طور پر آؤٹ پٹ ہے جسے مقامی سی مرتب کرنے والوں کے ذریعے مختلف آرکیٹیکچرز پر مرتب کیا جا سکتا ہے۔ اونی اوپن ایم پی مرتب یہ اوپن ایم پی پراگما کے ساتھ سی اور فورٹرن پروگراموں کا سی کوڈ میں ترجمہ کرتا ہے جو اونی اوپن ایم پی رن ٹائم لائبریری سے منسلک مقامی مرتب کے ساتھ مرتب کرنے کے لیے موزوں ہے۔ یہ لوپ متوازی کے لیے کام کرتا ہے۔ ٹائمنگ آرکیٹیکٹس آپٹیمائزر یہ ٹاسک الاٹمنٹ اور ٹاسک کو متعدد کورز کے متوازی بنانے کو بہتر بنانے کے لیے تخروپن پر مبنی نقطہ نظر کا استعمال کرتا ہے۔ تخروپن پر مبنی کارکردگی اور حقیقی وقت کے تجزیے کے استعمال سے، مختلف ٹاسک الاٹمنٹ متبادل ایک دوسرے کے خلاف بینچ مارک کیے جاتے ہیں۔ انحصار کے ساتھ ساتھ پروسیسر پلیٹ فارم کے مخصوص اثرات پر غور کیا جاتا ہے۔ ٹی اے آپٹیمائزر سرایت شدہ سسٹم انجینئرنگ میں استعمال ہوتا ہے۔ ٹریکو یہ آئیٹریشن اسپیس سلائسنگ اور فری شیڈول فریم ورک کا استعمال کرتا ہے۔ کور پریس برگر ریاضی اور ٹرانزیٹیو کلوزر آپریشن پر مبنی ہے۔ لوپ انحصار کی نمائندگی رلیشنز کے ساتھ کی جاتی ہے۔ ٹی آر اے سی او اومیگا کیلکولیٹر، سی ایل او او جی اور آئی ایس ایل لائبریریوں، اور پیٹیٹ انحصار تجزیہ کار کا استعمال کرتا ہے۔ مرتب کرنے والا C/C + + ایپلی کیشنز کے لیے باریک اور موٹے دانے والے متوازی کے ساتھ بہتر لوکیٹی نکالتا ہے۔ یہ ٹول ویسٹ پومیرانی یونیورسٹی آف ٹیکنالوجی کی ٹیم نے تیار کیا ہے۔ (بیلیکی، پالکوسکی، کلیمیک اور دیگر مصنفین) http://traco.sourceforge.net سیکوینس ایل ایک عام مقصد کی فنکشنل پروگرامنگ زبان اور آٹو متوازی ٹول سیٹ ہے، جس کے بنیادی ڈیزائن کے مقاصد ملٹی کور پروسیسر ہارڈ ویئر پر کارکردگی، پروگرامنگ میں آسانی، پلیٹ فارم پورٹیبلٹی/آپٹیمائزیشن، اور کوڈ کی وضاحت اور پڑھنے کی اہلیت ہیں۔ اس کا بنیادی فائدہ یہ ہے کہ اسے سیدھا سیدھا کوڈ لکھنے کے لیے استعمال کیا جا سکتا ہے جو خود بخود دستیاب تمام پروسیسنگ پاور کا پورا فائدہ اٹھاتا ہے، بغیر پروگرامرز کو متوازی کی نشاندہی کرنے، ویکٹرائزیشن کی وضاحت کرنے، نسل کے حالات سے بچنے، اور دستی ہدایت پر مبنی پروگرامنگ کے طریقوں جیسے اوپن ایم پی کے دیگر چیلنجوں سے متعلق فکر کرنے کی ضرورت نہیں ہے۔ سیکوینس ایل میں لکھے گئے پروگراموں کو ملٹی تھریڈڈ کوڈ میں مرتب کیا جا سکتا ہے جو متوازی طور پر چلتا ہے، جس میں پروگرامر کی طرف سے کوئی واضح اشارہ نہیں ہوتا ہے کہ کس طرح یا کیا متوازی کرنا ہے۔ 2015 تک، سیکوینس ایل مرتب کے ورژن سی + + اور اوپن سی ایل میں متوازی کوڈ تیار کرتے ہیں، جو اسے سی، سی + +، سی #، فورٹرن، جاوا، اور ازگر سمیت مقبول ترین پروگرامنگ زبانوں کے ساتھ کام کرنے کی اجازت دیتا ہے۔ پلیٹ فارم کے لیے مخصوص رن ٹائم دھاگوں کا محفوظ طریقے سے انتظام کرتا ہے، جو دستیاب کور کی تعداد کے مطابق خود بخود متوازی کارکردگی فراہم کرتا ہے۔ او ایم پی 2 ایم پی آئی او ایم پی 2 ایم پی آئی اوپن ایم پی سے خودکار طور پر ایم پی آئی سورس کوڈ تیار کرتا ہے۔ اس بات کی اجازت دینا کہ پروگرام غیر مشترکہ میموری آرکیٹیکچرز جیسے کلسٹر، یا نیٹ ورک آن چپ پر مبنی (این او سی پر مبنی) ملٹی پروسیسرز-سسٹم آن چپ (ایم پی ایس او سی) کا استحصال کرتا ہے۔ او ایم پی 2 ایم پی آئی ایک ایسا حل فراہم کرتا ہے جو بہتر نتائج حاصل کرنے کے خواہاں ماہر کے ذریعے مزید اصلاح کی اجازت دیتا ہے۔ او ایم پی 2 ایچ ایم پی پی او ایم پی 2 ایچ ایم پی پی، ایک ایسا ٹول جو خود بخود ہائی لیول سی سورس کوڈ (اوپن ایم پی) کوڈ کو ایچ ایم پی پی میں ترجمہ کرتا ہے۔ تیار کردہ ورژن شاذ و نادر ہی ہاتھ سے کوڈ شدہ ایچ ایم پی پی ورژن سے مختلف ہوگا، اور 113% کے قریب ایک اہم اسپیڈ اپ فراہم کرے گا، جسے بعد میں ہاتھ سے کوڈ شدہ CUDA کے ذریعے بہتر بنایا جا سکتا ہے۔ ایمٹریکس متوازی اسٹوڈیو ایمٹریکس متوازی اسٹوڈیو ایک ماخذ سے ماخذ متوازی ٹول ہے جو ایمٹریکس ٹیکنالوجیز جی ایم بی ایچ کے ذریعہ تیار کردہ ایک انٹرایکٹو جی یو آئی کے ساتھ مل کر ہے۔ یہ سی، میٹ لیب، سمولنک، اسکیلاب یا ایکس کوس سورس کوڈ کو ان پٹ کے طور پر لیتا ہے اور متوازی سی کوڈ کو آؤٹ پٹ کے طور پر تیار کرتا ہے۔ یہ جامد شیڈول اور متوازی پروگرام کے لیے API منتقل کرنے والے پیغام پر انحصار کرتا ہے۔ متوازی ہونے کے پورے عمل کو ایک انٹرایکٹو جی یو آئی میں کنٹرول اور تصور کیا جاتا ہے جو اختتامی صارف کے ذریعے متوازی ہونے کے فیصلوں کو قابل بناتا ہے۔ یہ جی پی یو اور ایف پی جی اے ایکسلریٹرز کے ساتھ مل کر سرایت شدہ ملٹی کور آرکیٹیکچرز کو نشانہ بناتا ہے۔ کلا مرتب کلا مرتب فورٹرن پروگراموں کو پنکھ کے پراگما کے ساتھ فورٹرن کوڈ میں ترجمہ کرتا ہے جو اوپن ایم پی یا اوپن اے سی سی پراگما کے ساتھ بڑھا ہوا ایک مخصوص سپر کمپیوٹر ہدف کے لیے موزوں ہے۔ پی اے ایس ایچ پی اے ایس ایچ یونیکس شیل اسکرپٹ کے لیے کمپائلر کو متوازی بنا رہا ہے۔ یہ بھی دیکھیں کہ خودکار متوازی انٹیل سی + + مرتب اسکیلر توسیع پذیر متوازی سیکوینس ایل بی ایم ڈی ایف ایم حوالہ جات بیرونی روابط آٹوپار پلوٹو-مرتب پار 4 آل سیٹس ٹریکو او ایم پی 2 ایم پی آئی او ایم پی 2 ایچ ایم پی پی ایمٹریکس متوازی اسٹوڈیو متوازی کمپیوٹنگ