 بسم اللہ الرحمن الرحیم آج ہم موڈیول 178 دیسکس کریں گے موڈیول 178 ہے چالنجز ان پارلیزم پوگرامنگ ہم نے پریویسلی دیسکس کیا ہے کہ جی پروسسر کا جو فل پوٹنشل ہے اس کو use کرنے کے لیے یہ ضروری ہے کہ آپ کو پارلیزم کی پوگرامنگ کے بارے میں پتاؤ آپ کو پتاؤ ہو کہ جی آپ نے اگر پارل کوئی پوگرام لکھنا ہے تو کیسے لکھنا ہے اس کے اندر سب سے پہلہ افورس جو سٹپ ہے وہ یہ یہ ہے کہ آپ نے جو اس کے پارل کومپننڈ سے ان کو ڈنتفائی کرنا ہے اور دوسرے میں آپ نے ان کو implement کرتے ہیں آپ اگر تھریٹنگ کا استعمال کرتے ہیں جس طرح ہم نے پہلے دسکس کیا تھا straight forward direct method ہے بالکل لیکن اس کے direct or straight forward ہونے کے باوجود کئی کسم کی hurdles ہیں بھیچ میں کئی کسم کی pitfalls ہیں کئی کسم کی challenges کا سامر ہے اور پھر ہم نے input faults کو over come کرنے کے لیے بھی ہم نے کئی suggestions دیئے ہیں ایک ان میں سے suggestions یہ ہے کہ ہم framework's کا استعمال کریں لیکن framework's کے استعمال سے بھی کئی ایسی problems ہیں جو کسال نہیں ہوتی ان problems کو understand کرنا ضروری ہے وہ کب problems rise ہوتی تو ان problems کی طرف چلتے ہیں once آپ نے کوئی ایک independent subtask ہے اس کو identify کر لیے تو جب آپ identify کرلتے ہیں تو آپ نے اس کو implement کرنا ہوتا اگر پرانی کوئی code آپ کے پاس ہے جو کہ serial computer کے لحاظے لکھے گئی ہے تو اس code کے لیے جو اس طرح سے parallel components ہے فسلی آپ ان کو identify کریں گے اگر بہت زیادہ subtask ہیں جس طرح ہم نے پہلے discuss کیا تھا کہ اگر آپ بہت زیادہ parallelism use کرتے ہیں کئی سارے processes use کرتے ہیں تو ایک certain point تک آپ کو optimization ملتی اس کے beyond degradation شروع ہے تو بہت زیادہ subtask نہیں ہونے چاہیے ایک optimal number of subtask آپ کو identify کرنے چاہیے اور ایک optimal number of subtask کو ہی target کرنا چاہیے پھر اگر آپ بہت زیادہ locking کیا استعمال کریں کئی ایسے آپ کے resources ہیں جن کی وجہ سے آپ کو بار بار locking کرنے پڑتی ہے تو locking کی وجہ سے بھی degradation آتی ہے تو بہت زیادہ locking ہوگی تو اس کی وجہ سے بھی آپ کے program کی کافی degradation آسکتی ہے تو اس کو بھی دہنے کی ضرورت ہے کہ اس طرح سے design کیا جائے کہ آپ کو بہت زیادہ locking نہ کرنے پڑے of course a certain amount of locking آپ کو ضرور کرنے پڑے گی تاکہ results accurate پھر global variables کا استعمال global variables کا استعمال جو ہے اس کی مدہ سے بھی problems کا سامنا کرتا ہے کہ global variables اگر for example ایک program پہلے لکھا گیا تھا i-trative form کے اندر جو کہ global variables کا استعمال کراتا تو ہر i-tration پہ اس global variables کی value جو ہے وہ انکریز ہو رہی ہے لیکن جب parallelism کا استعمال آپ کریں گے تو جو ہر i-tration پر کام ہونے وہ i-serially نہیں ہو رہا وہ parallel ہو رہا ہے جب parallel ہو رہا تو پھر آپ اس global variables کی value کو کیسے کنٹرول کریں گے اس کے لیے ہوتی ہیں certain techniques آپ کو وہ techniques implement کرنے پڑے گی اور اگر آپ global variables کا استعمال اسی طریق سے کریں گے جس طرح کہ serialized programs کیلے کرتے ہیں تو آپ کو problems کا سامنا کرنا پڑے گا پھر certain problems ایسی بھی آ سکتی ہیں جو کہ آپ کی programming technique کے beyond وہ problems آتی ہیں because of آپ کا computer architecture کی وجہ سے آپ کی جو memory cache کا architecture ہے اس کے اندر کوئی ایسی limitations ہوتی ہیں جس کی وجہ سے آپ کو certain problems جو ہیں وہ face کرنا پڑھیں گے multi core chips جو ہیں ان کا architecture جو ہے اس کی بھی certain limitations ہوتی ہیں تو یہ آپ کو پتا ہونا چاہیے جو بھی آپ underline hardware use کریں تو اس کی memory کی کیا limitations ہیں اور اس کے multi core architecture ہے اس کی کیا limitation ہے اور اس کو ہی ذہن میں رکھتے ہوئے آپ کو اپنے program کو optimally design کرنا چاہیے تو یہ ہم نے مختلف challenges discuss کیا ہے جب بھی آپ ایک program لکھیں for multi core systems parallelism کیلئے آپ جب program لکھیں تو ان تمام چیزوں کا آپ خیال رکھیں کہ بہت زیادہ سب tasks نہیں ہونے چاہیے بہت زیادہ locking نہیں ہونے چاہیے optimal amount ہونے چاہیے اور آپ پھر بیسے تو programر کو کہا جاتا ہے کہ hardware آپ سے hidden ہے لیکن جب آپ multi task multi processing کیلئے کام کریں جب آپ parallelism کیلئے کام کر رہے ہیں then آپ کو تھوڑا بہت hardware کے بارے میں بھی information ہاں چاہیے کہ hardware level پر no limitations ایسی تو نہیں ہے کہ اگر آپ program لکھیں گے تو اسے آپ کے program کی performance ہے وہ degrade ہو جاہیا