 بسم اللہ الرحمن الرحیم آج ہم موڈیول 160 دیسکس کریں گے موڈیول 160 ایک problem کے بارے میں ہے جب آپ کنکرنٹ پروسیسنگ کے ساتھ ورکہ رہے تو یہ problem آپ کو face کرنی پڑتی اس کو کہتے ہیں false sharing contention یہ کیا چیز ہے ہم نے ابھی پریویس لی جو ایک پوگرام بنایا تھا اس پوگرام کے اندر ہم نے کچھ موڈیفائرز کا استوال کیا تھا تاکہ کاش کے اندر contention جو ہے وہ کم سے کام ہو you false sharing contention جو ہے یہ اسی چیز سے associated ہے کاش جو ہے اگر آپ کو اس کے design کا پتا ہوگا تو اس کے اندر کئی کاش لائنز ہوتی ہے اور بھرے کی ایک SPECIFIC CAPACITY ہوتی ہے اگر آپ کے پاس ایک large array ہے اور اس array کے اندر کئی سارے elements ہے تو کچھ elements ایک لائنگ کے اندر store ہوں گے کچھ دوسری کے اندر کچھ تیسری کے اندر اندر and so on اور اس لائن کی اگر کے اندر کسی بھی ایک element کو mutually exclusively excess کرنا ہے تو وہ پوری کی پوری لائن جو ہے وہ lock ہوگی یعنی کہ locking کی اگر ذود پڑتی ہے تو پوری کی پوری لائن lock ہوگی اس کے اندر کوئی ایک unit جو ہے وہ lock نہیں ہوگا تو ہم نے کیا کیا تھا ہم نے کہا کہ جیس کی alignment اس طریقہ سے کیا جائے تاکہ ہر element جو ہے وہ ایک different line کے اندر جاکے store اگر ایک line پر ایک سے زادہ elements store ہوتے تو اس کا ہمیں کیا consequences دیکھنے پڑیں گے اس کے consequences ہیں وہ you false sharing contention ہے کہ اس لائن کے اوپر جتنے بھی element سے ان میں سے اگر ایک element lock ہوتا ہے تو باقی کوئی بھی element جو ہے وہ بھی serially پھر excess ہوگا وہ بھی concurrently excess نہیں ہو سکے گا کیونکہ پوری کی پوری line اس ایک element کی وجہ سے lock ہوگی تو یہ چیز جو ہے you false contention کلاتی ہے یعنی کہ اکچول جو ڈیٹا ہے اس کے ساتھ آپ کی contention نہیں ہے لیکن وہ ایسی line پہ آگیا ہے جتھر کوئی اور ایسا data item ہے جس کے ساتھ آپ کسی کسم کی contention چال رہی ہوگا کیونکہ اس کو آپ mutually excess کریں تو آپ کو باقی line کے اندر جتنے بھی elements ان کو بھی mutually ہی excess کرنا پڑتا ہے لیکن اس کی ضرورت نہیں ہے تو اس وجہ سے of course کیا ہورا ہے performance جو ہے وہ effect ہو رہی ہے تو ہم نے وہ جو modifier specify کیا تھا جس کے اندر cash line کو align کرنے کی ہم نے بات کی تھی وہ modifier ہم نے اسی وجہ سے specify کیا تھا تاکہ false sharing contention نہ ہو اور پھر یہ problem اور بھی increase ہو جاتا ہے اگر یہ جو threads ہیں جو کہ اس ان ڈیٹا items کو access کر رہے ہیں وہ مختلف processors کے اندر یعنی کہ ایک line ہے اس کے اندر کئی سارے elements ہیں ایک element کو کوئی اور processor access کر رہا ہے اور دوسرے element کو کوئی اور processor access کر رہا دونوں concurrently اس کو access کر سکتے ہیں لیکن کیونکہ ایک نے law کر دیا تو باقی جو element جو دوسرا processor access کر سکتا ہے وہ اس کو access نہیں کر پا رہا ہماری parallelism جو ہے وہ reduce ہوگی onto serialized processing تو یہاں پہ کیا ہوتا ہے کہ جب ایک element کے اندر کوئی چینج آتی ہے تو آپ سے پہلے ہم نے ایک problem discuss کی تھی cash consistency کی جب تک کہ cash کو آپ consistent نہیں مرالتے تب تک وہ line کے دا باقی کے elements ہیں وہ بھی access نہیں ہو پائیں گے تو اس کی وجہ سے اور problem جو ہے آپ کا increase ہو جاتا ہے اور سویر بندتا ہے آپ کا problem تو بہتر اپروچ کیا ہوسکتی ہے بہتر اپروچ یہ ہوسکتی ہے کہ ہم اپنے variables کو ہی اسی طرح سے align کریں کہ ہمارے اگر ایک پوری array ہے تو اس کا ہر element جو ہے وہ ایک different line کیا پر لائے کریں وہ disjointally placed ہوں وہ کئی سارے ہمارے elements جو ہے وہ ایک ہی line کے اندر place now تو یہ کہلیں کہ ایک memory management کی تکنیق ہوگی اور یہ memory management جو ہے اس کی take care compiler کر سکتا ہے لیکن آپ کو compiler کو specify کرنا پڑتا ہے کہ میری memory جو ہے اس کو اس طریقے سے arrange کیا جا ہے اس کلہ وہ اور بھی جو ہم نے memory allocation کی تھی اس memory allocation کی اندر بھی ہم نے alignment کا استمال گیا تھا وہ بھی اسی وجہ سے کیا تھا تاکہ fall sharing contention جو ہے وہ occur now تو اس لئے alignment کا استمال گیا تھا of course جب آپ اس طرح سے alignment کریں گے تو یہ memory wise expensive ہے جب آپ alignment کریں گے تو ایک line کی capacity بہت بہت بہت زاد ہے لیکن اس میں سے بہت تھوڑی capacity جو استمال ہو رہی ہوگی صرف ایک element کو وہ store کر رہا ہوگا اور next element اکلی line میں store ہوگا تو ایک طرح سے کہ memory کی cost increase ہو رہی ہے لیکن وہ contention کی وجہ سے جو serialization کی اوپر آپ کا system produce ہو گئے وہ اس چیز ہے آپ کی جان بچ جاتی ہے