তার মানে কি এই যে কোরটির মাত্র অর্ধেক ব্যবহার করা হচ্ছে বলে তুলনামূলক প্রক্রিয়াটি 4 কোর 8 থ্রেডসিপিইউয়ের চেয়ে 4 কোর 8 থ্রেড সিপিইউ সহ একই ঘড়ি চক্র সিপিইউতে ধীরে চলবে?
বাছাই, হ্যাঁ, এবং না।
যদি আমি এএ 8 কোর (8 ট্রেড) সিপিইউতে 8 অননির্ভর একক ট্রেডেড প্রোগ্রামগুলি চালনা করি তবে প্রতিটি কোর একটি ট্র্যাড চালাবে এবং এগুলি সর্বোচ্চ গতিতে চলবে (যেমন সমস্ত সময় নির্ধারণ করুন, ওএসের মতো বিষয়গুলিকে উপেক্ষা করে যা কিছু সিপিইউ সময় চায়)।
যদি আমি এএ 4 কোর (4 টি ট্রেড) সিপিইউতে 8 অননির্ভর একক ট্রেডেড প্রোগ্রামগুলি চালনা করি তবে অ্যাভারেজের উপরে প্রতিটি কোর এর দুটি চালিত হবে। প্রোগ্রামটি অর্ধেক দ্রুত চলবে।
এখনও অবাক হওয়ার কিছু নেই।
এখন একটি 4 কোর (8 টি ট্রেড) সিপিইউ দিয়ে ওএস মনে করে যে সেখানে 8 টি কোর রয়েছে। এটি তাদের প্রথম কেস হিসাবে চালিত করবে। তবে এটি আসলে ঘটনা নয়; অর্ধেক কোর নিয়মিত কোর হিসাবে তৈরি হয় না। সাধারণত কার্যকারিতার কেবলমাত্র অংশটিই নকল হয় এবং যদি আপনার ভাগ্য খারাপ হয় তবে কোনও একটি পদক্ষেপ স্টল হয়ে যাবে। এটি কোনও 4c / 4t সিপিইউ এর পরে আর দ্রুত হবে না।
তবে আপনি যদি খুব ভাগ্যবান হন (যেমন ALU গুলি দ্বিগুণ হয়ে গেছে এবং আপনি স্মৃতি থেকে তথ্য আনার জন্য এবং আচরণের মধ্যে বিকল্প পরিবর্তন করছেন) তবে উভয়ই পুরো গতিতে চলতে পারে।
গড়ে , এটি 30% গতি বৃদ্ধির দিকে নিয়ে যায়।
এটিকে আরও জটিল করে তোলার জন্য: আপনি যদি প্রোগ্রামগুলি বড় ডেটাসেট ব্যবহার করেন তবে এর মধ্যে 4 টিরও বেশি চালানো কম ক্যাশে হিট হতে পারে। শেষগুলি আসলে জিনিসকে ধীর করতে পারে।
সিপিইউকে কেবলমাত্র প্রতি 1 টি থ্রেডে সেট করার কোনও প্রোগ্রামিক উপায় আছে (ওএস স্তরটি বলুন)?
হ্যাঁ, হাইপার ট্র্যাডিংয়ের পালা।
আপনি ফার্মওয়্যার এ (উদাহরণস্বরূপ BIOS বা UEFI এ), বা ওএস থেকে এটি করতে পারেন।
উদাহরণস্বরূপ 8 টি 4 কোরের সিপিইউর জন্য কোরের সাথে 1 1 2 3 প্রথম কোর এবং 4 5 6 7 টি ট্র্যাডযুক্ত সেট যা আপনি ব্যবহার করতে পারেন:
echo 0 > /sys/devices/system/cpu/cpu4/online
echo 0 > /sys/devices/system/cpu/cpu5/online
echo 0 > /sys/devices/system/cpu/cpu6/online
echo 0 > /sys/devices/system/cpu/cpu7/online
আইআইআরসি ফ্রিবিএসডি সিসকন্ট্রোল দিয়ে একই কাজ করেছিল। ওএসএক্স বা উইন্ডোজের জন্য আপনার চারপাশে গুগল করা দরকার।