Sieve C++ Parallel Programming System
چھلکا C + + متوازی پروگرامنگ سسٹم ایک C + + مرتب اور متوازی رن ٹائم ہے جسے کوڈ پلے نے ڈیزائن اور جاری کیا ہے جس کا مقصد کوڈ کی متوازی کاری کو آسان بنانا ہے تاکہ یہ ملٹی پروسیسر یا ملٹی کور سسٹمز پر مؤثر طریقے سے چل سکے۔ یہ اوپن ایم پی، ریپڈ مائنڈ ڈویلپمنٹ پلیٹ فارم اور تھریڈنگ بلڈنگ بلاکس (ٹی بی بی) جیسے دیگر معروف متوازی طریقوں کا متبادل ہے۔ تعارف چھلنی ایک سی + + مرتب ہے جو سیریل کوڈ کا ایک حصہ لے گا، جو چھلنی کے مارکر کے ساتھ تشریح شدہ ہے، اور اسے خود بخود متوازی کر دے گا۔ پروگرامر کوڈ کو لپیٹتا ہے جسے وہ ایک لفظی دائرہ کار کے اندر متوازی بنانا چاہتا ہے، جسے 'چھلنی' کے طور پر ٹیگ کیا جاتا ہے۔ اس دائرہ کار کے اندر، جسے عام طور پر 'چھلنی بلاک' کہا جاتا ہے، کچھ اصول لاگو ہوتے ہیں: چھلنی بلاک کے اندر تمام مضر اثرات دائرہ کار کے اختتام تک تاخیر کا شکار ہوتے ہیں۔ ضمنی اثرات کو چھلنی کے بلاک کے دائرہ کار سے باہر اعلان کردہ ڈیٹا میں کسی بھی ترمیم کے طور پر بیان کیا جاتا ہے۔ صرف چھلنی یا فوری طور پر تشریح شدہ افعال کو کال کیا جا سکتا ہے۔ ضمنی اثرات میں تاخیر بہت سے چھوٹے انحصار کو دور کرتی ہے جو عام طور پر خودکار متوازی میں رکاوٹ بنتی ہے۔ مرتب کرنے والے کے ذریعے پڑھنے اور لکھنے کو محفوظ طریقے سے دوبارہ ترتیب دیا جا سکتا ہے تاکہ ڈیٹا کی نقل و حرکت کے مختلف طریقہ کار، جیسے کہ ڈائریکٹ میموری ایکسیس (ڈی ایم اے) کے بہتر استعمال کی اجازت دی جا سکے۔ اس کے علاوہ عرفی تجزیہ اور ڈیٹا فلو تجزیہ کو آسان بنایا جا سکتا ہے۔ مرتب کرنے والا پھر کوڈ کو چھلنی کے بلاک کے اندر بہت آسان طریقے سے تقسیم کر سکتا ہے، تاکہ متوازی کا فائدہ اٹھایا جا سکے۔ میموری کی تشکیل دائرہ کار کی اس علیحدگی کا مطلب یہ بھی ہے کہ چھلنی کے نظام کو غیر یکساں میموری آرکیٹیکچرز میں استعمال کیا جا سکتا ہے۔ ملٹی کور سی پی یو جیسے کہ پلے اسٹیشن 3 میں استعمال ہونے والا سیل مائکرو پروسیسر اس قسم کے ہوتے ہیں، جس میں تیز کور میں مقامی یادیں ہوتی ہیں جنہیں سسٹم میں موجود کارکردگی سے فائدہ اٹھانے کے لیے استعمال کیا جانا چاہیے۔ یہ مشترکہ میموری سسٹمز پر بھی کام کرنے کے قابل ہے، جیسے x86، یعنی یہ مختلف آرکیٹیکچرز پر چل سکتا ہے۔ چھلکے کے بلاکس کو مختلف یادوں اور پروسیسنگ عناصر کے درجہ بندی والے نظاموں کے لیے بھی گھونسلہ بنایا جا سکتا ہے۔ متوازی اور توسیع پذیری چھلنی مرتب کرنے والا چھلنی کے بلاک کے اندر کوڈ کو حصوں میں تقسیم کر سکتا ہے یا تو مضمر طور پر یا واضح طور پر اگرچہ 'اسپلٹیئر' بیان ہو۔ مثال کے طور پر، مندرجہ ذیل مثال ایک لوپ کو متوازی دکھاتی ہے: چھلنی {for (iterator i (0) ؛ i <لمبائی ؛ + + i) {R [i] = A [i] * B [i] splithere ؛}} مرتب کرنے والا ایک داخلی نقطہ کے طور پر، لوپ کی تعمیر کے باڈی کے اوپر ایک تقسیم نقطہ شامل کرے گا۔ اسی طرح ایک کو باہر نکلنے کے مقام کے طور پر شامل کیا جائے گا۔ چھلنی کے نظام میں، چھلنی کے بلاک کے دائرہ کار میں صرف مقامی متغیرات پر انحصار ہو سکتا ہے۔ تاہم، ان انحصار کو تقسیم کے نکات کو پار نہیں کرنا چاہیے ؛ وہ مرتب کرنے والے انتباہات پیدا کریں گے۔ اس لوپ کو متوازی بنانے کے لیے، ایک معیاری انٹیجر لوپنگ کاؤنٹر کی جگہ ایک خصوصی 'آئیٹرٹر' کلاس استعمال کی جا سکتی ہے۔ یہ متوازی کے لیے محفوظ ہے، اور پروگرامر اپنی مرضی سے نئی آئیٹریٹر کلاسیں بنانے کے لیے آزاد ہے۔ ان آئیٹرٹر کلاسوں کے علاوہ، پروگرامر 'ایکیومولیٹرز' نامی کلاسوں کو نافذ کرنے کے لیے آزاد ہے جو تخفیف کی کارروائیوں کو انجام دینے کے لیے استعمال ہوتے ہیں۔ جس طرح سے آئیٹرٹر کلاسز کو لاگو کیا جاتا ہے وہ اسکیل ایبلٹی کے لیے مختلف ذرائع کھولتا ہے۔ چھلنی متوازی رن ٹائم ہدف پلیٹ فارم پر عمل درآمد کرتے وقت متحرک قیاس آرائی پر مبنی عمل درآمد کا استعمال کرتا ہے۔ یہ بہت اچھی رفتار حاصل کر سکتا ہے، تاہم ایک واحد کور مشین پر چلنے سے اوور ہیڈز کا سامنا کرنا پڑ سکتا ہے۔ ڈیٹرمینزم چھلکے کے نظام کی ایک غیر معمولی خصوصیت ہے۔ اگر ملٹی کور مشین پر متوازی چھلنی پروگرام کو انجام دینے سے کوئی بگ نکلتا ہے، تو ڈیبگنگ میں مدد کے لیے ایک ہی کور پر چلانے پر بگ غائب نہیں ہوگا۔ اس میں ریس کے حالات کو ختم کرنے کا فائدہ ہے، جو ہم آہنگی پروگرامنگ میں سب سے عام کیڑوں میں سے ایک ہے۔ چھلنی کے بلاک کے اندر کنکرنسی کنٹرول ڈھانچے پر غور کرنے کی ضرورت کو ہٹانے سے ترقی کے وقت میں تیزی آسکتی ہے اور اس کے نتیجے میں محفوظ کوڈ مل سکتا ہے۔ سپورٹڈ سسٹمز یہ سسٹم درجہ بندی پر مبنی سسٹمز کے لیے ڈیزائن کیا گیا ہے جس میں یکساں یا متنوع سی پی یو کور ہوتے ہیں جن میں مقامی یادیں ہوتی ہیں، جو ڈی ایم اے انجنوں یا اسی طرح کے میموری ٹرانسفر ماڈلز کے ذریعے جڑی ہوتی ہیں۔ چھلنی کو ملٹی کور x86 سسٹمز، ایجیا فز ایکس فزکس پروسیسنگ یونٹ، اور آئی بی ایم سیل مائکرو پروسیسر پر کامیابی سے کام کرتے ہوئے دکھایا گیا ہے۔ اے این ایس آئی سی اس صورت میں تیار کیا جاتا ہے جب ایک مخصوص ٹارگٹ پلیٹ فارم کے لیے مرتب کوڈ جنریٹر دستیاب نہ ہو۔ یہ موجودہ سی تالیف ٹول کٹس کا استعمال کرتے ہوئے آٹوپارلیلائزیشن کی اجازت دیتا ہے۔ سافٹ ویئر ٹرانزیکشنل میموری عرفی تجزیہ بھی دیکھیں اوپن ایم پی تھریڈنگ بلڈنگ بلاکس (ٹی بی بی) سلک/سلک پلس قیاس آرائی پر عمل درآمد حوالہ جات سیو سی + + پروگراموں کی آٹو متوازی الیسٹیر ڈونلڈسن، انٹون لوکھموٹوف، کولن ریلی، اینڈریو کک۔ یورو پار ورکشاپ کی کارروائی میں ایک چپ پر انتہائی متوازی پروسیسنگ (ایچ پی پی سی '07)، رینس، فرانس، اگست 2007۔ لیکچر نوٹس ان کمپیوٹر سائنس 4854، 2007۔ تاخیر سے ہونے والے ضمنی اثرات ملٹی کور پروگرامنگ میں آسانی انٹون لوکھموٹوف، ایلن مائکرافٹ، اینڈریو رچرڈز۔ 13 ویں بین الاقوامی یورو پار کانفرنس کی کارروائی میں، رینس، فرانس، اگست 2007۔ لیکچر نوٹس ان کمپیوٹر سائنس 4641، 641-650، 2007۔ چھلکے ایس لنڈلے کا استعمال کرتے ہوئے فیصلہ کن اعلانیہ ہم آہنگی کو نافذ کرنا۔ ڈی اے ایم پی 2007 کی کارروائی میں: ورکشاپ آن ڈیکلیریٹو ایسپیکٹس آف ملٹی کور پروگرامنگ نائس، فرانس، جنوری 2007۔ کوڈ پلے چھلنی C + + متوازی پروگرامنگ سسٹم A. رچرڈز۔ وائٹ پیپر، 2006۔ کوڈ پلے سیو سی + + سسٹم پریزنٹیشن اسکاٹ میک کینزی، مائیکرو گرڈ 2006 میں پیش کیا گیا۔ بیرونی لنکس کوڈ پلے سیو ویب سائٹ سمورتی پروگرامنگ زبانیں ایپلیکیشن پروگرامنگ انٹرفیس C + + پروگرامنگ زبان خاندان