نمایش تعداد هسته‌های پردازنده با برنامه‌نویسی

تمرین آسان 561 visibility link download

برنامه‌ای بنویسید که تعداد هسته‌های پردازنده سیستم را نمایش دهد. خروجی برنامه باید عددی صحیح باشد که نشان‌دهنده تعداد هسته‌ها است. برای مثال، اگر سیستم شما ۴ هسته دارد، خروجی برنامه به صورت زیر خواهد بود:

تعداد هسته‌های پردازنده: 4
👨‍💻 12 ساعت قبل Macsepehri این تمرین رو مشاهده کرد
👨‍💻 12 ساعت قبل کاربر ناشناس این تمرین رو مشاهده کرد

reply 5

میتونی از دو روش زیر استفاده کنی:
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)

امیدوارم که مفید بوده باشه ..

عالی User 7933


import os

def get_cpu_cores():
    try:
        core_count = os.cpu_count()
        return core_count
    except exception as e:
        print(f"failed to get cores: {e}")   
        return None 

def main():
    cores = get_cpu_cores()

    if cores is not None :
        print(f"total number is {cores}")
    else:
        print(f"cant find them")

if __name__ == "__main__":
    main()

reply ارسال جواب

  • قبل از ارسال جواب ویدیو زیر رو ببین تا کار کردن با markdown رو یاد بگیری
  • لطفا جواب های تکراری ارسال نکن
  • در متن جواب اطلاعات شخصی شامل ایمیل و شماره موبایل و آی دی و... ننویس
  • سعی کن داخل کدت از کلمات فارسی یا فینگلیش (فارسی با حروف انگلیسی) استفاده نکنی و کدت تماما انگلیسی باشه
  • لطفا داخل جواب از ایموجی یا کاراکترهای خاص استفاده نکن
  • ارسال جواب حق مادی یا معنوی برای ارسال کننده ایجاد نمیکند و تمام حقوق برای سایت کدبزن محفوظ است

راهنمای ارسال جواب 👇

×
بستن