সিপিইউতে কেন একক থ্রেড ছড়িয়ে পড়ে?


24

আমি কেবল কৌতূহলী কেন সিডিইউগুলিকে নিয়মিতভাবে রাখার পরিবর্তে সিপিইউগুলির মধ্যে ক্রমাগত কোনও অ্যাপ্লিকেশন সরিয়ে রাখি। এটি চারটি কোরের জন্য 100% এর পরিবর্তে 25% এ দেখতে কিছুটা নির্বোধ দেখাচ্ছে।

এটির উত্তাপের সাথে কী সম্পর্ক আছে, বা এটি কোনওরকম আরও দক্ষ? অন্যান্য ওএস কি এটি আলাদাভাবে করে?

অন্তর্দৃষ্টি বা গভীরতার স্টাফগুলিতে লিঙ্কগুলি দুর্দান্ত হবে। (নিজেকে খুব একটা খুঁজে পাইনি।)

হালনাগাদ:

"ছড়িয়ে পড়ে" এর অর্থ এই নয় যে এটি একবারে বেশ কয়েকটি সিপিইউতে কার্যকর হয়, তবে প্রতি সেকেন্ডে এক থেকে অন্য সময়ে সরিয়ে নেওয়া হচ্ছে, এটি প্রভাবটি ছড়িয়ে পড়ে বলে মনে হচ্ছে।


3
এমনকি যখন "অন্য কিছুই কার্যকর করা হয় না", সিপিইউয়ের জন্য প্রতিযোগিতামূলক সিস্টেম থ্রেড সবসময় থাকে। উদাহরণস্বরূপ, ও / এস-র পুনরুদ্ধারকৃত মেমরি পৃষ্ঠাগুলি শূন্যের জন্য একটি থ্রেড রয়েছে তাই যখন মেমরির প্রয়োজন হয়, তখন এটিতে কয়েকটি পৃষ্ঠা প্রস্তুত থাকবে। যখন আপনার থ্রেড আবার সম্পাদন করতে যায়, আপনি যে সিপিইউতে ছিলেন সেগুলি এই থ্রেডগুলির মধ্যে একটির দ্বারা ব্যবহৃত হতে পারে। ওস কি করা উচিত? এটির জন্য অপেক্ষা করুন বা আপনাকে নতুন সিপিইউতে স্থানান্তরিত করবেন? এটি কখনই করে না কেন, আপনি কিছু ক্ষেত্রে অনাকাঙ্ক্ষিত আচরণটি শেষ করেন।
টনি লি

এটি একটি গোম্বা। এসএমবি, এলবিপি নয়। :)
ম্যাক

আমার "জবাব"-এ, আমি বর্ণনা করেছি ঠিক তেমন আচরণ করে একটি একক থ্রেডেড প্রোগ্রাম দেখিয়েছি, অর্থাৎ "প্রতি সেকেন্ডে একাধিকবার সরানো হচ্ছে, এটি প্রভাবটি ছড়িয়ে পড়ে বলে মনে হচ্ছে" "
ইভান রোজিকা 21

উত্তর:


8

আমি মনে করি wierobবিন্দুটি মোটামুটি ভালভাবে বর্ণনা করেছেন। কোয়াড-কোর কিউএক্স 6800 নিয়ে সেটিংস নিয়ে আলোচনা
করা একটি পুরানো নিবন্ধ এখানে । (এই নিবন্ধের দ্বিতীয় পৃষ্ঠায় লিঙ্কটি নির্দেশ করে)।processor affinity

আপনি যদি কোনও কোরকে প্রক্রিয়া সংযুক্তি জোর না করেন তবে আপনি কি পারফরম্যান্সে ? িলা করেন ?

  • যদিও উইন্ডোজ নির্ধারণকারী ক্যাশে সঙ্গে এড়ানোর পিটুনি যেমন সম্বন্ধ সিদ্ধান্ত নেন প্রয়োজন, প্রসেসর নকশা নিজেই এছাড়াও এই ধরনের জিনিস বিবেচনা করে।
  • ইন্টেল কিউএক্স 68৮০০ কোয়াড-কোর (যেহেতু আমি এই উত্তরটির আগে উল্লেখ করেছি)
    এর L3টি কোর জুড়ে একটি 8 এমবি ক্যাশে রয়েছে

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


এগিয়ে নিয়ে যাওয়া, সঙ্গে Nehalem আর্কিটেকচার এবং এর ফলে NUMA ,
একাধিক সকেট জুড়ে প্রসেসর এছাড়াও ভাল ঠিকানা এক্সেস ছেঁচা করতে সক্ষম হবে।
এখানে NUMA- তে একটি আর্টটেকনিকা পৃষ্ঠা থেকে একটি দ্রুত চিত্র ।

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

যদি নেহালেম এবং i7আপনাকে আগ্রহী হয় তবে আমার এই উত্তরটিতে আরও কয়েকটি লিঙ্ক রয়েছে


আপনি কী ভাবছেন যে "নেহালেম আর্কিটেকচার এবং NUMA- এর সাহায্যে একাধিক সকেটের প্রসেসরগুলি আরও ভালভাবে প্রবেশের প্রবেশাধিকারকে সক্ষম করতে সক্ষম হবে" " ? আমি এটি দেখতে পাচ্ছি, NUMA মেমরিটিকে আরও স্থানীয় এবং বিশেষ-প্রসেসর সম্পর্কিত করে তোলে, ফলে ট্র্যাশিংয়ের প্রভাব আরও খারাপ হয়।
রোল্যান্ড পিহলাকাস

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

6

শিডিয়ুলার কেবলমাত্র পরবর্তী থ্রেড সম্পাদন করে যা একটি "ফ্রি" কোর / সিপিইউতে কার্যকর করার জন্য প্রস্তুত।

আপনি উইন্ডোজ টাস্ক ম্যানেজারের মাধ্যমে একটি নির্দিষ্ট সিপিইউতে একটি প্রক্রিয়া নির্ধারণ করতে পারেন।

25% এ 4 টি কোরের অর্থ হ'ল এক সাথে 4 টি থ্রেড কার্যকর করা হয়। অন্যদিকে, x% এ একটি কোর মানে শুধুমাত্র একটি থ্রেড কার্যকর করা হয় uted সুতরাং প্রাক্তনটি কিছু ক্ষেত্রে আরও দক্ষ।

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

আপনার থ্রেড কি করে? যদি থ্রেডটি খুব অল্প সময়ের জন্য "ঘুমায়" তবে এটি কার্যকর করা হয়েছিল তার আগে যে कोरটি চালানো হয়েছিল তা অন্য হুমকির দ্বারা দখল করা হতে পারে এবং এইভাবে আপনার থ্রেডটি পরবর্তী উপলব্ধ কোরটিতে কার্যকর করা হবে। যদি আপনি আপনার প্রক্রিয়াটি ব্যবহার করার জন্য শুধুমাত্র একটি কোর নির্দিষ্ট করে থাকেন (যেমন ia টাস্ক ম্যানেজার)?


3
আফাইক উইন্ডোজ শিডিউলার এই সমস্যাটি এড়াতে তার সময়কালের জন্য একই সিপিইউ / কোরের উপর থ্রেড রাখার একটি দুর্দান্ত কাজ করে।
প্যাক্স্সি

@ পের: আমার থ্রেডটি প্রতিটি কোরে বাস্তবে কার্যকর হচ্ছে বলে মনে হচ্ছে।
ম্যাক 18

হ্যাঁ, এটি সম্ভবত ওএস প্রোস যা আমার থ্রেডটি চারপাশে ঘায়েল করে। কিভাবে দুটি উত্তর গ্রহণ করবেন? :)
ম্যাক 18

আমার অভিজ্ঞতা থেকে @ পেরবিজিরক্লুন্ড কমপক্ষে উইন্ডোজ এক্সপি করে না। আমি মনে করি "ক্যাশে-
বাউনিং

1
"25% এ 4 টি কোরের অর্থ হ'ল এক সাথে 4 টি থ্রেড কার্যকর করা হয়।" না, এর অর্থ একটি থ্রেড কার্যকর করা হয়েছে, একটি কোরের উপর কিছুটা, তারপরে অন্য আরেকটি এবং আরও। যেমন টাস্ক ম্যানেজার গড় ব্যবহার দেখায়, এটি প্রতিটি কোরের জন্য 25% (একটি 4 কোর সিস্টেমে, দুটি কোরে এটি 50% দেখায়) দেখায়। এর অর্থ হল কোরটি এক চতুর্থাংশ পুরোপুরি কাজে লাগানো হয়েছিল এবং সময়ের বাকি সময় অলস ছিল।
ডেভিড বালেক

0

এটা না। একটি থ্রেড কেবল একটি প্রসেসরের উপর চলতে পারে। তবে কিছু প্রক্রিয়াতে একাধিক থ্রেড থাকে, যা ছড়িয়ে যায়।

যুক্তি, বিশ্বাস করুন বা না করুন, এটি দেখতে কেমন তা কখনই বিবেচনা করেননি। সিস্টেম থ্রেডগুলি ছড়িয়ে দেওয়ার চেষ্টা করে কারণ এটি কখন স্পাইক করবে তা জানার কোনও উপায় নেই।


1
আমার যুক্ত স্পষ্টতা দেখুন। এটি একটি থ্রেড, পুরো থ্রোটলে চলছে, এটি দ্রুত চারপাশে সরানো হচ্ছে যাতে সময়ের সাথে সাথে প্রতিটি কোর (সামনে থেকে) 25% ব্যস্ত থাকে। (অন্য সমস্ত প্রসেস / থ্রেড neglible হয়)
Macke

0

ওএস সিপিইউ কোর জুড়ে থ্রেডটি স্থানান্তর করে (দ্রুত, প্রতি সেকেন্ডে বেশ কয়েকবার)। এটি সর্বদা একই কোর এ চালানো আরও দক্ষ। এটি টাস্ক ম্যানেজারের "সেট আপ সম্পর্ক" প্রসঙ্গ মেনু আইটেম দ্বারা প্রয়োগ করা যেতে পারে।

নোট করুন যে সাধারণত (সাধারণ হোম ব্যবহার) পার্থক্যটি কয়েক পার্সেন্টের মধ্যে থাকে।

টাস্ক ম্যানেজার যেমন গড় ব্যবহার দেখায়, প্রতিটি কোর পুরোপুরি এক চতুর্থাংশ সময় এবং পুরো সময়টুকু বিনামূল্যে ব্যবহার করে, "" প্রতিটি প্রতিটি 25% ব্যবহারে "এর অর্থ হয়" c

বিবরণটি উইন্ডোজের জন্য তবে এটি অন্যান্য অপারেটিং সিস্টেমেও একই রকম।


-1

যদি কেউ এখনও এটি পড়ছেন তবে আমি এটিও লক্ষ্য করেছি এবং এটি কেবল কোনও ফ্লুকই নয় তা দেখার জন্য বেশ কয়েকটি পরীক্ষাও করেছি। দেখা যাচ্ছে এটি না! আমি বিশ্বাস করি যে সমস্ত কোরগুলিতে একক থ্রেড ছড়িয়ে দেওয়া বেশ কয়েকটি কারণে কার্যকর:

  1. সমস্ত কোর জুড়ে একটি থ্রেড ছড়িয়ে দেওয়া কম বিদ্যুত ব্যবহারের অনুমতি দেয়। বেশিরভাগ প্রসেসর তাদের ফ্রিকোয়েন্সি কমিয়ে দেয় এবং আরও গুরুত্বপূর্ণভাবে লোড অনুযায়ী ভোল্টেজ দেয়, সুতরাং একটি কোর 2 কোয়াড উদাহরণস্বরূপ, একটি কোর ব্যবহার না করে সমস্ত 4 কোর জুড়ে একটি থ্রেড ছড়িয়ে কম তাপ উত্পাদন করবে (যা হবে সমস্ত কোরগুলিতে ভোল্টেজ বাড়ানোর দিকে পরিচালিত করুন, যেহেতু কেবলমাত্র একটি ভোল্টেজ নিয়ন্ত্রক রয়েছে - এটি বেশ কার্যকর)
  2. এটি নিশ্চিত করে যে থ্রেড সর্বদা সর্বোচ্চ / ধ্রুবক গতিতে চলে। যদি থ্রেডটি হঠাৎ করে আরও প্রক্রিয়াকরণ শক্তির জন্য অনুরোধ করে তবে একটি কোর অতিরিক্ত লোড হয়ে যেতে পারে এবং কার্যকর করতে বিলম্ব হবে। এটি কোর জুড়ে ছড়িয়ে দিয়ে, কোনও হঠাৎ স্পাইকটি ল্যাগ এবং বিলম্ব ছাড়াই সহজেই পরিচালনা করা হবে।

এছাড়াও, উপরোক্ত দুটি পর্যবেক্ষণের কারণে, আমি বিশ্বাস করেছি যে টার্বো বুস্ট এবং আইডিএ অকার্যকর। এগুলি পুরানো অপারেটিং সিস্টেমে কার্যকর হতে পারে তবে লিনাক্স এবং উইন্ডোজ 7 সমস্ত কোর জুড়ে সবকিছুকে খুব দক্ষতার সাথে ছড়িয়ে দিয়েছে। সুতরাং, একটি কোর 2 কোয়াড Q9100 @ 2.26 গিগাহার্জ প্রায় হবে (সর্বদা ব্যতিক্রম রয়েছে :-) সর্বদা একটি কোর 2 ডুয়ো এক্স 9100 @ 3.06GHz এর চেয়ে দ্রুত হবে, এবং আমি খুব কমই এটি আইডিএ ব্যবহার করতে দেখেছি (মূলত টার্বো উত্সাহের পূর্বসূরীর, কেবলমাত্র একক থ্রেডেড অ্যাপ্লিকেশনগুলির জন্য এক বা দুটি কোরে ফ্রিকোয়েন্সি বাড়ায়)।

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

3
এটি বিভিন্ন কারণে সন্দেহজনক মনে হচ্ছে। আপনার "তথ্য" রেফারেন্স প্রদান করুন। প্রথমত, চারটি কোরের 25% এ কম্পিউটিং স্টাফগুলি কেন একটিতে 100% এর চেয়ে কম বিদ্যুত গ্রহণ করে? (আমি একমত হতে পারি যে তাপ আরও সমানভাবে ছড়িয়ে পড়েছে, তবে ...) এছাড়াও, আমার প্রশ্নের থ্রেডটি সম্পূর্ণ কাত হয়ে চলছে (100%), সুতরাং এটি "আরও প্রসেসিং পাওয়ার অনুরোধ করবে না", কারণ এটি ইতিমধ্যে চলছে যতটুকু সম্ভব.
ম্যাক 18

ঠিক আছে, এটি ঠিক আমার নিজের পর্যবেক্ষণ থেকে - আমি আইডিএ এবং টার্বোবুস্ট দ্বারা আগ্রহী ছিলাম, কিছু পরীক্ষা করার সিদ্ধান্ত নিয়েছিলাম। এটি বেশ কিছুক্ষণ আগে ছিল, তবে আমি উপরের সিদ্ধান্তে পৌঁছেছি। প্রসেসরটি কম বিদ্যুৎ খরচ করে, কারণ সমস্ত কোরগুলি কম ভোল্টেজের সাথে চালিত হয় - একটি 0.1V হ্রাস বিদ্যুতের খরচতে প্রায় 6-10 ওয়াট সংরক্ষণ করে (যদি একটি কোর 100% লোড করা হয়, সমস্ত কোরের উচ্চ ভোল্টেজ চালিত হয়, তারা অলস হয় কিনা) অথবা না). এটি বিশেষত এসএলএফএম মোডের সাথে কোর 2 ডুওতে সত্য। থ্রেডটি সম্পূর্ণ কাত হয়ে চলছে এমন বিষয়ে আপনি ঠিক বলেছেন, আর কোনও প্রসেসরের যোগাযোগের অনুরোধ নেই, তবে এমন অ্যাপস রয়েছে যা প্রকৃতপক্ষে এটি করে।
জ্যাকএল

"থ্রেড ছড়িয়ে দেওয়া" বলে কোনও জিনিস নেই (না, 5 বছর পরেও নয়)। একটি একক থ্রেড আছে, একটি কোর উপর চালিত। এবং তারপরে আরও একটি ইত্যাদি। প্রতিটি মুহুর্তে একটি কোর 100% এ চলছে এবং অন্যগুলি অলসভাবে চলছে। সুতরাং কোনও সঞ্চয় নেই। বিশেষত যেমনটি আপনি উল্লেখ করেছেন যখন সমস্ত কোর যাইহোক সর্বদা পুরো ভোল্টেজ থাকে (যেমন আপনি বলেছিলেন যে এগুলি ভোল্টেজ ভাগ করে নেয়)। ইতিমধ্যে একই কোরটিতে সম্বোধন করা থ্রেডটি নিশ্চিত করে যে থ্রেডটি সমস্ত প্রক্রিয়াকরণ শক্তিটি পেয়েছে। যেহেতু এই কোরটি ইতিমধ্যে 100% ব্যবহৃত হয়েছে, ওএস অন্যান্য থ্রেডগুলি অন্য, কম ব্যবহৃত কোরে শিডিয়ুল করবে।
ডেভিড বালেক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.