কোর বনাম থ্রেডস: এই মেশিনে আমার কতগুলি থ্রেড চালানো উচিত?


41

এই মেশিনে আমার কতগুলি থ্রেড চালানো উচিত?

আমার lscpuবলছে এখানে 96 টি কোর আছে। এই শারীরিক কোর হয়? এই মেশিনে আমি চালাতে সক্ষম সর্বোচ্চ এবং সর্বোত্তম থ্রেডটি কী?

https://stackoverflow.com/a/10670440/610569 দেখায় যে আমি কোর প্রতি 20 টিরও বেশি থ্রেড চালাতে পারি। তা কি ঠিক আছে? এটা কি সর্বোত্তম?

alvas@server:~$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                96
On-line CPU(s) list:   0-95
Thread(s) per core:    2
Core(s) per socket:    12
Socket(s):             4
NUMA node(s):          4
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 62
Model name:            Intel(R) Xeon(R) CPU E5-4657L v2 @ 2.40GHz
Stepping:              4
CPU MHz:               2700.000
CPU max MHz:           2900.0000
CPU min MHz:           1200.0000
BogoMIPS:              4801.91
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              30720K
NUMA node0 CPU(s):     0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92
NUMA node1 CPU(s):     1,5,9,13,17,21,25,29,33,37,41,45,49,53,57,61,65,69,73,77,81,85,89,93
NUMA node2 CPU(s):     2,6,10,14,18,22,26,30,34,38,42,46,50,54,58,62,66,70,74,78,82,86,90,94
NUMA node3 CPU(s):     3,7,11,15,19,23,27,31,35,39,43,47,51,55,59,63,67,71,75,79,83,87,91,95

কোর / থ্রেডে আমার ক্ষুধা ক্ষমা করুন।

উত্তর:


52

এটি আপনি জানতে চান

Thread(s) per core:    2
Core(s) per socket:    12
Socket(s):             4

আপনার কাছে 4 সিপিইউ সকেট রয়েছে, প্রতিটি সিপিইউতে 12 টি পর্যন্ত কোর থাকতে পারে এবং প্রতিটি কোরে দুটি করে থ্রেড থাকতে পারে।

আপনার সর্বোচ্চ থ্রেড কাউন্ট, 4 পিপিইউ x 12 কোর x 2 থ্রেড প্রতি কোর, সুতরাং 12 x 4 x 2 হল 96. অতএব সর্বোচ্চ থ্রেডের গণনা 96 এবং সর্বোচ্চ কোর গণনা 48।

এর চেয়ে ভাল কি?

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

আশা করি এটি আপনাকে সহায়তা করবে।


3
"আরও থ্রেডের অর্থ কম ফ্রিকোয়েন্সি", এই বিবৃতিটি খুব ভুল। হাইপারথ্রেডিংয়ের পরেও, একটি একক প্রক্রিয়া প্রসেসরের সম্পূর্ণ ব্যবহার করতে পারে। হাইপারথ্রেডিং নির্দেশিকা পাইপলাইন এবং রেজিস্টারগুলি ব্যবহার করতে পারে যা বিভিন্ন ক্ষেত্রে বিভিন্ন প্রসেস / থ্রেড থেকে সামঞ্জস্যভাবে কিছু কার্যকর করতে নিষ্ক্রিয় হবে, কিছু ক্ষেত্রে প্রসেসরের সর্বাধিক থ্রুপুট বৃদ্ধি করে। পারফরম্যান্স লাভগুলি খুব অ্যাপ্লিকেশন / কনফিগারেশন। পি 4 এর পরে এইচটি সক্ষম করার সাথে কোনও ডকুমেন্টেড পারফরম্যান্স পেনাল্টি নেই (পি 4 জেন কোরে কিছু ক্ষেত্রে কিছু সমস্যা ছিল)
এনজিআরডস

2
আমি এই বিবৃতিটি খুব ভুল হিসাবে দেখছি না। আপনি যদি একটি একক কোরতে দুটি প্রক্রিয়া চালনা করেন তবে প্রতিটি প্রক্রিয়াটির নিজস্ব কোরটিতে চালনার তুলনায় প্রতিটি প্রক্রিয়াটির জন্য কম ফ্রিকোয়েন্সি পাওয়া যায়। এটি একটি খুব বেসিক এবং সরল বক্তব্য, তবে ওপি হাইপার-থ্রেডিং বা এটি কীভাবে কাজ করে সে সম্পর্কে কোনও বিশদ অনুরোধ করে নি। যদিও আপনি সঠিক, হাইপার-থ্রেডিং অনেকদূর এগিয়েছে এবং 48 টি কোর সহ আমি নিশ্চিত যে তারা এটি বন্ধ করতে চাইবে না।
মার্ক কির্বি

2
টুইটার আউট-অফ-অর্ডার কোরটিতে আরও বেশি নির্দেশনা-স্তরের সমান্তরালতাটি প্রকাশ করতে এটিই মূলত এইচটি এর পুরো পয়েন্ট। (অর্থাত্ এই শাখার ভুল অনুমান থেকে একটি থ্রেড পুনরুদ্ধারকালে বা ক্যাশে মিসের জন্য অপেক্ষা করতে থাকা অবস্থায় কার্যকর করা সেই ইউনিটগুলিকে খাওয়ানো হয়) আপনার কোডটি এতে বাধা দেয়, এইচটি আপনাকে প্রায় দ্বিগুণ থ্রুপুট দেয় বা কোনও অতিরিক্ত থ্রুপুট দেয় না। (X264 ভিডিও এনকোডিংয়ের জন্য 15% পছন্দ করুন))
পিটার কর্ডেস

1
মাইক্রোআরকিটেকচারাল বিশদগুলির জন্য agner.org/optimize দেখুন ।
পিটার কর্ডেস

1

প্রতিটি সিপিইউ কোর থ্রেড (হার্ডওয়্যার-ভিত্তিক থ্রেড) - আপনার 96৯ টি কোরগুলির মধ্যে একটি দক্ষতার সাথে আমার তাত্ত্বিক মতামতের বেশিরভাগ ক্ষেত্রে 16 টি থ্রেড (সফ্টওয়্যার-ভিত্তিক থ্রেড ফে সি ++ থ্রেড। H) পরিচালনা করতে পারে।


1
আপনি কোথায় পেয়েছেন "দক্ষতার সাথে 16 টি থ্রেড পরিচালনা করতে"? আউটপুটটি বলে প্রতি "থ্রেড (গুলি): প্রতিটি"
প্রতিশ্রুতিবদ্ধ

0

আপনি এইচটিপি বা পিএস কমান্ড চালিয়ে আপনার মেশিনে কতগুলি থ্রেড চালাতে পারবেন তা আপনার মেশিনে প্রসেসের সংখ্যা দেয়।

আপনি 'পিএস' কমান্ড সম্পর্কে ম্যান পৃষ্ঠা ব্যবহার করতে পারেন।

man ps

আপনি যদি সমস্ত ব্যবহারকারীর প্রক্রিয়া সংখ্যার গণনা করতে চান তবে আপনি এই আদেশগুলির একটি ব্যবহার করতে পারেন:

  1. ps -aux| wc -l
  2. ps -eLf | wc -l

ব্যবহারকারীর প্রক্রিয়ার সংখ্যা গণনা করা হচ্ছে:

  1. ps --User root | wc -l

এছাড়াও, আপনি "এইচটিপি" ব্যবহার করতে পারেন [রেফারেন্স] :

উবুন্টু বা ডেবিয়ানে ইনস্টল করা:

sudo apt-get install htop

রেডহাট বা সেন্টোস-এ ইনস্টল করা হচ্ছে:

yum install htop
dnf install htop      [On Fedora 22+ releases]

আপনি যদি উত্স কোড থেকে এইচটিওপি সংকলন করতে চান তবে আপনি এটি এখানে পাবেন

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