হাইপারথ্রেডিংয়ের সাথে কতটি সিপিইউ ব্যবহার করা উচিত?


22

ধরা যাক আমার কাছে হাইপারথ্রেডিং সহ 18 টি কোরের একটি সার্ভার সিপিইউ রয়েছে, যার অর্থ আমি হিপটে 36 সিপিএস দেখতে পাচ্ছি।

সিপিইউকে পুরোপুরিভাবে ব্যবহার করতে এবং একক থ্রেডের পারফরম্যান্সকে প্রভাবিত না করার জন্য, আমি কি সমস্ত 36 "কোর" 100% এ চালানোর জন্য লক্ষ্য রেখেছি এবং এইচটি কোগুলি কেবল কম কাজ করবে এবং এখনও 100% প্রতিবেদন করবে, বা এর অর্থ হ'ল "পূর্ণ" কোরগুলি এর "এইচটি কোর" এর কাজটি ইতিমধ্যে বাধাগ্রস্ত হচ্ছে এবং এভাবে কম একক থ্রেডযুক্ত কাজ করছে?

আমি সচেতন যে এইচটি পারফরম্যান্সকে প্রভাবিত করে এমন অনেকগুলি ভেরিয়েবল রয়েছে, এইচটি নিয়ে কাজ করার সময় আমি সিপিইউ মিটারের অর্থ কী তা জানতে চাই।


6
হাইপারথ্রেডিং আপনাকে সিপাসের দ্বিগুণ দেয় না। এটিকে আরও ভাবেন যেমন সিপিইউ দুটি প্রোগ্রামে পড়ে, এবং যখনই একটি প্রোগ্রাম এমন কিছু কাজ করতে চলেছে যা বেশ কয়েকটি চক্র গ্রহণ করে, বা যখন এটি সমস্ত সংস্থান (সংযোজক, গুণক, লোডার ইত্যাদি) ব্যবহার করে না তখন এটি এতে স্যুইচ হবে অন্যান্য প্রোগ্রাম যাতে এটি তাদের ব্যবহার করতে পারে। সুতরাং সমস্ত থ্রেড জুড়ে ১০০% দেখার জন্য একটি মূলত চলমান সামঞ্জস্যপূর্ণ প্রোগ্রামগুলির একটি সুখী কাকতালীয় প্রয়োজন।
সিম্পুউসার 23

4
সেই ডিজাইনের কারণে হাইপারথ্রেডিং মিশ্রিত কাজের চাপের সাথে ভাল কাজ করে। উদাহরণস্বরূপ, একটি হাইপাইভাইজার যেখানে সমস্ত ভিএম বিভিন্ন পরিষেবা চালায়। এই ধরণের দৃশ্যে এটি সম্ভবত পরীক্ষা করাও প্রয়োজনীয় নয়। আরও সমজাতীয় কাজের চাপের জন্য, পরীক্ষার অবশ্যই নিশ্চিত হওয়া প্রয়োজন।
মাইকেল হ্যাম্পটন

উত্তর:


14

দ্বিতীয় ভার্চুয়াল কোর অবদান যখন প্রথম অন্যথায় আটকে যাবে অনুমোদিত হয়, তাহলে এটি চেয়ে ভালো না , তাই আপনি (অন্তত) একটু অতিরিক্ত কাজ সম্পন্ন করুন।

প্রশ্নটি হয়ে ওঠে: দুটি ভিন্ন থ্রেড থাকার কারণে কখন একটি খারাপ হয়ে যায়? নির্দেশাবলীর মধ্যে শাখার পূর্বাভাস এবং নির্ভরতা পরিবর্তিত হবে না। এখন মেমোরি অ্যাক্সেসের জন্য অপেক্ষা করা হচ্ছে ... দুটি থ্রেড মেমরি অ্যাক্সেসের প্রতিযোগিতা করে, উভয়ই ক্যাশে ব্যবহার এবং ব্যান্ডউইদথ in

যদি আপনার কিছু সিপিইউ এইচটি এবং অন্যদের সাথে চলছে না, তবে এর অর্থ কি আপনি এক প্রকার বা অন্যকে নির্দিষ্ট থ্রেড বরাদ্দ করবেন? আমি মনে করি না: আপনার প্রোগ্রামগুলি এলোমেলো ভার্চুয়াল কোরগুলিতে তাদের থ্রেডগুলি চালাবে। সুতরাং কিভাবে বিভাজন কনফিগারেশন সাহায্য করে? যেহেতু প্রতিটি সিপিইউর নিজস্ব ক্যাশে রয়েছে, কেবলমাত্র মেমরি ব্যান্ডউইথ এবং ক্যাশে সংযুক্তির বোঝার কারণে প্রভাবিত হয়।

সাধারণভাবে, আপনি একটি পয়েন্ট পৌঁছানোর যেখানে থাকার আরো কিছু করছ যেতে পারে লেট কিছু সিপিইউ সঞ্চালনের ইউনিট অলস হয়ে যেতে চেয়ে বেশি ব্যয়বহুল। এটি সরাসরি থ্রেডের সংখ্যার উপর নির্ভর করে না, তবে থ্রেডগুলি কী করছে এবং বিভিন্ন উপাদানগুলির বিশদ মেমরি আর্কিটেকচার এবং পারফরম্যান্স সূক্ষ্মতার উপর নির্ভর করে না ।

কোন সহজ উত্তর নেই। এমনকি একটি নির্দিষ্ট প্রোগ্রাম মনে রেখে, মেশিনটি তাদের নিজস্ব অভিজ্ঞতা সম্পর্কিত লোকদের থেকে পৃথক হতে পারে।

আপনাকে এটি চেষ্টা করতে হবে এবং সেই নির্ভুল মেশিনে নির্দিষ্ট কাজটি সহ সবচেয়ে দ্রুত কী পরিমাপ করতে হবে। এবং তারপরেও এটি সময়ের সাথে সাথে সফ্টওয়্যার আপডেট এবং স্থানান্তরিত ব্যবহারের মাধ্যমে পরিবর্তন হতে পারে।

অ্যাঞ্জারের ম্যাগনাম ওপাসের ভলিউম 3 একবার দেখুন । আপনি যদি কিছু নির্দিষ্ট প্রসেসরের দিকে মনোযোগ সহকারে লক্ষ্য করেন তবে কোড কার্যকর করতে প্রয়োজনীয় পদক্ষেপগুলির গভীর পাইপলাইনগুলির মধ্যে সীমাবদ্ধ সংস্থানগুলি পেতে পারেন। আপনাকে এমন একটি মামলা খুঁজে বের করতে হবে যেখানে অতিরিক্ত কাজ করার কারণে এটি বেশি কাজ না করার বিরোধিতা করে ধীরে ধীরে কার্যকর হয়। সাধারণভাবে এর অর্থ একরকম ক্যাশিং; এবং যেখানে থ্রেডগুলির মধ্যে সম্পদ ভাগ করা আছে।


সিপিইউ মিটার বলতে কী বোঝায়: এটি অলস থ্রেড চালাতে ব্যয় না করা সমস্ত সময় রিপোর্ট করে। কোনও কোরকে বরাদ্দ করা উভয় যৌক্তিক থ্রেড নিষ্ক্রিয় হবে না যদিও তার মধ্যে একটিতে প্রকৃত কাজটি ছোট হতে পারে। ফলাফল প্রস্তুত না হওয়া, স্মৃতিশক্তি পাওয়া না যাওয়া, পারমাণবিক ক্রিয়াকলাপগুলি বেড় করা ইত্যাদি ইত্যাদি পাইপলাইনটির সাথে আটকে থাকা সময় একইভাবে থ্রেডটিকে "প্রস্তুত নয়" হিসাবে আচ্ছাদিত করে না তাই এটি নিষ্ক্রিয় হবে না, এবং সময় এখনও ব্যবহার হিসাবে প্রদর্শিত হয়। র‌্যামের জন্য অপেক্ষা করা নিষ্ক্রিয় হিসাবে প্রদর্শিত হবে না। কেবলমাত্র I / O এর মতো কিছু থ্রেডটিকে ব্লক করে দেবে এবং এর দিকে সময় চার্জ করা বন্ধ করবে। সাধারণভাবে একটি অপারেটিং-সিস্টেম মুটেেক্স এটি করবে, তবে মাল্টিকোর সিস্টেমগুলির উত্থানের সাথে এটি আর একটি নিশ্চিত বিষয় নয়, কারণ "স্পিনলক" থ্রেডটি শেল্ফটিতে ফিরে যেতে পারবে না

সুতরাং, সিপিইউ মিটারটি 100% এর অর্থ এই নয় যে সব মসৃণ নৌযান, যদি সিপিইউ প্রায়শই স্মৃতির জন্য অপেক্ষা করে থাকে। 90% দেখানো লজিক্যাল কোরগুলির কয়েকটি সংখ্যক খুব বেশি কাজ করা হতে পারে, কারণ এটি ক্রাঞ্চিং সংখ্যাটি শেষ করে এখন ডিস্কের জন্য অপেক্ষা করছে।

সুতরাং সিপিইউ মিটার সম্পর্কে চিন্তা করবেন না। প্রকৃত অগ্রগতি দেখুন, শুধুমাত্র


23

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

আরও বিশদে, এইচটিটি এমনভাবে সিলিকনে প্রয়োগ করা হয় যে প্রসঙ্গটি যখন প্রসঙ্গে পরিবর্তন করা প্রয়োজন বা কোনও শাখা-পূর্বাভাস ব্যর্থ হয় তখন প্রসেসর অলস সময় ব্যয় করে। এটি খাঁটি অপারেটিং-সিস্টেম কৌশলগুলির চেয়ে 100% এক্সিকিউশন ইউনিট ব্যবহারে পৌঁছানো সহজ করে তোলে। এইচটি এর প্রবর্তনের পর থেকেই বিকশিত হয়েছে এবং আধুনিক চিপগুলিতে আমরা 10 বছর আগে ব্যবহার করছি তার চেয়ে বেশি সমান্তরালতা রয়েছে।

দুটি কার্যকর করার প্রোফাইল রয়েছে যা আপনার সর্বোত্তম সাবস্ক্রিপশন পয়েন্টটি যেখানে প্রভাবিত করবে:

  • দীর্ঘ কার্যকরকরণের সময়কাল । যদি আপনার শ্রমিকরা পুনর্ব্যবহারের আগে কয়েক মিনিট বা ঘন্টা চালায়, যেমন বড় রেন্ডারিং কাজ বা পরিবেশের মডেলিংয়ের জন্য, তবে আপনি প্রতি শ্রমিকের চেয়ে আরও দক্ষ সিঙ্গল-কোর পারফরম্যান্স পাবেন। এটি আপনার অনুপাত কমিয়ে দেবে।
  • সংক্ষিপ্ত সম্পাদনের সময়কাল । যদি আপনার কর্মীরা সেকেন্ডে বা ছোট মিনিটের মধ্যে যেমন ওয়েব-অ্যাপ্লিকেশন থ্রেডগুলি চক্র করেন তবে কোনও নতুন প্রক্রিয়া চালু করার সাথে জড়িত ওভারহেডের অর্থ আপনার অনুপাত বেশি হবে।

ছোট মিনিট? মানে কয়েক মিনিট?
ইসমাইল মিগুয়েল

যথেষ্ট. 1 থেকে 5 বা তাই। ১৮ জন কর্মী নিয়ে প্রতি সেকেন্ডে 120 সেকেন্ডে, আপনি প্রতি 7ish সেকেন্ডে একটি নতুনকে ঘুরছেন। এটি প্রচুর নেমে আসে লোকালয়ে ক্যাশে।
sysadmin1138

1
আপনি এটি পেলেন না .. আপনি আপনার ২ য় পয়েন্টে "ছোট মিনিট" বলছেন। মিনিটে সর্বদা একই "আকার" থাকে, যা 60 সেকেন্ড। কখনও কখনও 61 সেকেন্ড।
ইসমাইল মিগুয়েল 23

4

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

স্পষ্টতই যখন আপনি হাইপারথ্রেডিংয়ের সাথে আকরিক "বিভক্ত" হন, তখন সেই 200% এর অর্থ "2x100%" হয় না - কাজ করা হয়। তবে এটি নেওয়া কোনও পরিমাপের কাছে অদৃশ্য হয় (যা সিপিইউ ব্যবহার থেকে আসে এবং কাজের কোনও ধারণা নেই)। এটি কতটা কাজ করে তা নির্ভর করে কাজটি কী তার উপর নির্ভর করে - কোথাও 1.5 x এর উপরে হাইপার থ্রেডিং ছাড়া কাজটি বেশিরভাগ সময় প্রত্যাশিত।


3

হাইপারথ্রেডিং যেভাবে প্রয়োগ করা হয় তা নির্দিষ্ট সিপিইউ এর সাথে আলাদা হয়। নেহালেম থেকে স্কাইলেকে, ইন্টেলটি পাইপলাইনের অংশবিশেষের ভাগগুলি যথাযথভাবে ভাগ করে দেওয়া কাঠামোগুলির দিকে লক্ষ্যণীয়ভাবে হ্রাস পেয়েছে।

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

এটা কীভাবে সম্ভব? মূল বিষয়টি বুঝতে হবে যে সিপিইউ দৈহিক কোর এবং ভার্চুয়ালগুলি সমান কোর হিসাবে উপস্থাপন করে না, বরং লিনাক্সের শিডিয়ুলারের চেয়ে এই পদ্ধতিটি পরে প্রকাশ করা হয় যদি অন্য কোনও শারীরিক কোর পাওয়া যায় তবে তাদের উপর নির্ধারিত সময়সূচি এড়াতে পারে। অন্য কথায়, এটি প্রথমে সমস্ত শারীরিক কোর ব্যবহার করে , তারপরে এটি ভার্চুয়ালটি ব্যবহার শুরু করে।

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

দুটি ব্যতিক্রম বিদ্যমান:

  1. যদি আপনি চান সমস্ত কিছু সীমিত থ্রেড (যেখানে থ্রেড <শারীরিক কোরে) থেকে বিলম্বকে হ্রাস করা হয়, আপনি এইচটি অক্ষম করতে পারেন
  2. খুব পুরানো সিপিইউ (পেন্টিয়াম 4 এবং, আরও ছোট উপায়ে, নেহালেম) -এর অবিচ্ছিন্ন পার্টিশন বিধি রয়েছে যা সিপিইউকে 50/50 অনুপাতে অনেক মূল সংস্থান বিভক্ত করতে বাধ্য করে, স্বতঃস্ফূর্তভাবে দ্বিতীয় থ্রেডের অবস্থা / বোঝা থেকে। এই ক্ষেত্রে, আপনাকে যুক্ত থ্রুপুটটি উল্লেখযোগ্যভাবে নীচের একক থ্রেডের পারফরম্যান্সের পক্ষে মূল্যবান তা নিশ্চিত করতে আপনার ব্যবহারের কেসটি বেঞ্চমার্ক করতে হবে।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.