میتونی از دو روش زیر استفاده کنی:
1. استفاده از کتابخانه psutil که بیشتر پیشنهاد میشه
2. استفاده از کتابخانه داخلی multiprocessing
روش اول که psutil هست ابتدا نیاز هست که نصبش کنی به روش زیر :
pip install psutil
بعد از نصب به روش زیر میتونی کدت رو بنویسی:
import psutil
physical_cores = psutil.cpu_count(logical=False)
print(physical_cores)
logical_cores = psutil.cpu_count(logical=True)
print(logical_cores)
- چند نکته ای هست اینه که معمولا پردازنده ها دو مدل هسته دارن که شامل هسته فیزیکی و مجازی هست اگر مقدار logical رو False قرار بدی بهت تعداد هسته های فیزیکی را نشان میده و اگر True بزاری طبق کد بالا تعداد هسته های مجازی رو بهت برمیگردونه
- استفاده از روش اول بیشتر نسبت به روش اول پیشنهاد میشه
حال اگه از روش دوم استفاده کنیم به شکل زیر هست :
- فقط یک نقطه رو باید در نظر بگیری که این کتابخانه فقط و فقط مقدار هسته مجازی رو برمیگردونه و هسته فیزیکی رو نشان نمیده مگر اینکه بخوای خود از طریق یک کد ادیتور این قابلیت رو بهش اضافه کنی .
خلاصه کلام کدش اینطوری هست:
import multiprocessing
num_cores = multiprocessing.cpu_count()
print(num_cores)
روشی هم هست که بشه با multiprocessing تعداد هسته های فیزیکی را به دست اورد ولی تخمینی هست و دقیق نیست و برای همه سیستم ها عمل نمیکند اونم این طوریه که از چت جی پی تی در اوردم و به صورت زیر هست که مستقیم کپی و پیست میکنم تا ببینی؛
import multiprocessing
# تعداد هسته های مجازی
logical_cores = multiprocessing.cpu_count()
# فرض: هر هسته فیزیکی 2 هسته مجازی دارد (معمولاً در پردازنده های اینتل/AMD)
# اگر از تکنولوژی Hyper-Threading استفاده می کنید، این عدد 2 است
# اگر نه، عدد 1 خواهد بود
# تخمین تعداد هسته های فیزیکی
physical_cores = logical_cores // 2 # فرض بر اینکه Hyper-Threading فعال است
print("تعداد هسته های فیزیکی (تخمینی):", physical_cores)
امیدوارم که مفید بوده باشه ..