ইন্টেল কোর i7 এর জন্য NUMA সক্ষম করা


22

লিনাক্স কার্নেলে, ডকুমেন্টেশনগুলির জন্য CONFIG_NUMAবলা হয়েছে:

Enable NUMA (Non Uniform Memory Access) support. 

he kernel will try to allocate memory used by a CPU on the  
local memory controller of the CPU and add some more
NUMA awareness to the kernel.

For 64-bit this is recommended if the system is Intel Core i7
(or later), AMD Opteron, or EM64T NUMA.

আমার কাছে একটি ইন্টেল কোর আই 7 প্রসেসর রয়েছে তবে আফিকাল এটিতে কেবল একটি NUMA নোড রয়েছে:

$ numactl --hardware
available: 1 nodes (0)
node 0 cpus: 0 1 2 3 4 5 6 7
node 0 size: 16063 MB
node 0 free: 15031 MB
node distances:
node   0 
  0:  10 

সুতরাং CONFIG_NUMA=y, যখন আই 7 এর কেবল একটি NUMA নোড থাকবে তার উদ্দেশ্য কী ?

উত্তর:


13

আমি মনে করি এই ছবিটি যথেষ্ট ব্যাখ্যা করেছে:

                  এখানে চিত্র বর্ণনা লিখুন

  • সকেট বা নুমা নোড মেমোরিতে স্থানীয় অ্যাক্সেস সহ কোরগুলির সংগ্রহ। প্রতিটি সকেটে 1 বা আরও বেশি কোর থাকে। নোট করুন যে এটি অগত্যা কোনও শারীরিক সকেটকে নির্দেশ করে না, বরং মেশিনটির মেমরি আর্কিটেকচারকে বোঝায় যা আপনার চিপ বিক্রেতার উপর নির্ভর করবে।

  • প্রসেসর কোর (সিপিইউ কোর, লজিকাল প্রসেসর) একটি একক প্রক্রিয়াকরণ ইউনিটকে গণনা সম্পাদনে সক্ষম বলে বোঝায়।

সুতরাং উপরেরটি ইঙ্গিত দেয় যে NUMA আর্কিটেকচারটি লাভ করতে আপনার মেশিনে একাধিক প্রসেসরের প্রয়োজন।

আপনি কার্নেলের মধ্যে NUMA সমর্থন সংকলন করতে এবং এটি একক প্রসেসর মেশিনে চালাতে পারেন। এটি এসএমপি সমর্থন মত একই। এটি পাশাপাশি সংকলিত হয়েছে কিন্তু যখন কার্নেল সনাক্ত করে যে সিস্টেমে একক প্রসেসর রয়েছে এটি এটি ব্যবহার করবে না (এটি অক্ষম করুন)। একই সংস্থান NUMA এর জন্য। সম্পর্কিত বার্তাগুলির জন্য আপনি dmesgকার্নেল রিং বাফার বা /var/log/dmesgফাইল পরীক্ষা করতে পারেন :

NUMA - একক প্রসেসর (বা NUMA অক্ষম) এক্স মাল্টি প্রসেসর:

No NUMA configuration found
NUMA: Allocated memnodemap from b000 - b440

এসএমপি - একক প্রসেসর এক্স মাল্টি প্রসেসর:

SMP: Allowing 1 CPUs, 0 hotplug CPUs
SMP: Allowing 32 CPUs, 0 hotplug CPUs

তথ্যসূত্র


2
@slm - আপনি কি বলতে তোলে অর্থে, কিন্তু কেন কার্নেল ডকুমেন্টেশন (আমার প্রশ্ন উদ্ধৃত) পায় আমি সক্রিয় করা উচিত CONFIG_NUMAজন্য core i7?
ব্যবহারকারী 1968963

1
যেহেতু হাসওয়েল এটি আর সত্য নয় যে NUMA কোনও 'একক প্রসেসর' (যার অর্থ একক সকেট) মেশিনের জন্য কোনও ব্যবহারের নয়। কিছু হ্যাসওয়েল পণ্যাদির বৈশিষ্ট্যগুলি ইন্টেলকে 'ডাই ক্লাস্টার অন ডায়' মোড বলে। একক সকেট প্রসেসরের একাধিক মেমরি কন্ট্রোলার রয়েছে এবং মেমরির একাধিক পাথ রয়েছে, যা এই বৈশিষ্ট্যটির সাথে পৃথক NUMA অঞ্চল হিসাবে বিবেচনা করা যেতে পারে, যার সবকটিই একটি সকেটকে ঘিরে।
পল কেহেনি

16
For 64-bit this is recommended if the system is Intel Core i7
(or later), AMD Opteron, or EM64T NUMA.

প্রথম, নোট করুন যে ইন্টেল কোর i7 কেবল একটি বিপণনের পদবি, এবং ইন্টেল কোর আই 7 (বা পরে) শব্দটি খুব অস্পষ্ট। তাহলে এর অর্থ কী হতে পারে?

লিনাক্স কার্নেল Kconfigসহায়তা পাঠ্য সম্পাদনাগুলি একটি ইন্টেল কোর 7i উল্লেখ করে , তারপরে ইন্টেল কোর আই 7- তে সংশোধন করা হয়েছিল, ২০০৮ সালের নভেম্বর মাসে সম্পন্ন হয়েছিল The

x86: update CONFIG_NUMA description
Impact: clarify/update CONFIG_NUMA text

CONFIG_NUMA description talk about a bit old thing.
So, following changes are better.

 o CONFIG_NUMA is no longer EXPERIMENTAL

 o Opteron is not the only processor of NUMA topology on x86_64 no longer,
   but also Intel Core7i has it.

এটি যুক্তিসঙ্গতভাবে কেবল সেই সময়ের মধ্যে প্রকাশিত বা ঘোষিত ইন্টেল কোর আই 7 সিপিইউগুলিকে উল্লেখ করতে পারে। এটি হবে ব্লুমফিল্ড প্রসেসর, নেহলেম মাইক্রোআরকিটেকচারের উপর ভিত্তি করে , যা মেমরি কন্ট্রোলারকে নর্থব্রিজ থেকে সিপিইউতে স্থানান্তরিত করেছিল (যা এএমডি ২০০৩ সালে ওপ্টরন / এএমডি 64 এর সাহায্যে করেছিল) এবং কুইকপ্যাথ ইন্টারকানেক্ট / কিউপিআই (এএমডির হাইপারট্রান্সপোর্টের দুল হিসাবে) চালু করেছিল সিপিইউ / সিপিইউ এবং সিপিইউ / আইওএইচ (আইও হাব, প্রাক্তন উত্তরব্রিজ) আন্তঃসংযোগের জন্য।

ব্লুমডেল আই 7 সিপিইউগুলি নতুন কোর i {3,5,7} নামকরণ প্রকল্পে প্রথম প্রবেশিকা ছিল । সুতরাং যখন সেই লিনাক্স ডক পাঠ্যটি লেখা হয়েছিল, i7 নির্দিষ্টভাবে i5 (09/2009-এ প্রথম) বা i3 (01/2010-এ প্রথম) এর বিপরীতে কোর আই 7 কে নির্দিষ্টভাবে উল্লেখ করে নি, তবে সমস্ত সম্ভাবনা সহ নতুন নেহালেম মাইক্রোআর্কাইটিচারের সাথে এর সমন্বিত মেমরি নিয়ামক এবং কিউপিআই।

11/2008 থেকে আই 7-তে একটি ইন্টেল প্রেস রিলিজ পেয়েছে ( ইনটেল প্ল্যানেটে দ্রুততম প্রসেসর প্রবর্তন করে ) এতে বলা হয়েছে যে কোর আই 7 প্রসেসর পূর্ববর্তী ইন্টেল "এক্সট্রিম" প্ল্যাটফর্মের মেমরি ব্যান্ডউইথের দ্বিগুণের চেয়ে বেশি , কিন্তু মোটামুটি NUMA উল্লেখ করে না ।

কারণটি হ'ল, আমি মনে করি, NUMA ডেস্কটপ পিসিগুলির পক্ষে কিছু যায় আসে না, এমনকি "চরম" বিষয়গুলির জন্যও নয়।

নিবেদিত শারীরিক মেমরি অ্যাক্সেস লেনগুলি (কেবল একটি মেমরি নিয়ামক নয়) সহ একাধিক সিপিইউ সকেট (কেবল একটি সকেটে একাধিক কোর নয়) রয়েছে এমন ব্যয়বহুল সার্ভারগুলির জন্য NUMA গুরুত্বপূর্ণ, যাতে প্রতিটি সিপিইউতে তার ডেডিকেটেড লোকাল মেমরি থাকে যা এটি "কাছাকাছি" থাকে অন্যান্য সিপিইউগুলির স্মৃতির চেয়ে। (আটটি সকেট, ,৪ টি কোর, ২৫6 গিগাবাইট র‌্যাম চিন্তা করুন NUM) NUMA এর অর্থ একটি সিপিইউ তার নিজস্ব স্থানীয় স্মৃতি ছাড়াও দূরবর্তী মেমরির (অন্য একটি সিপিইউর স্থানীয় মেমরি) অ্যাক্সেস করতে পারে a NUMA হ'ল এসএমপির মতো একটি ভাগ করা মেমরি আর্কিটেকচারের সংশ্লেষণ, যেখানে সমস্ত মেমরি সমস্ত কোরের জন্য সমানভাবে উপলব্ধ এবং এমপিপি (ম্যাসিভালি সমান্তরাল প্রসেসিং) এর মতো বিতরণযোগ্য মেমরি আর্কিটেকচার, যা প্রতিটি নোডকে মেমরির একটি উত্সর্গীকৃত ব্লক দেয়। এটি এমপিপি, তবে অ্যাপ্লিকেশনটিতে এটি এসএমপির মতো দেখাচ্ছে।

ডেস্কটপ মাদারবোর্ডগুলিতে দ্বৈত সকেট এবং চূড়ান্ত আই 7 সংস্করণ সহ ইন্টেল ডেস্কটপ সিপিইউ নেই ডুয়াল সকেট কনফিগারেশনের জন্য অতিরিক্ত QPI লিঙ্কের অভাব রয়েছে।

পরীক্ষা করে দেখুন উইকিপিডিয়া QPI নিবন্ধ দেখতে কিভাবে QPI ফলে NUMA প্রাসঙ্গিক হল:

একটি একক-প্রসেসর মাদারবোর্ডে এর সহজতম ফর্মটিতে, প্রসেসরটিকে আইও হাবের সাথে সংযোগ করতে একটি সিঙ্গেল কিউপিআই ব্যবহৃত হয় (উদাহরণস্বরূপ, একটি ইন্টেল কোর আই 7 কে একটি এক্স 58 এর সাথে সংযুক্ত করতে)। আর্কিটেকচারের আরও জটিল পরিস্থিতিতে পৃথক কিউপিআই লিংক জোড়গুলি মাদারবোর্ডের একটি নেটওয়ার্কে এক বা একাধিক প্রসেসর এবং এক বা একাধিক আইও হাব বা রাউটিং হাব সংযুক্ত করে, সমস্ত উপাদানকে নেটওয়ার্কের মাধ্যমে অন্যান্য উপাদানগুলিতে অ্যাক্সেস করতে দেয়। হাইপার ট্রান্সপোর্টের মতোই কুইকপ্যাথ আর্কিটেকচারটি ধরে নিয়েছে যে প্রসেসরগুলিতে সমন্বিত মেমরি নিয়ন্ত্রণকারী থাকবে এবং একটি অ-ইউনিফর্ম মেমরি অ্যাক্সেস (NUMA) আর্কিটেকচার সক্ষম করে।

[...]

যদিও কিছু হাই-এন্ড কোর আই 7 প্রসেসরগুলি কিউপিআই প্রকাশ করে, অন্য "মূলধারার" নেহালেম ডেস্কটপ এবং মোবাইল প্রসেসরগুলি সিঙ্গল-সকেট বোর্ডের জন্য উদ্দিষ্ট (যেমন এলজিএ 1156 কোর আই 3, কোর আই 5, এবং লিনফিল্ড / ক্লার্কসফিল্ড এবং উত্তরসূরি পরিবারগুলির অন্যান্য কোর আই 7 প্রসেসর) QPI বহিরাগতভাবে প্রকাশ করবেন না, কারণ এই প্রসেসরগুলি বহু-সকেট সিস্টেমে অংশ নেওয়ার উদ্দেশ্যে নয়। তবে এই চিপগুলিতে অভ্যন্তরীণভাবে কিউপিআই ব্যবহৃত হয় […]

মাল্টি-সকেট সার্ভার বোর্ডে একটি ইনটেল নেহালেম সিপিইউ যেভাবে স্থানীয়-অবিশ্বাস্য মেমরি অ্যাক্সেস তৈরি করে তা QPI এর মাধ্যমে। এছাড়াও এর ফলে NUMA নিবন্ধ :

ইন্টেল তার নেহালেম এবং টুকওয়িলা সিপিইউগুলির সাথে 2007 এর শেষদিকে তার x86 এবং ইটানিয়াম সার্ভারগুলির জন্য NUMA সামঞ্জস্যের ঘোষণা করেছে। উভয় সিপিইউ পরিবার একটি সাধারণ চিপসেট ভাগ করে; আন্তঃসংযোগটিকে ইন্টেল কুইক পাথ ইন্টারকানেক্ট (কিউপিআই) বলা হয়। এএমডি হাইপার ট্রান্সপোর্ট ব্যবহার করে এটির ওপ্টরন প্রসেসর (2003) দিয়ে NUMA প্রয়োগ করেছে।

এই প্রতিবেদনটি 11/2008 থেকে ফিরে দেখুন এবং দেখুন যে इंटেল i7- তে দুটি কিউপিআই লিঙ্কের একটি অক্ষম করেছে, এইভাবে ডুয়াল-সকেট কনফিগারেশন অক্ষম করে, যেখানে NUMA প্রযোজ্য:

নেহালেমের এই প্রথম, উচ্চ-ডেস্কটপ বাস্তবায়নটি কোডযুক্ত ব্লুমফিল্ড এবং এটি মূলত একই সিলিকন যা শেষ পর্যন্ত দ্বি-সকেট সার্ভারগুলিতে যাওয়া উচিত। ফলস্বরূপ, ব্লুমফিল্ড চিপগুলি জাহাজে দুটি কিউপিআই লিঙ্ক নিয়ে আসে, যেমন উপরে ডাই শটটি নির্দেশ করে। তবে দ্বিতীয় কিউপিআই লিঙ্কটি অব্যবহৃত। এই আর্কিটেকচারের উপর ভিত্তি করে 2 পি সার্ভারে, এটি দ্বিতীয় আন্তঃসংযোগ দুটি সকেটকে সংযুক্ত করবে এবং তার উপর, সিপিইউগুলি ক্যাশে সুসংহত বার্তা (একটি নতুন প্রোটোকল ব্যবহার করে) এবং ডেটা (যেহেতু মেমরি সাবসিস্টেমটি NUMA হবে) ভাগ করবে, একই রকম ওপটারনকে।

সুতরাং আমি আমার গুগল গবেষণার ফলাফল সম্পর্কিত আপনার প্রশ্ন থেকে দূরে সরে যাচ্ছি ... আপনি জিজ্ঞাসা করছেন কেন লিনাক্স ডকস 2008 এর শেষের দিকে এটি চালু করার প্রস্তাব দেওয়া শুরু করেছে? নিশ্চিত নয় যে এই প্রশ্নের একটি যথাযথ সঠিক উত্তর আছে ... আমাদের ডক লেখককে জিজ্ঞাসা করতে হবে। NUMA সক্রিয় করা ডেস্কটপ সিপিইউ ব্যবহারকারীদের কোনও উপকার করে না, তবে একাধিক সকেট ব্যবহারকারীদের সহায়তা করার সময় তাদের উল্লেখযোগ্যভাবে কোনও ক্ষতি করে না, তবে কেন নয়? এটি যুক্তি হতে পারে। পাওয়া গেছে যা আর্ক লিনাক্স ট্র্যাকারে NUMA অক্ষম করার বিষয়ে আলোচনায় প্রতিফলিত হয়েছিল ( এফএস # 31187 - [লিনাক্স] - কনফিগার ফাইল থেকে NUMA অক্ষম করুন )।

ডক লেখক নেহালেম আর্কিটেকচারের NUMA সম্ভাবনার কথাও ভেবে থাকতে পারেন যার বিষয়ে ডকটি লেখা হয়েছিল, 11/2008 কোর আই 7 প্রসেসর (920, 940, 965) একমাত্র প্রতিনিধি ছিলেন; প্রথম নেহালেম চিপস যার জন্য NUMA সত্যিই বোধগম্য হতে পারে সম্ভবত কিউন E5520 এর মত দ্বৈত QPI লিঙ্কযুক্ত Q1 / 2009 Xeon প্রসেসর ।


2

আমি মনে করি আপনি যদি --showস্যুইচটি ব্যবহার করেন তবে এটি আরও অর্থবোধ করতে পারে:

$ numactl --show
policy: default
preferred node: current
physcpubind: 0 1 2 3 
cpubind: 0 
nodebind: 0 
membind: 0 

সুতরাং আপনি ফিজকপুবিন্ডের ব্যবহার এভাবে নিয়ন্ত্রণ করতে পারেন:

$ numactl --physcpubind=+0-2 myapp

এটি অ্যাপ্লিকেশনটিকে myappপ্রথম 2 সিপিইউ কোরে সীমাবদ্ধ করবে । আমার সিস্টেমটি 4 টি কোর সহ একটি আই 5।

তথ্যসূত্র


2

আমি নিজে থেকে আমার কার্নেলটি তৈরি করার সময় আমার ডেস্কটপ পিসির জন্য একই জিনিসটি নিয়ে গবেষণা করে চলেছি। আমি অনেক গবেষণার পরে NUMA অক্ষম করার সিদ্ধান্ত নিয়েছি। আমার সিপিইউ একটি কোর আই 7 3820 যাতে এইচটি সহ 8 টি প্রসেসর রয়েছে। এই পৃষ্ঠাটি আমার সিদ্ধান্তে আসতে সহায়তা করেছে।

কনফিগার ফাইল থেকে NUMA অক্ষম করুন

সংক্ষেপে, আপনার যদি 1 টিরও বেশি সিপিইউ সকেট থাকে (কোর নির্বিশেষে) NUMA কেবলমাত্র সার্থক। একাধিক কোর সহ 1 টি সিপিইউ সকেট মেশিনে প্রসেসিং পাওয়ারের জন্য খুব ছোট আঘাত রয়েছে তবে এটি খুব কমই লক্ষণীয় যে বেশিরভাগ বিতরণ এটি সক্ষম করে দেয় কারণ এটি 1 টিরও বেশি সকেটযুক্ত সার্ভার এবং মেশিনগুলিকে একটি বিশাল সুবিধা প্রদান করবে।


1

সর্বাধিক একটি সিপিইউ সহ একটি পিসিতে NUMA সম্পূর্ণ অকেজো। আপনার নিজের কার্নেলের মধ্যে নিখরচায় এটি অক্ষম করুন।

আপনি সর্বদা টাস্কসেট (1) এর মাধ্যমে সিপিইউ বন্ধন নিয়ন্ত্রণ করতে পারেন ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.