WebCL
ویب سی ایل (ویب کمپیوٹنگ لینگویج) پلگ ان کے استعمال کے بغیر کسی بھی ہم آہنگ ویب براؤزر کے اندر متنوع متوازی کمپیوٹنگ کے لیے اوپن سی ایل کے لیے پابند جاوا اسکرپٹ ہے، جس کا اعلان پہلی بار مارچ 2011 میں کیا گیا تھا۔ یہ اوپن سی ایل کی طرح اسی بنیاد پر تیار کیا گیا ہے اور اسے مؤخر الذکر کا براؤزر ورژن سمجھا جاتا ہے۔ بنیادی طور پر، ویب سی ایل ویب ایپلی کیشنز کو ملٹی کور سی پی یوز اور جی پی یوز کے ساتھ رفتار کو عملی جامہ پہنانے کی اجازت دیتا ہے۔ امیج ایڈیٹنگ، آگمینٹڈ رئیلٹی ایپلی کیشنز اور نفیس گیمنگ جیسی متوازی پروسیسنگ کی ضرورت والی ایپلی کیشنز کی بڑھتی ہوئی مقبولیت کے ساتھ، کمپیوٹیشنل رفتار کو بہتر بنانا زیادہ اہم ہو گیا ہے۔ ان پس منظر کی وجوہات کے ساتھ، ایک غیر منافع بخش خرونس گروپ نے ویب سی ایل کو ڈیزائن اور تیار کیا، جو کہ ایک پورٹیبل کرنل پروگرامنگ کے ساتھ اوپن سی ایل کے لیے پابند جاوا اسکرپٹ ہے، جو ویب براؤزرز پر متوازی کمپیوٹنگ کو آلات کی ایک وسیع رینج میں فعال کرتا ہے۔ مختصرا ویب سی ایل دو حصوں پر مشتمل ہے، ایک کرنل پروگرامنگ ہے، جو پروسیسرز (ڈیوائسز) پر چلتا ہے اور دوسرا جاوا اسکرپٹ ہے، جو ویب ایپلی کیشن کو اوپن سی ایل سے جوڑتا ہے۔ ویب سی ایل 1 کے لیے مکمل اور توثیق شدہ تفصیلات 19 مارچ 2014 کو جاری کی گئیں۔ نفاذ فی الحال، کوئی براؤزر مقامی طور پر ویب سی ایل کی حمایت نہیں کرتا ہے۔ تاہم، ویب سی ایل کو نافذ کرنے کے لیے غیر مقامی ایڈ آن استعمال کیے جاتے ہیں۔ مثال کے طور پر، نوکیا نے ایک ویب سی ایل ایکسٹینشن تیار کیا۔ موزیلا ویب جی ایل کمپیوٹ شیڈرز کے حق میں ویب سی ایل کو نافذ کرنے کا ارادہ نہیں رکھتی، جسے بدلے میں ویب جی پی یو کے حق میں ختم کر دیا گیا تھا۔ موزیلا (فائر فاکس)-ویب سی ایل ورکنگ ڈرافٹ سیمسنگ (ویب کٹ)-(دستیاب نہیں) نوکیا (فائر فاکس)-(نومبر 2014 سے نیچے، ایف ایف 34 کے لیے آخری ورژن) انٹیل (کراس واک)-مثال سی کوڈ متوازی پروگرام کی بنیادی اکائی کرنل ہے۔ دانا کوئی بھی متوازی کام ہے جو کسی مخصوص کام کو انجام دینے کے لیے استعمال ہوتا ہے۔ زیادہ تر افعال کو دانے کے طور پر محسوس کیا جا سکتا ہے۔ ایک پروگرام ایک یا زیادہ دانے پر مشتمل ہو سکتا ہے۔ دانا حاصل کرنے کے لیے یہ ضروری ہے کہ کوئی کام متوازی ہو۔ ڈیٹا انحصار اور عمل کی ترتیب موثر متوازی الگورتھم تیار کرنے میں اہم کردار ادا کرتی ہے۔ ایک سادہ سی مثال سی مرتب کرنے والوں کے ذریعے انجام دی گئی لوپ انرولنگ کے معاملے کے بارے میں سوچی جا سکتی ہے، جہاں ایک بیان جیسا کہ: (i = 0 ؛ i <3 ؛ i + +) c [i] = a [i] + b [i] ؛ میں انرول کیا جا سکتا ہے: c [0] = a [0] + b [0] ؛ c [1] = a [1] + b [1] ؛ c [2] = a [2] + b [2] ؛ اوپر کے بیانات کو متوازی بنایا جا سکتا ہے اور بیک وقت چلانے کے لیے بنایا جا سکتا ہے۔ ایک دانا اسی طرح کے نقطہ نظر کی پیروی کرتا ہے جہاں دانا کے اندر صرف ith تکرار کا سنیپ شاٹ لیا جاتا ہے۔ آئیے کرنل کا استعمال کرتے ہوئے مندرجہ بالا کوڈ کو دوبارہ لکھیں: _ _ کرنل ایڈ (_ _ گلوبل فلوٹ * a، _ _ گلوبل فلوٹ * b، _ _ گلوبل فلوٹ * c) {انٹی i = گیٹ _ گلوبل _ آئی ڈی (0) ؛ اگر (i <3) c [i] = a [i] + b [i] ؛} ویب سی ایل ایپلی کیشن چلانے میں درج ذیل مراحل شامل ہیں: آلات تک رسائی کی اجازت دیں اور سیاق و سباق فراہم کریں کرنل کو کسی ڈیوائس پر منتقل کریں ڈیوائس سے کرنل بازیافت کے نتائج کو انجام دینے کا سبب بنیں جاوا اسکرپٹ کے اندر موجود ڈیٹا کو استثناء کی فہرست ویب سی ایل میں استعمال کریں، جو کہ جاوا اسکرپٹ پر مبنی عمل درآمد ہے، اس کے بارے میں مزید تفصیلات مل سکتی ہیں۔ اس کے بجائے، یہ ایک رعایت دیتا ہے جیسے OUT _ OF _ RESORCES، OUT _ OF _ HOST _ MEMORY، یا ویب سی ایل کے لیے مخصوص WEBCL _ IMPLEMENTAIEN _ FAILURE۔ مستثنی آبجیکٹ مشین سے پڑھنے کے قابل نام اور انسان سے پڑھنے کے قابل پیغام کو بیان کرتا ہے جو غلطی کو بیان کرتا ہے۔ نحو مندرجہ ذیل ہے: استثنا ویب سی ایل ایکسسیپشن: ڈی او ایم ای ایکسسیپشن {ڈی او ایم ایس ٹرینگ نام ؛// عددی غلطی کوڈ کی ایک سٹرنگ نمائندگی، مثال کے طور پر۔ "انویلڈ _ ویلیو" ڈومسٹرنگ؟ پیغام ؛// مستثنی ہونے کی وجہ کی عمل درآمد سے متعلق مخصوص تفصیل] ؛ اوپر دیے گئے کوڈ سے، یہ مشاہدہ کیا جا سکتا ہے کہ میسج فیلڈ ایک این یو ایل ایل ویلیو ہو سکتا ہے۔ دیگر مستثنیات میں شامل ہیں: انویلڈ _ آپریشن-اگر اس فنکشن کی بلاکنگ فارم کو ویب سی کال بیک INVALID _ VALUE سے بلایا جاتا ہے-اگر ایونٹ ویٹ لسٹ خالی INVALID _ CONTEXT ہے-اگر ایونٹ ویٹ لسٹ میں بیان کردہ واقعات اسی سیاق و سباق سے تعلق نہیں رکھتے ہیں INVALID _ DEVICE _ TYPE-اگر ڈیوائس ٹائپ دیا گیا ہے، لیکن درست شمار شدہ اقدار میں سے ایک نہیں ہے DEVICE _ NOT _ FOUND-اگر کوئی ویب کلڈ ڈیوائس دستیاب نہیں ہے جو دیئے گئے ڈیوائس ٹائپ سے میل کھاتا ہے تو مستثنیات کے بارے میں مزید معلومات وضاحتیں دستاویز میں مل سکتی ہیں۔ ایک اور رعایت ہے جو کسی ایسی چیز کو کال کرنے کی کوشش کرنے پر اٹھائی جاتی ہے جسے 'ریلیز' کیا گیا ہے۔ ریلیز کا طریقہ استعمال کرنے پر، آبجیکٹ مستقل طور پر حذف نہیں ہوتا ہے لیکن یہ اس آبجیکٹ سے وابستہ وسائل کو آزاد کرتا ہے۔ اس رعایت سے بچنے کے لیے، ریلیز آل طریقہ استعمال کیا جا سکتا ہے، جو نہ صرف وسائل کو آزاد کرتا ہے بلکہ تخلیق کردہ تمام متعلقہ اشیاء کو بھی حذف کرتا ہے۔ سیکیورٹی ویب سی ایل، ویب ایپلی کیشنز کے لیے تیار کردہ ایک اوپن اینڈڈ سافٹ ویئر ہونے کے ناطے، ڈیزائن اور ڈویلپمنٹ کے شعبوں میں بھی خطرات کی بہت گنجائش ہے۔ اس نے ویب سی ایل پر کام کرنے والے ڈویلپرز کو سیکیورٹی کو انتہائی اہمیت دینے پر مجبور کیا۔ چند خدشات جن پر توجہ دی گئی وہ یہ ہیں: حد سے باہر میموری تک رسائی: یہ مختص کردہ جگہ سے باہر میموری کے مقامات تک رسائی کے ذریعے ہوتا ہے۔ حملہ آور ان میموری مقامات پر محفوظ تمام اہم ڈیٹا کو دوبارہ لکھ یا مٹا سکتا ہے۔ جب بھی ایسا کوئی معاملہ سامنے آتا ہے، تو مرتب کرنے کے وقت ایک غلطی پیدا ہونی چاہیے، اور صفر کو رن ٹائم پر واپس کرنا چاہیے، نہ کہ پروگرام کو میموری کو اوور رائیڈ کرنے دینا چاہیے۔ اس کمزوری سے نمٹنے کے لیے خرونس گروپ (ڈویلپرز) نے ایک پروجیکٹ ویب سی ایل ویلیڈیٹر شروع کیا تھا۔ میموری شروع کرنا: یہ ایپلی کیشنز کو پچھلی ایپلی کیشنز کے میموری مقامات تک رسائی سے روکنے کے لیے کیا جاتا ہے۔ ویب سی ایل اس بات کو یقینی بناتا ہے کہ موجودہ ایپلی کیشن کو چلانے سے پہلے تمام بفرز، صفر پر استعمال ہونے والے متغیرات کو شروع کرنے سے ایسا نہیں ہوتا ہے۔ اوپن سی ایل 1.2 میں ایک توسیع 'سی ایل _ کے ایچ آر _ انیشیئلائز _ میموری' ہے، جو اسے قابل بناتا ہے۔ سروس سے انکار: ویب ایپلی کیشنز پر سب سے عام حملے کو ویب سی ایل یا براؤزر کے ذریعے مکمل طور پر ختم نہیں کیا جا سکتا۔ اوپن سی ایل کو واچ ڈاگ ٹائمر اور پری ایمپٹو ملٹی ٹاسکنگ فراہم کی جا سکتی ہے، جسے ویب سی ایل کے ذریعے ان سیاق و سباق کا پتہ لگانے اور انہیں ختم کرنے کے لیے استعمال کیا جا سکتا ہے جو بہت زیادہ وقت لے رہے ہیں یا بہت زیادہ وسائل استعمال کر رہے ہیں۔ پچھلے کی طرح اوپن سی ایل 1.2 'سی ایل _ کے ایچ آر _ ٹرمینیٹ _ سیاق و سباق' کی توسیع ہے، جو اس عمل کو ختم کرنے کے قابل بناتا ہے جو سروس حملے سے انکار کا سبب بن سکتا ہے۔ متعلقہ براؤزر کیڑے یہ بھی دیکھیں ویب جی ایل ایچ ٹی ایم ایل 5 اوپن جی ایل اوپن سی ایل جی پی جی یو ویب جی پی یو حوالہ جات بیرونی لنکس ویب سی ایل اسپیسیفیکیشن ویب سی ایل ویکی ایپلی کیشن پروگرامنگ انٹرفیس کراس پلیٹ فارم سافٹ ویئر ویب ڈویلپمنٹ گرافکس لائبریریاں گرافکس کے معیارات فر: OpenCL#WebCL