NUMA فن تعمیر کو سمجھنا۔

Understanding Numa Architecture



کمپیوٹر ڈیزائن کرنا ہمیشہ ایک سمجھوتہ ہوتا ہے۔ کمپیوٹر کے چار بنیادی اجزاء - سینٹرل پروسیسنگ یونٹ (سی پی یو) یا پروسیسر ، میموری ، اسٹوریج ، اور اجزاء کو جوڑنے کے لیے بورڈ (I/O بس سسٹم) - ایک مشین بنانے کے لیے ہر ممکن حد تک چالاکی سے جوڑا گیا ہے۔ لاگت مؤثر اور طاقتور دونوں ہے. ڈیزائن کے عمل میں زیادہ تر پروسیسرز (کو پروسیسرز ، ملٹی کور سیٹ اپ) ، میموری کی قسم اور مقدار ، اسٹوریج (ڈسک ، فائل سسٹم) کے ساتھ ساتھ قیمت شامل ہوتی ہے۔ ممکنہ طور پر چھوٹی جگہ میں زیادہ سے زیادہ سنگل کمپیوٹنگ یونٹس میں آپریشنز تقسیم کرنا اور کمپیوٹنگ ہدایات پر متوازی عملدرآمد کو مزید دستیاب اور سستی کرنا۔ میموری کے لحاظ سے ، یہ اس مقدار یا سائز کا سوال ہے جسے انفرادی کمپیوٹنگ یونٹ سے حل کیا جاسکتا ہے ، اور میموری کی کون سی قسم ممکنہ طور پر کم تاخیر کے ساتھ کام کرتی ہے۔ اسٹوریج بیرونی میموری سے تعلق رکھتا ہے ، اور اس کی کارکردگی ڈسک کی قسم ، فائل سسٹم جو استعمال میں ہے ، تھریڈنگ ، ٹرانسفر پروٹوکول ، مواصلاتی تانے بانے ، اور منسلک میموری آلات کی تعداد پر منحصر ہے۔

I/O بسوں کا ڈیزائن کمپیوٹر شریانوں کی نمائندگی کرتا ہے اور نمایاں طور پر اس بات کا تعین کرتا ہے کہ مذکورہ بالا اجزاء کے درمیان کتنا اور کتنی جلدی ڈیٹا کا تبادلہ کیا جا سکتا ہے۔ ٹاپ کیٹیگری کی قیادت ہائی پرفارمنس کمپیوٹنگ (HPC) کے شعبے میں استعمال ہونے والے اجزاء سے ہوتی ہے۔ 2020 کے وسط تک ، HPC کے ہم عصر نمائندوں میں Nvidia Tesla اور DGX ، Radeon Instinct ، اور Intel Xeon Phi GPU پر مبنی ایکسلریٹر پروڈکٹس ہیں (مصنوعات کے موازنہ کے لیے [1،2] دیکھیں)۔







NUMA کو سمجھنا۔

نان یونیفارم میموری ایکسیس (NUMA) ایک مشترکہ میموری فن تعمیر کی وضاحت کرتا ہے جو عصری ملٹی پروسیسنگ سسٹم میں استعمال ہوتا ہے۔ NUMA ایک کمپیوٹنگ سسٹم ہے جو کئی سنگل نوڈس پر مشتمل ہے اس طرح کہ مجموعی میموری تمام نوڈس کے درمیان شیئر کی جاتی ہے: ہر سی پی یو کو اس کی اپنی مقامی میموری تفویض کی جاتی ہے اور وہ سسٹم میں دوسرے سی پی یوز سے میموری تک رسائی حاصل کر سکتی ہے۔



NUMA ایک ہوشیار نظام ہے جو کمپیوٹر پر دستیاب کمپیوٹر میموری کی کسی بھی مقدار میں متعدد سینٹرل پروسیسنگ یونٹس (CPU) کو جوڑنے کے لیے استعمال ہوتا ہے۔ سنگل NUMA نوڈز اسکیل ایبل نیٹ ورک (I/O بس) پر جڑے ہوئے ہیں تاکہ ایک CPU دوسرے NUMA نوڈس سے منسلک میموری کو منظم طریقے سے حاصل کر سکے۔



لوکل میموری وہ میموری ہے جسے سی پی یو ایک خاص NUMA نوڈ میں استعمال کر رہا ہے۔ غیر ملکی یا ریموٹ میموری وہ میموری ہے جسے سی پی یو دوسرے NUMA نوڈ سے لے رہا ہے۔ اصطلاح NUMA تناسب غیر ملکی میموری تک رسائی کی لاگت کا تناسب مقامی میموری تک رسائی کی لاگت کو بیان کرتا ہے۔ زیادہ سے زیادہ تناسب ، زیادہ لاگت ، اور اس طرح میموری تک رسائی میں زیادہ وقت لگتا ہے۔





تاہم ، اس وقت سے زیادہ وقت لگتا ہے جب وہ سی پی یو اپنی مقامی میموری تک رسائی حاصل کر رہا ہو۔ مقامی میموری تک رسائی ایک بڑا فائدہ ہے ، کیونکہ یہ کم تاخیر کو اعلی بینڈوتھ کے ساتھ جوڑتا ہے۔ اس کے برعکس ، کسی دوسرے سی پی یو سے تعلق رکھنے والی میموری تک رسائی میں زیادہ تاخیر اور کم بینڈوتھ کی کارکردگی ہوتی ہے۔

پیچھے مڑ کر دیکھنا: مشترکہ میموری ملٹی پروسیسرز کا ارتقاء۔

فرینک ڈین مین [8] کہتا ہے کہ جدید نظام کے فن تعمیرات واقعی یونیفارم میموری ایکسیس (UMA) کی اجازت نہیں دیتے ، حالانکہ یہ سسٹم خاص طور پر اس مقصد کے لیے بنائے گئے ہیں۔ سیدھے الفاظ میں ، متوازی کمپیوٹنگ کا خیال پروسیسرز کا ایک گروپ ہونا تھا جو کسی دیئے گئے کام کی گنتی میں تعاون کرتے ہیں ، اس طرح دوسری صورت میں کلاسیکی ترتیب وار گنتی کو تیز کرتے ہیں۔



جیسا کہ فرینک ڈین مین [8] نے وضاحت کی ہے ، 1970 کی دہائی کے اوائل میں ، ایسے سسٹمز کی ضرورت تھی جو متعدد سمورین صارف کے کام کر سکتے ہیں اور ضرورت سے زیادہ ڈیٹا جنریشن ڈیٹا بیس سسٹم متعارف کرانے کے ساتھ مرکزی دھارے میں شامل ہو گئے۔ uniprocessor کارکردگی کی متاثر کن شرح کے باوجود ، ملٹی پروسیسر سسٹم اس کام کے بوجھ کو سنبھالنے کے لیے بہتر طور پر لیس تھے۔ سرمایہ کاری مؤثر نظام فراہم کرنے کے لیے ، مشترکہ میموری ایڈریس کی جگہ تحقیق کا مرکز بن گئی۔ ابتدائی طور پر ، کراس بار سوئچ استعمال کرنے والے نظاموں کی وکالت کی گئی تھی ، تاہم اس ڈیزائن کی پیچیدگی کے ساتھ پروسیسرز کے اضافے کے ساتھ پیمائش کی گئی ، جس نے بس پر مبنی نظام کو زیادہ پرکشش بنا دیا۔ بس سسٹم میں پروسیسرز بس پر درخواستیں بھیج کر میموری کی پوری جگہ تک رسائی حاصل کر سکتے ہیں ، دستیاب میموری کو زیادہ سے زیادہ استعمال کرنے کا ایک انتہائی سرمایہ کاری مؤثر طریقہ ہے۔

تاہم ، بس پر مبنی کمپیوٹر سسٹم ایک رکاوٹ کے ساتھ آتے ہیں-بینڈوڈتھ کی محدود مقدار جو اسکیل ایبلٹی کے مسائل کا باعث بنتی ہے۔ جتنے زیادہ سی پی یوز سسٹم میں شامل کیے جائیں گے ، فی بینڈ کم بینڈوڈتھ دستیاب ہوگی۔ مزید یہ کہ ، جتنے زیادہ سی پی یو شامل کیے جاتے ہیں ، بس اتنی لمبی ہوتی ہے ، اور اس کے نتیجے میں تاخیر زیادہ ہوتی ہے۔

زیادہ تر سی پی یو دو جہتی طیارے میں بنائے گئے تھے۔ سی پی یوز کو بھی انٹیگریٹڈ میموری کنٹرولرز کو شامل کرنا پڑا۔ ہر سی پی یو کور میں چار میموری بسیں (اوپر ، نیچے ، بائیں ، دائیں) رکھنے کا آسان حل مکمل دستیاب بینڈوڈتھ کی اجازت دیتا ہے ، لیکن یہ صرف اتنا دور جاتا ہے۔ سی پی یو کافی وقت کے لیے چار کور کے ساتھ جم گیا۔ اوپر اور نیچے نشانات شامل کرنے سے براہ راست بسوں کو ترچھی مخالف سی پی یوز میں داخل کیا گیا کیونکہ چپس تھری ڈی بن گئیں۔ چار کور والے سی پی یو کو کارڈ پر رکھنا ، جو پھر بس سے جڑا ، اگلا منطقی قدم تھا۔

آج ، ہر پروسیسر میں کئی کور ہوتے ہیں جن میں مشترکہ آن چپ کیشے اور آف چپ میموری ہوتی ہے اور اس کے میموری کے مختلف حصوں میں متغیر میموری تک رسائی کے اخراجات ہوتے ہیں۔

ڈیٹا تک رسائی کی کارکردگی کو بہتر بنانا عصری سی پی یو ڈیزائن کے اہم اہداف میں سے ایک ہے۔ ہر سی پی یو کور کو چھوٹی سطح ایک کیشے (32 KB) اور بڑے (256 KB) لیول 2 کیشے سے نوازا گیا تھا۔ مختلف کور بعد میں کئی ایم بی کا لیول 3 کیش شیئر کریں گے ، جس کا سائز وقت کے ساتھ کافی بڑھ گیا ہے۔

کیش کی کمی سے بچنے کے لیے - ڈیٹا کی درخواست کرنا جو کیشے میں نہیں ہے - سی پی یو کیچز ، کیچنگ ڈھانچے اور متعلقہ الگورتھم کی صحیح تعداد تلاش کرنے پر بہت زیادہ تحقیقاتی وقت صرف کیا جاتا ہے۔ کیشنگ اسنوپ [4] اور کیش ہم آہنگی [3،5] کے پروٹوکول کی مزید تفصیلی وضاحت کے ساتھ ساتھ NUMA کے پیچھے ڈیزائن آئیڈیاز دیکھیں۔

NUMA کے لیے سافٹ ویئر سپورٹ۔

سافٹ وئیر کی اصلاح کے دو اقدامات ہیں جو NUMA فن تعمیر کی حمایت کرنے والے نظام کی کارکردگی کو بہتر بنا سکتے ہیں - پروسیسر وابستگی اور ڈیٹا پلیسمنٹ۔ جیسا کہ [19] میں بیان کیا گیا ہے ، پروسیسر وابستگی […] کسی پروسیس یا تھریڈ کو کسی ایک سی پی یو ، یا سی پی یوز کی ایک رینج کے بائنڈنگ اور ان بائنڈنگ کے قابل بناتی ہے تاکہ پروسیس یا دھاگہ صرف نامزد سی پی یو یا سی پی یو پر عمل کرے۔ کوئی سی پی یو ڈیٹا پلیسمنٹ کی اصطلاح سے مراد سافٹ وئیر میں ترمیم ہے جس میں کوڈ اور ڈیٹا کو میموری میں ہر ممکن حد تک قریب رکھا جاتا ہے۔

مختلف UNIX اور UNIX سے متعلقہ آپریٹنگ سسٹم NUMA کو مندرجہ ذیل طریقوں سے سپورٹ کرتے ہیں (نیچے دی گئی فہرست [14] سے لی گئی ہے):

  • سلیکن گرافکس IRIX اوریجن سرور سیریز کے ساتھ 1240 CPU سے زیادہ ccNUMA فن تعمیر کے لیے معاونت کرتا ہے۔
  • مائیکروسافٹ ونڈوز 7 اور ونڈوز سرور 2008 R2 نے 64 منطقی کوروں سے زیادہ NUMA فن تعمیر کے لیے تعاون شامل کیا۔
  • لینکس کرنل کا ورژن 2.5 پہلے ہی بنیادی NUMA سپورٹ پر مشتمل ہے ، جسے بعد کے کرنل ریلیز میں مزید بہتر بنایا گیا۔ لینکس کرنل کا ورژن 3.8 ایک نیا NUMA فاؤنڈیشن لایا جس نے بعد کی کرنل ریلیز میں زیادہ موثر NUMA پالیسیوں کی ترقی کی اجازت دی [13]۔ لینکس کرنل کا ورژن 3.13 متعدد پالیسیاں لاتا ہے جن کا مقصد کسی عمل کو اس کی یادداشت کے قریب رکھنا ہوتا ہے ، کیسز کو سنبھالنے کے ساتھ ، جیسے میموری پیجز کو پراسس کے درمیان شیئر کرنا ، یا شفاف بڑے پیجز کا استعمال۔ نئی سسٹم کنٹرول سیٹنگز NUMA بیلنسنگ کو فعال یا غیر فعال کرنے کے ساتھ ساتھ مختلف NUMA میموری بیلنسنگ پیرامیٹرز کی ترتیب [15] کی اجازت دیتی ہیں۔
  • منطقی گروہوں کے تعارف کے ساتھ اوریکل اور اوپن سولاریس ماڈل NUMA فن تعمیر دونوں۔
  • فری بی ایس ڈی نے ورژن 11.0 میں ابتدائی NUMA وابستگی اور پالیسی کنفیگریشن کو شامل کیا۔

کتاب کمپیوٹر سائنس اینڈ ٹیکنالوجی ، پروسیڈنگز آف دی انٹرنیشنل کانفرنس (CST2016) ننگ کائی نے تجویز کیا ہے کہ NUMA فن تعمیر کا مطالعہ بنیادی طور پر اعلی درجے کے کمپیوٹنگ ماحول پر مرکوز تھا اور NUMA سے آگاہ ریڈکس پارٹیشننگ (NaRP) تجویز کیا گیا تھا ، جو کارکردگی کو بہتر بناتا ہے۔ بزنس انٹیلی جنس ایپلی کیشنز کو تیز کرنے کے لیے NUMA نوڈس میں مشترکہ کیشز۔ اس طرح ، NUMA چند پروسیسرز [6] کے ساتھ مشترکہ میموری (SMP) سسٹم کے درمیان درمیانی زمین کی نمائندگی کرتا ہے۔

NUMA اور لینکس۔

جیسا کہ اوپر بیان کیا گیا ہے ، لینکس دانا نے ورژن 2.5 کے بعد سے NUMA کی حمایت کی ہے۔ ڈیبین GNU/Linux اور Ubuntu دونوں سافٹ ویئر پیکجز numactl [16] اور numad [17] کے ساتھ عمل کی اصلاح کے لیے NUMA سپورٹ پیش کرتے ہیں۔ numactl کمانڈ کی مدد سے ، آپ اپنے سسٹم میں دستیاب NUMA نوڈس کی انوینٹری درج کر سکتے ہیں [18]:

# numactl -ہارڈ ویئر۔
دستیاب:نوڈس(-)
نوڈcpus: 16۔ 17۔ 18۔ 19۔ بیس اکیس 22۔ 2. 3۔
نوڈسائز:8157۔ایم بی
نوڈمفت:88۔ایم بی
نوڈcpus: 10۔ گیارہ 12۔ 13۔ 14۔ پندرہ 24۔ 25۔ 26۔ 27۔ 28۔ 29۔ 30۔ 31۔
نوڈسائز:8191۔ایم بی
نوڈمفت:5176۔ایم بی
نوڈ فاصلے:
نوڈ
:10۔ بیس
:بیس 10۔

NumaTop ایک مفید ٹول ہے جو انٹیل نے رن ٹائم میموری کے علاقے کی نگرانی اور NUMA سسٹم میں عمل کا تجزیہ کرنے کے لیے تیار کیا ہے [10،11]۔ یہ ٹول ممکنہ طور پر NUMA سے متعلقہ کارکردگی کی رکاوٹوں کی نشاندہی کرسکتا ہے اور اسی وجہ سے NUMA سسٹم کی صلاحیت کو زیادہ سے زیادہ کرنے کے لیے میموری/CPU مختص کو دوبارہ توازن میں مدد دے سکتا ہے۔ مزید تفصیل کے لیے [9] دیکھیں۔

استعمال کے مناظر۔

کمپیوٹر جو NUMA ٹیکنالوجی کو سپورٹ کرتے ہیں تمام CPUs کو پوری میموری تک براہ راست رسائی کی اجازت دیتے ہیں - CPUs اسے ایک واحد ، لکیری ایڈریس اسپیس کے طور پر دیکھتے ہیں۔ اس سے 64 بٹ ایڈریسنگ سکیم کا زیادہ موثر استعمال ہوتا ہے ، جس کے نتیجے میں ڈیٹا کی تیز نقل و حرکت ، ڈیٹا کی کم نقل ، اور آسان پروگرامنگ ہوتی ہے۔

NUMA سسٹمز سرور سائیڈ ایپلی کیشنز کے لیے کافی پرکشش ہیں ، جیسے ڈیٹا مائننگ اور فیصلہ سپورٹ سسٹم۔ مزید برآں ، گیمنگ اور اعلیٰ کارکردگی والے سافٹ وئیر کے لیے درخواستیں لکھنا اس فن تعمیر کے ساتھ بہت آسان ہو جاتا ہے۔

نتیجہ

آخر میں ، NUMA فن تعمیر اسکیل ایبلٹی سے خطاب کرتا ہے ، جو اس کے اہم فوائد میں سے ایک ہے۔ NUMA CPU میں ، ایک نوڈ میں اسی نوڈ پر میموری تک رسائی کے لیے زیادہ بینڈوڈتھ یا کم تاخیر ہوگی (مثال کے طور پر ، مقامی CPU ریموٹ رسائی کی طرح میموری تک رسائی کی درخواست کرتا ہے the ترجیح مقامی CPU پر ہے)۔ اگر ڈیٹا کو مخصوص عمل (اور اس طرح پروسیسرز) میں مقامی بنایا جائے تو یہ میموری تھرو پٹ کو ڈرامائی طور پر بہتر بنائے گا۔ نقصانات ایک پروسیسر سے دوسرے پر ڈیٹا منتقل کرنے کے زیادہ اخراجات ہیں۔ جب تک کہ یہ کیس اکثر نہیں ہوتا ، NUMA سسٹم زیادہ روایتی فن تعمیر والے نظاموں کو پیچھے چھوڑ دے گا۔

لنکس اور حوالہ جات۔

  1. NVIDIA Tesla بمقابلہ Radeon Instinct کا موازنہ کریں ، https://www.itcentralstation.com/products/comparisons/nvidia-tesla_vs_radeon-instinct
  2. NVIDIA DGX-1 بمقابلہ Radeon Instinct کا موازنہ کریں ، https://www.itcentralstation.com/products/comparisons/nvidia-dgx-1_vs_radeon-instinct
  3. کیش ہم آہنگی ، ویکیپیڈیا ، https://en.wikipedia.org/wiki/Cache_coherence
  4. بس سنوپنگ ، ویکیپیڈیا ، https://en.wikipedia.org/wiki/Bus_snooping
  5. ملٹی پروسیسر سسٹم میں کیش ہم آہنگی پروٹوکول ، گیکس کے لیے گیکس ، https://www.geeksforgeeks.org/cache-coherence-protocols-in-multiprocessor-system /
  6. کمپیوٹر سائنس اور ٹیکنالوجی - بین الاقوامی کانفرنس کی کارروائی
  7. ڈینیل پی بووٹ اور مارکو سیسٹی: لینکس کرنل کو سمجھنے میں NUMA فن تعمیر کو سمجھنا ، تیسرا ایڈیشن ، او ریلی ، https://www.oreilly.com/library/view/understanding-the-linux/0596005652/
  8. فرینک ڈین مین: NUMA ڈیپ ڈائیونگ حصہ 1: UMA سے NUMA تک ، https://frankdenneman.nl/2016/07/07/numa-deep-dive-part-1-uma-numa/
  9. کولن ایان کنگ: NumaTop: ایک NUMA سسٹم مانیٹرنگ ٹول ، http://smackerelofopinion.blogspot.com/2015/09/numatop-numa-system-monitoring-tool.html
  10. نمبر ٹاپ ، https://github.com/intel/numatop۔
  11. ڈیبین GNU / لینکس کے لیے پیکیج نمبر ، https://packages.debian.org/buster/numatop۔
  12. جوناتھن کیہیاس: غیر یکساں میموری رسائی/فن تعمیرات کو سمجھنا (NUMA) ، https://www.sqlskills.com/blogs/jonathan/understanding-non-uniform-memory-accessarchitectures-numa/
  13. لینکس کرنل نیوز برائے دانا 3.8 ، https://kernelnewbies.org/Linux_3.8
  14. غیر یکساں میموری رسائی (NUMA) ، ویکیپیڈیا ، https://en.wikipedia.org/wiki/Non-uniform_memory_access
  15. لینکس میموری مینجمنٹ دستاویزات ، NUMA ، https://www.kernel.org/doc/html/latest/vm/numa.html
  16. ڈیبین GNU/لینکس کے لیے پیکیج numactl ، https://packages.debian.org/sid/admin/numactl۔
  17. ڈیبین جی این یو/لینکس کے لیے پیکیج نمبر ، https://packages.debian.org/buster/numad
  18. اگر NUMA کنفیگریشن فعال ہے یا غیر فعال ہے تو کیسے تلاش کریں؟ https://www.thegeekdiary.com/centos-rhel-how-to-find-if-numa-configuration-is-enabled-or-disabled/
  19. پروسیسر وابستگی ، ویکیپیڈیا ، https://en.wikipedia.org/wiki/Processor_affinity۔

شکریہ۔

مصنفین اس مضمون کی تیاری کے دوران اس کی حمایت کے لیے جیرولڈ روپریچٹ کا شکریہ ادا کرنا چاہیں گے۔

مصنفین کے بارے میں

Plaxedes Nehanda ایک کثیر ہنر مند ، خود سے چلنے والا ورسٹائل شخص ہے جو بہت سی ٹوپیاں پہنتا ہے ، ان میں سے ، ایک ایونٹ پلانر ، ایک ورچوئل اسسٹنٹ ، ایک ٹرانسکربر ، نیز ایک شوقین محقق ، جوہانسبرگ ، جنوبی افریقہ میں مقیم ہے۔

پرنس کے نہندا زمبابوے کے ہرارے میں پیفلو میٹرنگ میں ایک انسٹرومینٹیشن اینڈ کنٹرول (میٹرولوجی) انجینئر ہیں۔

فرینک ہوف مین سڑک پر کام کرتا ہے-ترجیحی طور پر برلن (جرمنی) ، جنیوا (سوئٹزرلینڈ) ، اور کیپ ٹاؤن (جنوبی افریقہ)-لینکس یوزر اور لینکس میگزین جیسے میگزین کے ڈویلپر ، ٹرینر اور مصنف کی حیثیت سے۔ وہ ڈیبین پیکیج مینجمنٹ کتاب کے شریک مصنف بھی ہیں ( http://www.dpmb.org ).