نمایش نتایج 1 تا 37 از 37

نام تاپیک: سوال درباره ی اجرای چند نخی و استفاده از چند هسته بصورت همزمان

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1

    نقل قول: سوال درباره ی اجرای چند نخی و استفاده از چند هسته بصورت همزمان

    نقل قول نوشته شده توسط the king مشاهده تاپیک
    حتما لینک منبع چیزی رو که گفتید پیدا کنید، لازمش دارم، این مساله مهمی که شما پیدا کردید در سایت اینتل که نبود، چیزی که اینتل عمومی اعلامش نکنه حتما ارزشمنده.
    شما اگر از این بچه های سخت افزار کسی رو سراغ دارید که معلوماتشون در حد جزئیات پردازنده های مدرن اینتل باشه معرفی شون کنید ولی توقع نداشته باشید که یک دانشجو یا استاد رشته سخت افزار اینها رو بدونه.
    چون در ایران فناوری سخت افزاری و سطح آموزشی در این موارد خیلی سطح پایین و منسوخ ئه و همچین افرادی کیمیا هستند.


    بله شما درست میگید، لابد اینتل داره اشتباه میگه. من عین متن سوال و جواب رو از FAQ اینتل نقل قول کردم :
    https://www.intel.com/content/www/us...rocessors.html
    که متن کاملش رو هم پیوست همین پست کردم.


    بله. اصلا مورد عجیبی نیست. خیلی عادیه. سازنده لپ تاپ با توجه به توان تغذیه باطری و سیستم خنک کننده ای که بکار برده ممکنه ببینه نمیتونه از عهده تامین انرژی و حرارت فرکانس بالاتر پردازنده بربیاد و در نتیجه ترجیح بده غیر فعال نگهش داره.


    من هم دونه به دونه گزینه های BIOS سیستم ام رو میشناسم و هم با انواع مختلف BIOS ها کار کردم.
    گمان نمی کنم کسی که برای تغییر تنظیمات BIOS برنامه اسمبلی مینوشته برای اینکه تشخیص بده یک مورد ساده ای مثل Turbo Boost در بین تنظیمات هست یا نه نیاز به راهنمایی داشته باشه.


    اجرای یک نخ به تنهایی در یک برنامه و بدون محدودیت در انتخاب هسته دقیقا مشابه همون کاری است برنامه در 10 ثانیه ابتدایی میکنه و باید 100 یا نزدیک به 100 باشه، به قول شما هم ربطی به فرکانس پردازنده نداره، چون مقایسه نسبی است، وقتی یکسان باشند باید 100 درصد باشه.
    ارتباط مستقیمی هم به توان هسته نداره، یک زمانی طول میکشه که اون تک نخ اجرا بشه که اون زمان میشه معیار مقایسه.
    اما برسیم به مقایسه اون معیار با اجرای دو نخ در دو برنامه مجزا. شما مدعی شدید که Turbo Boost در حالتی که یک هسته کارکرد بالا داره نسبت به حالتی که تعداد هسته بیشتری کارکرد بالا دارن فرکانس بالاتری اعمال میکنه.
    و گفتید به همین خاطر در اجرای دو نخ در دو برنامه که بیشتر از یک هسته درگیر شدن کارکرد هر نخ کمتر از اون اجرای تک نخی 100% یا فرضا 98% شده.
    اینکه ربطی به برنامه من نداره که فرکانس هسته چی باشه، هر چقدر فرکانس بالاتر باشه پردازش سریعتر میشه و زمان اجرای نخ کمتر میشه. برنامه زمانی درصد رو کمتر یا بیشتر نشون میده که زمان سپری شده از زمان اجرای تک نخی اول برنامه کمتر یا بیشتر باشه.
    اگر این تغییر فرکانس بین اجرای تک نخی و چند نخی بوجود بیاد، در برنامه خودش رو بصورت درصد بالا و پایین نشون میده. اگر دلیل شما دخالت Turbo Boost در فرکانس هسته ها است، حالا که غیر فعال ئه، چرا همچنان همون شرایط برقرار ئه؟

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


    private void TransparentControl4_Click(object sender, EventArgs e)
    {
    Thread[] thread = new Thread[16];


    for (int i = 0; i < thread.Length; i++)
    {
    thread[i] = new Thread(new ThreadStart(this.NewThreadMethod_1));
    }


    for (int i = 0; i < thread.Length; i++)
    {
    thread[i].Start();
    }



    }


    private void NewThreadMethod_1()
    {
    Stopwatch stopwatch = new Stopwatch();
    stopwatch.Start();


    for (long counter = 0; counter < 10000000000; counter++)
    {
    }


    stopwatch.Stop();
    long elapsed = stopwatch.ElapsedMilliseconds;
    MessageBox.Show("elspsed : " + elapsed.ToString() + " ms", "New Thread");
    }




    وقتی در پردازنده ی خودم (که 4 هسته ی فیزیکی داره) ، تعداد آرایه ی thread را اگه 1 یا 2 یا 3 یا 4 عضو بگیرم (یعنی 1 یا 2 یا 3 یا 4 نخ میسازم و اجرا میکنم) ، تقریبا زمان شون با هم یکی هست (با اختلاف 2 تا 3 ثانیه) و تقریبا همه شون بین 23 تا 26 ثانیه ، کدش اجرا میشه اما تعداد این آرایه را از 4 تا که بیشتر میکنم (5 و بالاتر) ، هر بار 7 ثانیه به اجراش اضافه تر میشه و دیرتر تموم میشه؟

    یعنی وقتی 5 نخ (5 عضو برای اون آرایه ی thread) میسازم ، 32 ثانیه طول میکشه ، 6 نخ ، 40 ثانیه طول میکشه ، 7 نخ ، 45 ثانیه طول میکشه ، 8 نخ ، 51 ثانیه طول میکشه ، 10 نخ ، 63 ثانیه طول میکشه ، 12 نخ ، 75 ثانیه طول میکشه و 16 نخ ، 100 ثانیه طول میکشه؟

    چرا تا تعداد نخ هام ، هنوز برابر با تعداد هسته هام نشد ، اجرای همه شون تقریبا 25 ثانیه زمان میبرد ولی تعداد نخ هام که بیشتر از تعداد هسته هام شد ، به همون اندازه ، اجراشون بیشتر طول کشید؟
    چرا زمانی که 8 نخ ساختم ، تقریبا 2 برابر بیشتر از زمانی که 1 نخ یا 2 نخ یا 3 نخ یا 4 نخ ساختم ، طول کشید؟
    چرا زمانی که 16 نخ ساختم ، تقریبا 4 برابر بیشتر از زمانی که 1 نخ یا 2 نخ یا 3 نخ یا 4 نخ ساختم ، طول کشید؟

    قطعا شما هم اگه توی پردازنده تون از 8 نخ بیشتر بسازین ، به همون مقدار ، به زمان اش اضافه میشه اما زیر 8 نخ (مخصوصا 4 نخ چون 4 هسته ی فیزیکی دارین) ، زمان شون فرق خاصی نخواهند داشت .



    نقل قول نوشته شده توسط the king مشاهده تاپیک
    من در همون پست قبلی گفتم که شما وقتی Turbo Boost رو غیر فعال کنید همین شرایط برقرار ئه و ربطی به Turbo Boost نداره. Turbo Boost نقش اش افزایش کارایی است، اگر قرار بود هر چقدر از پردازنده بیشتر کار میکشیم Turbo Boost هسته ها رو کندتر کنه که همه غیر فعالش می کردند. کی خوشش میاد پردازنده اش وقتی که نیاز به پردازش بالاتر داره کندتر بشه.
    همون عکسی که دادین ، 3 سئوال مونده به آخری را دقت کنین :


    how can i see the highest turbo boost frequency for my processor?
    if you set the number of cores to one in the BIOS and run the intel proccessor identification utility , it shows the highest turbo boost frequency .

    اگه اشتباه نکنم ترجمه اش اینه :
    "اگر تعداد هسته را به (مقدار) 1 در بایوس تنظیم کنید ، و برنامه ی intel proccessor identification را اجرا کنید ، بیشترین فرکانس turbo boost را نمایش میده ."

    اگه ترجمه را تایید میکنید پس بگید چرا گفته وقتی میتونید متوجه ی بیشترین فرکانس turbo boost بشید که تعداد هسته را در بایوس تون به 1 تنظیم کنید (و موقتا بقیه ی هسته ها را نادیده بگیرید) ؟

  2. #2

    نقل قول: سوال درباره ی اجرای چند نخی و استفاده از چند هسته بصورت همزمان

    نقل قول نوشته شده توسط SajjadKhati مشاهده تاپیک
    خیلی ممنون استاد .
    استاد ، برای من که همه ی اسناد و مدارک نشون میده که هر نخی که میسازیم (توسط کلاس Thread) ، درون یک هسته ی منطقی (چه میخواد اون هسته ی منطقی داخل یک هسته ی فیزیکی باشه یا نباشه) ، بصورت همزمان اجرا میشه .
    سند آخر اینکه شما میگین هر تعداد نخ که میسازیم ، در یک لحظه فقط در یک هسته ی فیزیکی اجرا میشه ، پس چرا کد زیر :


    private void TransparentControl4_Click(object sender, EventArgs e)
    {
    Thread[] thread = new Thread[16];


    for (int i = 0; i < thread.Length; i++)
    {
    thread[i] = new Thread(new ThreadStart(this.NewThreadMethod_1));
    }


    for (int i = 0; i < thread.Length; i++)
    {
    thread[i].Start();
    }



    }


    private void NewThreadMethod_1()
    {
    Stopwatch stopwatch = new Stopwatch();
    stopwatch.Start();


    for (long counter = 0; counter < 10000000000; counter++)
    {
    }


    stopwatch.Stop();
    long elapsed = stopwatch.ElapsedMilliseconds;
    MessageBox.Show("elspsed : " + elapsed.ToString() + " ms", "New Thread");
    }


    اولا واحد بزرگی بکار نبرید، میلی ثانیه در مقایسه با فرکانس پردازنده واحد بزرگیه، از تیک استفاده کنید که ارزیابی دقت کافی داشته باشه.
    ثانیا شما که اصلا کاری با سند و مدرک ندارید، مستندات خود Intel رو که قبول ندارید هیچ نتیجه محاسبات خودتون رو هم جوری که نیست تفسیر می کنید.
    سوالی که نوشتم رو که خوندید؟ ازتون پرسیدم "شما که مدعی هستید این نخ ها هر کدوم میتوانند در هسته مجزایی اجرا بشن و دیگه Turbo Boost هم تداخلی در محاسبات نداره دیگه برای کاهش کارایی شون چه دلیلی دارید؟"
    چه جوابی برای سوالم دارید؟

    نقل قول نوشته شده توسط SajjadKhati مشاهده تاپیک
    وقتی در پردازنده ی خودم (که 4 هسته ی فیزیکی داره) ، تعداد آرایه ی thread را اگه 1 یا 2 یا 3 یا 4 عضو بگیرم (یعنی 1 یا 2 یا 3 یا 4 نخ میسازم و اجرا میکنم) ، تقریبا زمان شون با هم یکی هست (با اختلاف 2 تا 3 ثانیه) و تقریبا همه شون بین 23 تا 26 ثانیه ، کدش اجرا میشه اما تعداد این آرایه را از 4 تا که بیشتر میکنم (5 و بالاتر) ، هر بار 7 ثانیه به اجراش اضافه تر میشه و دیرتر تموم میشه؟
    تقریبا زمان شون یکی هست؟ مگه نمی گید تقریبا برابر هستند با اختلاف 2 الی 3 ثانیه، چرا پس نمی گید وقتی تعداد نخ ها رو بیشتر می کنم تقریبا برابر هستند با اختلاف 7 ثانیه؟ چه معیاری گذاشتید برای اینکه 2 الی 3 ثانیه اختلاف ناچیزی است و 7 ثانیه هست؟
    اسناد شما میگه وقتی شما تعداد نخ بیشتری ساختید که بنا به گفته خودتون هر کدوم در هسته فیزیکی مستقل اجرا شدن کارکرد اومد پایینتر. مستقل اجرا شدن و اجراشون کندتر شد؟ اون اختلاف 2 الی 3 ثانیه رو ضرب کنید در فرکانس پردازنده تون ببینید چند سیکل میشه؟
    اون 10000000000 بار تکرار حلقه تون رو 5.68 درصدش رو حساب کنید ببینید چند بار تکرار حلقه تون میشه. مقداری نیست؟ شما که میگید پردازنده تون داره هر نخ رو در هسته مجزا اجرا میکنه چطور اینقدر سیکل ساعت و اونقدر تعداد بار تکرار حلقه تون رو از دست دادید؟

    نقل قول نوشته شده توسط SajjadKhati مشاهده تاپیک
    یعنی وقتی 5 نخ (5 عضو برای اون آرایه ی thread) میسازم ، 32 ثانیه طول میکشه ، 6 نخ ، 40 ثانیه طول میکشه ، 7 نخ ، 45 ثانیه طول میکشه ، 8 نخ ، 51 ثانیه طول میکشه ، 10 نخ ، 63 ثانیه طول میکشه ، 12 نخ ، 75 ثانیه طول میکشه و 16 نخ ، 100 ثانیه طول میکشه؟
    خوب که این خیلی طبیعیه، وقتی تعداد نخ ها زیاد میشه، هسته دائم در حال سوئیچ شدن بین نخ ها میشه و سربار اجرای سوئیچ هم فشار روی اون هسته ایجاد میکنه و هم سایر هسته ها و هم فعالیت بیشتر نخ های مدیریتی سیستم و در نتیجه کارایی بخاطر تعدد و ترافیک درخواست ها میاد پایین. وقی از یک در یک صف آدم به نوبت رد میشن نرخ عبور (آدم بر ثانیه) از در بیشتره یا وقتی 16 نفر آدم حمله میکنن سمت در و ترافیک ایجاد میشه؟
    اتفاقا این سوال رو شما باید توضیح بدید، مگه شما نمی گید که نخ های من روی چهار هسته فیزیکی همزمان اجرا میشن؟
    مرحله 1 - سه یا چهار نخ هر کدوم روی یک هسته شروع به اجرا می کنند. حالا بین شون سوئیچ هم ممکنه بشه، مهم نیست.
    مرحله دوم - چند نخ در اجرای مرحله اول کارشون تموم شده و سیستم عامل پرونده اون سه یا چهار نخ رو میبنده میذاره کنار و هسته ها می توانند نخ های دیگری از برنامه تون رو که در صف باقی موندن اجرا کنند.
    با فرض شما وقتی به مرحله دوم میرسیم همه اون هسته ها با اختلاف زمانی کم کارشون با یک نخ برنامه تموم شده.
    حالا چطوری بین 5 نخی و 6 نخی اختلاف زمانی زیاد دارید؟ چه فرقی می کنه 5 نخی و 6 نخی؟ مرحله دوم شون رو تصور کنید. در هر دو وضعیت 5 نخی و 6 نخی وقتی به مرحله دوم رسیدیم به تعداد نیاز نخ های باقی مونده هسته بیکار هست.
    مستندات شما میگه بین اجرای 5 نخی و 6 نخی پردازنده 8 ثانیه سکته کرده که اینقدر اختلاف زمانی دارن؟

    نقل قول نوشته شده توسط SajjadKhati مشاهده تاپیک
    چرا تا تعداد نخ هام ، هنوز برابر با تعداد هسته هام نشد ، اجرای همه شون تقریبا 25 ثانیه زمان میبرد ولی تعداد نخ هام که بیشتر از تعداد هسته هام شد ، به همون اندازه ، اجراشون بیشتر طول کشید؟
    با توصیفی که شما از اجرای نخ هاتون دارید، هیچ توضیحی نمیشه داد، شما با فرض اشتباه یک سوالی طرح می کنید که چون فرض مساله غلطه نه من و نه خودتون نمی تونید با فرمول ریاضی توضیحش بدید.
    وقتی فرض رو بر این گرفتید که هر نخ میتونه مستقل روی هسته ای مجزا همزمان با نخ دیگری از برنامه تون اجرا بشه، باید به این نتیجه برسید که در پردازنده 4 هسته ای که بار کاری عادی اش در حد 25 درصد نیست و کمتره،
    سه هسته همواره اونقدر آزاد و بیکار هستند که بتوانند سه نخ برنامه شما رو در زمان n ثانیه تموم کنند و بعد سه نخ دیگه رو و عملا در بدترین شرایط زمان اجرای کامل 6 نخ تون با 5 نخ تون باید برابر باشه و نباید بیشتر طول بکشه.
    چون وقتی سه هسته سرش خلوت ئه، اجرا کردن یک نخ و دو نخ و سه نخ باقی مونده زمان متفاوتی میخواد؟ مستنداتون این مساله رو تایید می کنه؟ نمیکنه.

    نقل قول نوشته شده توسط SajjadKhati مشاهده تاپیک
    چرا زمانی که 8 نخ ساختم ، تقریبا 2 برابر بیشتر از زمانی که 1 نخ یا 2 نخ یا 3 نخ یا 4 نخ ساختم ، طول کشید؟
    چرا زمانی که 16 نخ ساختم ، تقریبا 4 برابر بیشتر از زمانی که 1 نخ یا 2 نخ یا 3 نخ یا 4 نخ ساختم ، طول کشید؟

    قطعا شما هم اگه توی پردازنده تون از 8 نخ بیشتر بسازین ، به همون مقدار ، به زمان اش اضافه میشه اما زیر 8 نخ (مخصوصا 4 نخ چون 4 هسته ی فیزیکی دارین) ، زمان شون فرق خاصی نخواهند داشت .
    وقتی 4 نخ میساختید پردازنده تون با حداکثر توان پاسخگویی اش درگیر شده، دائم در حال سوئیچ کردن بین نخ های برنامه و سایر برنامه ها است، اون نخ های دیگه کارشون کم ئه و زود تموم میشه ولی نخ های شما که ول کن نیستن و حالا حالا ها پردازش میخوان.
    وقتی نخ جدیدی به صف درخواست ها اضافه میکنید مجالی هست برای پاسخگویی؟ نیست. صف درخواست پردازنده از سیستم عامل به حد اشباع رسیده، پردازنده گلوگاه شده. سیستم عامل دستش بسته است. حالا هی شما نخ جدید اضافه کنید، پردازنده که نمیتونه کاری برای افزایش سرعت بکنه. نخ گرامی تون باید صبر کنه تا نوبت اش برسه، به عبارتی دیگه نخ دیگری از برنامه تون کارش تموم بشه. اون نخ ها رو می بینید در Task Manager که سایر برنامه دارن؟ همه شون همواره در حال اجرا نیستن ولی به کررات درخواست در کم دارن.
    الات مظلوم و کم صدا کار میکنن چون فرصت پردازش دارن. اما وقتی ترافیک برای پردازنده ایجاد بشه همون نخ هایی که کارشون کم ئه میشن سربار سیستم و در بین اجرای نخ های شما دائم نوبت اجرا میگیرن. اینطوریه که سوئیچ شدن سربار زیادی ایجاد میکنه.

    نقل قول نوشته شده توسط SajjadKhati مشاهده تاپیک
    همون عکسی که دادین ، 3 سئوال مونده به آخری را دقت کنین :


    how can i see the highest turbo boost frequency for my processor?
    if you set the number of cores to one in the BIOS and run the intel proccessor identification utility , it shows the highest turbo boost frequency .

    اگه اشتباه نکنم ترجمه اش اینه :
    "اگر تعداد هسته را به (مقدار) 1 در بایوس تنظیم کنید ، و برنامه ی intel proccessor identification را اجرا کنید ، بیشترین فرکانس turbo boost را نمایش میده ."

    اگه ترجمه را تایید میکنید پس بگید چرا گفته وقتی میتونید متوجه ی بیشترین فرکانس turbo boost بشید که تعداد هسته را در بایوس تون به 1 تنظیم کنید (و موقتا بقیه ی هسته ها را نادیده بگیرید) ؟
    چون طبق مستندات Intel Turbo Boost سقف فرکانسی که به پردازنده اختصاص داده میشه و طبعا متغیر ئه به اینها وابستگی داره، در همون صفحه ای نوشته شده که ازش نقل قول کرده بودم :
    Type of workload
    Number of active cores
    Estimated current consumption
    Estimated power consumption
    Processor temperature
    اینطوری که پردازنده بر اساس اینکه چند هسته فعال و غیر فعال هست، حرارت پردازنده چقدر ئه، چقدر برق مصرف میکنه و چقدر جریان میکشه و چقدر درخواست پردازش روی پردازنده هست فرکانس رو تغییر میده.
    وقتی فقط یک هسته رو فعال کنید، هسته های دیگه از مدار خارج میشن و مصرف انرژی پردازنده به میزان متناسب کم میشه، جریانی که پردازنده میکشه به میزان متناسب کم میشه، حرارت پردازنده هم که موثر از اینها است کم میشه.
    در نتیجه همه اون موارد که سقفی پایین تر از حداکثر میزان فرکانس ایجاد میکردن از بین میرن، خود بار کاری الان تعیین کننده فرکانس میشه که اونم یک پارامتر جدا است، سقف نیست.
    شما در Intel proccessor identification utility میخواهید سقف فرکانس پردازنده رو بخونید، نه فرکانس متغیری که در این لحظه توسط Turbo Boostبرای CPU تعیین شده.
    اگر همه هسته ها فعال باشند، احتمال داره با توجه به مشخصات پردازنده یا مادربورد و سیستم خنک کننده سقف های مضاعف تحمیل بشن و سقف فرکانسی که Intel proccessor identification utility اعلام میکنه کمتر از چیزی باشه که در بهترین شرایط سخت افزاری و به عنوان حداکثر فرکانس Turbo Boost برای پردازنده بدست میاد. دقت کنید که صحبت از حداکثر فرکانس پردازنده با Turbo Boost ئه، نه حداکثر فرکانس وقتی همه هسته ها رو فعال کردید و بصورت عادی از سیستم استفاده می کنید.
    ممکنه بخاطر محدودیت های سخت افزاری سایر پارامتر ها هیچوفت نتوانید در عمل از اون سقف فرکانس استفاده کنید، مگر در همون حالتی که سیستم تک هسته ای یا حتی دو هسته ای شده.
    میتوانید امتحان کنید، ممکنه با هر چهار هسته فعال هم به اون حداکثر فرکانس در عمل برسید، اما تا وقتی که پردازنده زیادی داغ نشده.

  3. #3

    نقل قول: سوال درباره ی اجرای چند نخی و استفاده از چند هسته بصورت همزمان

    نقل قول نوشته شده توسط the king مشاهده تاپیک
    اولا واحد بزرگی بکار نبرید، میلی ثانیه در مقایسه با فرکانس پردازنده واحد بزرگیه، از تیک استفاده کنید که ارزیابی دقت کافی داشته باشه.
    ثانیا شما که اصلا کاری با سند و مدرک ندارید، مستندات خود Intel رو که قبول ندارید هیچ نتیجه محاسبات خودتون رو هم جوری که نیست تفسیر می کنید.
    سوالی که نوشتم رو که خوندید؟ ازتون پرسیدم "شما که مدعی هستید این نخ ها هر کدوم میتوانند در هسته مجزایی اجرا بشن و دیگه Turbo Boost هم تداخلی در محاسبات نداره دیگه برای کاهش کارایی شون چه دلیلی دارید؟"
    چه جوابی برای سوالم دارید؟
    سلامی مجدد استاد .
    خیلی ممنون از جواب تون .
    ببینید ، اول اینکه نمیدونم چرا زمانی که کد رو اجرا میکنم ، گاها (نه همیشه) وقتی ساعت ویندوز را کلیک میکنم (تا گذر ثانیه ها را ببینم) با زمانی که کد اجرا میشه و ساعت ویندوز را نمایش نمیدم (ویندوز 10) ، در زمان اجرای کد ، تفاوت ایجاد میشه مخصوصا اینکه زمانی که تعداد نخ هایی که میسازم ، از تعداد هسته هام بیشتر بشه . مثلا وقتی 8 نخ میسازم ، اختلاف این حالت ها (اختلاف زمان اجرای کد در این دو حالت مختلف) حتی به 7 ثانیه هم میرسه که هر بار متغییر هه .
    این قضیه را تازه متوجه شدم . دلیل شو نمیدونم . ضمنا در زمانی که تعداد نخ ها بیشتر از تعداد هسته هام میشه ، ممکنه Stopwatch هم حتی تا چند ثانیه اشتباه عمل کنه (البته شاید اشتباه نباشه بخاطر عملکرد نخ ها که هر لحظه متوقف میشن و ممکنه حتی چند ثانیه هم یه نخ اجرا نشه و معلوم هم نیست که زمان شروع اجراشون با هم برابر (از لحاظ واحد بزرگ ثانیه منظورمه) باشن) .
    این قضیه ، هر چند خیلی کمتر ولی ممکنه زمانی که تعداد نخ هام هم برابر یا کمتر از تعداد هسته هام باشه هم اتفاق بیافته .

    ضمنا ، مشخص هست که وقتی 3 یا مخصوصا 4 هسته از پردازنده ام بصورت همزمان درگیر میشن ، کارایی باید کمتر بشه چون بقیه ی پروسه هام (task manager و بقیه) هم که گفتم در حالت استاندارد ، 5 تا 10 درصد از توان پردازنده را میگیرن . اینها هم نیاز به پردازش دارن . علاوه بر این ها (وقتی هسته های بیشتری درگیر میشن) ، طبعا احتمال سوئیچ ها هم بیشتر میشه (چه توی نخ های پروسه ی خودم چه سوئیچ به نخ های بقیه ی پروسه ها) و بنابراین سربار بیشتر و کاهش کارایی اتفاق میافته .



    نقل قول نوشته شده توسط the king مشاهده تاپیک
    تقریبا زمان شون یکی هست؟ مگه نمی گید تقریبا برابر هستند با اختلاف 2 الی 3 ثانیه، چرا پس نمی گید وقتی تعداد نخ ها رو بیشتر می کنم تقریبا برابر هستند با اختلاف 7 ثانیه؟ چه معیاری گذاشتید برای اینکه 2 الی 3 ثانیه اختلاف ناچیزی است و 7 ثانیه هست؟
    استاد ، چرا منظورم را یه جور دیگه ای متوجه میشین؟!
    الان شما نمیگید همه ی نخ ها در پروسه ام ، بصورت همزمان ، فقط در یک هسته ی فیزیکی اجرا میشن؟
    اگه اینطور بود ، (در کد پست قبلی که دادم) ، وقتی در پروسه ام ، یک نخ را اجرا که کردم و زمان اجراش 25 ثانیه (میانگین) بود ، نخ دوم را که اجرا میکردم ، زمان اجراش باید میانگین 7 ثانیه بهش اضافه میشد و 32 ثانیه میشد . نخ سوم هم باید زمان اجراش 39 ثانیه و زمان اجرای نخ چهارم 46 ثانیه میشد .
    زمان اجرای نخ پنجم هم 53 ثانیه و نخ ششم هم 60 ثانیه میشد .
    اینها بصورت میانگین بودن (حالا دو یا 3 ثانیه کمتر یا بیشتر) .
    تا اینجا را متوجه شدین؟

    پس چرا وقتی که 4 نخِ اول را میسازم ، یعنی 1 نخ یا 2 نخ یا 3 نخ یا 4 نخ را میسازم و اجرا میکنم ، در پردازنده ی من ، زمان اجراشون تقریبا با هم برابر هست ؟ (دوباره روی اختلاف دو سه ثانیه اش تاکید نکنین . اولا این اختلاف را در قسمت اول در همین پست جواب دادم و دوما بصورت مفهومی ، منظورم رو همین الان در پاراگراف بالا گفتم)
    اما همین که تعداد نخ هام از تعداد هسته هام بیشتر میشه ، شاهد این هستم که به ازای هر نخ ، تقریبا 7 ثانیه زمان اجراش هم بیشتر طول میکشه؟

    شما خودتون هم این قضیه را در پردازنده تون تست کنین ، متوجه میشین .


    نقل قول نوشته شده توسط the king مشاهده تاپیک
    اسناد شما میگه وقتی شما تعداد نخ بیشتری ساختید که بنا به گفته خودتون هر کدوم در هسته فیزیکی مستقل اجرا شدن کارکرد اومد پایینتر. مستقل اجرا شدن و اجراشون کندتر شد؟
    کندتر شد؟!!
    کجاش کندتر شد؟
    تعداد دستورات اجرایی اش چهار برابر شد ، یعنی در چهار نخ اجرا شد (به ازای هر نخ ، 10000000000 (ده میلیارد دستور) اجرا میشه و بنابراین در چهار نخ ، چهل میلیارد دستور اجرا میشه) اما زمان اجراش 3 ثانیه کمتر شد (26 ثانیه شد) . اگه قرار بود همه ی این چهار نخ در یک هسته ی فیزیکی اجرا بشه ، حداقل باید زمان اجراش بیشتر از 2 برابر میشد . یعنی بیشتر از 50 ثانیه میشد (قطعا باز هم باید بیشتر از این مقدار میشد و به احتمال زیاد ، نزدیک به 4 برابر میشد)
    این کاهش کارایی دو تا سه ثانیه را هم در اولِ این پست ، گفتم .


    نقل قول نوشته شده توسط the king مشاهده تاپیک
    اون اختلاف 2 الی 3 ثانیه رو ضرب کنید در فرکانس پردازنده تون ببینید چند سیکل میشه؟
    من نمیدونم این قدر فوکوسی که روی این اختلاف دو تا سه ثانیه کردین ، چرا روی اختلافی به اون عظمت نمیکنین؟
    چرا نمیگین چرا در این پردازنده ، اجرای 1 نخ تا 4 نخ ، تفاوت خاصی نداره اما چرا از اون به بعد ، اختلاف همینطور افزایش پیدا میکنه؟


    نقل قول نوشته شده توسط the king مشاهده تاپیک
    اون 10000000000 بار تکرار حلقه تون رو 5.68 درصدش رو حساب کنید ببینید چند بار تکرار حلقه تون میشه. مقداری نیست؟ شما که میگید پردازنده تون داره هر نخ رو در هسته مجزا اجرا میکنه چطور اینقدر سیکل ساعت و اونقدر تعداد بار تکرار حلقه تون رو از دست دادید؟
    در قسمت بالایی همین پست گفتم .


    نقل قول نوشته شده توسط the king مشاهده تاپیک
    خوب که این خیلی طبیعیه، وقتی تعداد نخ ها زیاد میشه، هسته دائم در حال سوئیچ شدن بین نخ ها میشه و سربار اجرای سوئیچ هم فشار روی اون هسته ایجاد میکنه و هم سایر هسته ها و هم فعالیت بیشتر نخ های مدیریتی سیستم و در نتیجه کارایی بخاطر تعدد و ترافیک درخواست ها میاد پایین. وقی از یک در یک صف آدم به نوبت رد میشن نرخ عبور (آدم بر ثانیه) از در بیشتره یا وقتی 16 نفر آدم حمله میکنن سمت در و ترافیک ایجاد میشه؟
    طبیعیه؟!
    زیاد شدن نخ را چجوری در نظر میگیرید؟ چطور نخ یه دونه باشه ، زیاد نیست ، دو تا باشه ، باز هم زیاد نیست ، سه تا باشه ، باز هم زیاد نیست ، چهار تا باشه ، باز هم زیاد نیست اما یهو به پنجمین نخ (یا نخ های بیشتر) که میرسه ، زیاد حساب میشه؟!

    توی تک نخ که مشکلی نداریم . درسته؟ پس تا اینجا قبوله که فرضا زمان اجرای یک نخ ، حدود 24 ثانیه (در یک هسته) طول میکشه . حالا این قضیه ی همجوم 16 نفر به یکباره برای خروج از یک در را که مظرح کردین ، این ، چه زمانی به نظرتون پیش میاد؟
    الان به نظر شما ، وقتی بیشتر از یک نخ بسازیم برای اجرا (هر چه تعداد نخ ها بیشتر باشه) ، پس قضیه ی هجوم و ترافیک پیش میاد که هر چی این نخ بیشتر باشه ، یعنی هجوم بیشتر و ترافیک بیشتر و سرعت پردازش هم به همون نسبت ، کمتر میشه . تا اینجا قبول؟ (همچین چیزی مد نظرتونه دیگه . درسته؟)
    پس وقتی تعداد نخ ها از یکی بیشتر بشه ، دو برابر هجوم اتفاق میافته و باید سرعت کمتر بشه (حالا نمیگم دو برابر باید سرعت کمتر بشه) . یعنی کلا ، کم شدن سرعت ، با افزایش نخ را که قبول دارین (این طور که استدلال میکنید) (قبوله؟)

    پس چرا یک نخ ، تبدیل به دو نخ میشه ، سرعت پردازش اش در پردازنده ی من ، کمتر نمیشه و همونه؟ چرا به 3 نخ که میرسه ، باز هم همونه تقریبا؟ چرا به چهار نخ میرسه ، باز هم تقریبا همون مقدار از زمان طول میکشه تا اجرا بشه؟ اگه در پردازنده ای که 8 هسته ی فیزیکی که داره هم اجرا کنید ، باز هم سرعت پردازش یک نخ با 8 نخ ، تفاوت خواصی نمیکنه (مثل پردازنده ی من که سرعت اجرای 1 نخ تا 4 نخ ، فرق خاصی نداره) . اگه توی پردازنده ای که 32 هسته ی فیزیکی داره تست کنید ، اجرای 1 نخ با 32 نخ ، تفاوت زمانی خاصی نخواهند داشت .

    که در اینجا گفتید چون یک هسته ، بیکاری اش خیلی بیشتر هه و واسه ی همین سوئیچ میکنه و نخ های دیگه را اجرا میکنه . که اینجا باز سئوال پیش میاد که پس حدی که یک هسته بیکار باشه تا اینکه چند نخ را بهش میسپاریم ، بتونه پردازش و اجرا کنه در حالی که سرعت اجراش کمتر نشه ، چقدره؟
    یعنی مثلا چند تا نخ خودم که در بالا نوشتم را به اون هسته بسپاریم ، حالت بیکاریش پر میشه و دیگه مدام در حال کار واقعی و تمام وقت هست و بنابراین از اون تعداد به بیشتر را اگه نخ ام را بهش بسپارم ، دیگه چون سرش شلوغه ، باعث دیر اجرا شدنش میشه؟ متوجه ی منظورم شدید؟

    ظاهرا باید جواب تون برای این سئوالم این باشه که یک هسته ، توانایی اجرای 4 نخِ من (کد در پست بالا) را داره و از اون به بعد ، دیگه حالت بیکار دیگه نداره و سرش کاملا شلوغ میشه و باعث میشه از اون به بعد هر چی نخ دیگه ای بهش اضافه کنم (مثلا 5 نخ یا بیشتر) ، دیگه دیرتر کدم را اجرا میکنه ولی تا 4 نخ از کدم ، مشکلی نداره . تا اینجا را که قبول دارین؟ درسته؟

    این هم قبول دارین که اختلاف قدرت در هر یک هسته (تک هسته) توی هر پردازنده ای ، بخاطر تعداد هسته های منطقی در اون هسته ی فیزیکی و بعد هم بخاطر فرکانس و کش و دستورالعمل های اون هسته هست . اگه دو پردازنده ای که هر دوشون ، فقط یک هسته ی منطقی بر هر هسته ی فیزیکی داشته باشن و فرکانس شون هم نردیک به هم باشه و از یک نسل از پردازنده باشن ، عملکرد تک هسته ای شون با هم تقریبا برابر هه . درسته؟
    یا در واقع بذارید اینجوری بگم که وقتی بنچمارک ها نشون دادند که تقریبا عملکرد تک هسته ای دو پردازنده با هم برابر هست (یعنی حرف من و حتی استدلال بالا ام هم نیست . حرف قطعی و نتایج بنچمارک هست) ، پس طبق گفته ی شما (که نخ ها در یک هسته ی منطقی بصورت همزمان اجرا میشن) ، باید مثل پردازنده ی من ، درون این پردازنده هم وقتی 1 نخ تا 4 نخ را اجرا میکنیم ، زمان اجراش باید با زمان اجرای پردازنده ی من ، تقریبا یکسان باشه . تا اینجا را قبول دارید؟

    اگه قبول نداشته باشید ، پس قطعا میگید عملکرد تک هسته ای برای این دو پردازنده ، تقریبا یکسان نیست . که هم میشه با تست دو نرم افزاری که از یک هسته استفاده میکنن متوجه شد و مخصوصا اینکه بنچمارک شون منتشر شده که نمیشه نادیده اش گرفت . پس چاره ای جز قبولش نیست اون پردازنده هم پردازنده ای نیست جز Pentium G3220 (واسه ی فامیل مون) که توش تست کردم و نتیجه اش را در زیر میذارم .

    قبل از اعلام نتیجه ، این رو بگم که این پردازنده ی G3220 ، نسل چهارم اینتل هست و دو هسته ی فیزیکی که هر هسته اش فقط یک هسته ی منطقی داره و با فرکانس 3.00GHZ و همچنین بدون قابلیت turbo boost clock و با 3 مگ کش سطح l3 هست (به همراه ویندوز 10 نسخه ی 64 بیتی) . بنچمارک (همه ی هسته های) این پردازنده در سایت videobenchmark.net ، حدودا 3100 باید باشه (الان مقدار دقیق اش را یادم نمیاد . اینترنت بین الملل ندارم که جستجو کنم) و بنچمارک تک هسته ایش هم 1500 باید باشه . بنچمارک (همه ی هسته های) پردازنده ی من (i5 4460) هم در اون سایت ، 6600 هست و بنچمارک تک هسته ایش ، 1700 حدودا باید باشه . شما که فعلا اینترنت بین الملل دارین و میتونین توی اون سایت برین و بنچمارک دقیق شو پیدا کنین .





    با برنامه ای که نوشتم و لینکش اینه (همون الگوریتم ساده ی حلقه ی for در کد بالا) :

    http://s6.picofile.com/file/83800530...ad_16.rar.html

    نتایج زیر در این پردازنده ی G3220 بدست اومد :


    1 Th = 27 s
    2 Th = 28 s
    3 Th = 42 s
    4 Th = 57 s
    5 Th = 71 s
    6 Th = 84 s
    7 Th = 98 s
    8 Th = 112 s


    10 Th = 140 s
    12 Th = 168 s
    16 Th = 223 s
    24 Th = 335 s


    و دوباره و با دقت بیشتری در سیستم خودم هم تست را انجام دادم و نتیجه اش این شد (یه کم با تست قبلی ، فرق داره) (پردازنده ام هم که میدونین i5 4460 هه که جزئیات شو قبلا گفتم . البته با 6 مگ کش سطح l3) :


    1 Th = 24 s
    2 Th = 24 s
    3 Th = 25 s
    4 Th = 26 s
    5 Th = 34 s
    6 Th = 40 s
    7 Th = 49 s
    8 Th = 54 s




    10 Th = 66 s
    12 Th = 78 s
    16 Th = 105 s
    24 Th = 158 s


    Th مخفف Thread هه و s هم ثانیه هست .
    همونطور که میبینید ، نتایج اجرای دو نخِ اول در دو پردازنده ، تقریبا یکسان هست (و مطابق با بنچمارک تک هسته ای شون هست)

    اگه میگید هر نخ توی یه هسته (چه منطقی یا فیزیکی) اجرا نمیشه ، چرا زمان اجرای نخ سوم شون ، این قدر اختلاف دارن؟
    4460 به مدت 25 ثانیه طول کشید و G3220 به مدت 42 ثانیه؟
    همینطور چرا زمان اجرای نخ چهارم شون ، باز هم متفاوت هه؟
    4460 به مدت 26 ثانیه طول کشید و G3220 به مدت 57 ثانیه؟

    جواب تون دو حالت بیشتر نخواهد داشت .
    یا باید بگین مثلا زمان بیکاری در هسته ی G3220 ، کمتر هه و در کل ، عملکرد تک هسته ای شون ، اختلاف بسیار زیادی با هم دارند که در این صورت ، تست بنچمارک را نامعتبر کردین و هم جوابی برای دو نخِ اول ندارین .
    یا باید بپذیرین که هر نخ ، در یک هسته ی منطقی (چه در یک هسته ی فیزیکی باشن یا نه) اجرا میشه .

    همینطور ، دقیقا طبق بنچمارکی که برای همه ی هسته ها از دو پردازنده داده بود ، عملکرد این دو پردازنده در این کدم ، همون نسبت اختلاف را رعایت کردن . یعنی بنچمارک G3220 (برای همه ی هسته هاش) تقریبا 3100 و بنچمارک i5 4460 (برای همه ی هسته هاش) تقریبا 6600 هست . یعنی i5 4460 تقریبا 2.1 (تا 2.2) برابر سریعتر از G3220 هست که زمان اجرای نخ ها را که در بالا دادم را اگه با هم مقایسه کنید ، همین نسبت رعایت شده .

    شما و هر کس دیگه ای هم میتونه این کد (و این برنامه) را تست کنه و نتیجه را اینجا بذاره و بهتون قول میدم هر چقدر پردازنده اش قویتر باشه (تعداد هسته های منطقی و فیزیکی و فرکانس و کش و ... ی بیشتری داشته باشه) ، به همون نسبت نتایج بهتری هم کسب میکنه .



    نقل قول نوشته شده توسط the king مشاهده تاپیک
    اتفاقا این سوال رو شما باید توضیح بدید، مگه شما نمی گید که نخ های من روی چهار هسته فیزیکی همزمان اجرا میشن؟
    مرحله 1 - سه یا چهار نخ هر کدوم روی یک هسته شروع به اجرا می کنند. حالا بین شون سوئیچ هم ممکنه بشه، مهم نیست.
    مرحله دوم - چند نخ در اجرای مرحله اول کارشون تموم شده و سیستم عامل پرونده اون سه یا چهار نخ رو میبنده میذاره کنار و هسته ها می توانند نخ های دیگری از برنامه تون رو که در صف باقی موندن اجرا کنند.
    با فرض شما وقتی به مرحله دوم میرسیم همه اون هسته ها با اختلاف زمانی کم کارشون با یک نخ برنامه تموم شده.
    حالا چطوری بین 5 نخی و 6 نخی اختلاف زمانی زیاد دارید؟ چه فرقی می کنه 5 نخی و 6 نخی؟ مرحله دوم شون رو تصور کنید. در هر دو وضعیت 5 نخی و 6 نخی وقتی به مرحله دوم رسیدیم به تعداد نیاز نخ های باقی مونده هسته بیکار هست.
    مستندات شما میگه بین اجرای 5 نخی و 6 نخی پردازنده 8 ثانیه سکته کرده که اینقدر اختلاف زمانی دارن؟
    اول اینکه من دقیق متوجه ی منظورتون نشدم . ولی روند اجرای نخ ها که مد نظرمه را براتون میگم .
    روند اجراش این طوره که مثلا 4 نخ را که اجرا کردیم ، همزمان در 4 هسته ی منطقی (چه میخواد توی یه هسته ی فیزیکی باشه یا نباشه) اجرا میشن (حالا ممکنه زمان شروع نخ ها ، اندکی پس و پیش داشته باشه) . همونطور که گفته بودین ، سیستم عامل ، یه قسمت از یه نخ را در یه هسته اجرا میکنه (و احتمالا تا جایی که حس کنه اتلاف سربارش ، ارزش اش را داره) ، میره سراغ نخ بعدی و به این ترتیب ، هر چند لحظه (این لحظه که میگم ممکنه در حد ثانیه باشه ، میلی ثانیه باشه یا حتی میکرو ثانیه) ، هر هسته ، بخشی از اون 4 نخ را پردازش میکنه (البته نخ های پروسسه های دیگه هم هستن) .

    همینطور اگه 5 یا 6 نخ یا نخ های بیشتری را برای اجرا بسپاریم ، همین روند را داره . یعنی هر هسته ، در هر لحظه ، بخشی از اون 5 نخ یا 6 نخ (یا هر تعداد نخ) را پردازش میکنه (البته نخ های پروسسه های دیگه هم هستن) .


    نقل قول نوشته شده توسط the king مشاهده تاپیک
    وقتی 4 نخ میساختید پردازنده تون با حداکثر توان پاسخگویی اش درگیر شده، دائم در حال سوئیچ کردن بین نخ های برنامه و سایر برنامه ها است،اون نخ های دیگه کارشون کم ئه و زود تموم میشه ولی نخ های شما که ول کن نیستن و حالا حالا ها پردازش میخوان.
    منظورتون از پردازنده ، یک هسته ی فیزیکی از پردازنده هست یا کل هسته هاش مد نظرتونه؟
    احتمالا باید یک هسته منظورتون باشه (اگه نباشه که همون حرف من میشه) . اگه منظورتون یک هسته هست ، از کجا میگید که وقتی در پردازنده ی من ، وقتی 4 نخ میسازم ، اون هسته ام داره با تمام توانش کار میکنه؟ چرا مثلا نمیگید وقتی 3 نخ میسازم ، اون هسته ام با حداکثر توانش داره کار میکنه؟ یا چرا نمیگید وقتی 16 نخ میسازم ، اون هسته ام داره با تمام توانش کار میکنه؟
    ادامه ی این سئوال را در بالا پرسیده بودم .


    نقل قول نوشته شده توسط the king مشاهده تاپیک
    وقتی نخ جدیدی به صف درخواست ها اضافه میکنید مجالی هست برای پاسخگویی؟ نیست. صف درخواست پردازنده از سیستم عامل به حد اشباع رسیده، پردازنده گلوگاه شده. سیستم عامل دستش بسته است. حالا هی شما نخ جدید اضافه کنید، پردازنده که نمیتونه کاری برای افزایش سرعت بکنه. نخ گرامی تون باید صبر کنه تا نوبت اش برسه، به عبارتی دیگه نخ دیگری از برنامه تون کارش تموم بشه. اون نخ ها رو می بینید در Task Manager که سایر برنامه دارن؟ همه شون همواره در حال اجرا نیستن ولی به کررات درخواست در کم دارن.
    الات مظلوم و کم صدا کار میکنن چون فرصت پردازش دارن. اما وقتی ترافیک برای پردازنده ایجاد بشه همون نخ هایی که کارشون کم ئه میشن سربار سیستم و در بین اجرای نخ های شما دائم نوبت اجرا میگیرن. اینطوریه که سوئیچ شدن سربار زیادی ایجاد میکنه.
    نخ جدیدم باید صبر کنه تا نخ قبلی ام کارش تموم بشه؟!
    خودتون قبلا گفتین یه هسته ی منطقی ، یه تیکه از نخ را اجرا میکنه و بعد متوقف میکنه ، سراغ نخ بعدی میره و این کار را همینطور ادامه میده که همین هم درسته دیگه .
    یا اینکه منظورتون چیز دیگه ای هست که متوجه نشدم .


    نقل قول نوشته شده توسط the king مشاهده تاپیک
    چون طبق مستندات Intel Turbo Boost سقف فرکانسی که به پردازنده اختصاص داده میشه و طبعا متغیر ئه به اینها وابستگی داره، در همون صفحه ای نوشته شده که ازش نقل قول کرده بودم :

    اینطوری که پردازنده بر اساس اینکه چند هسته فعال و غیر فعال هست، حرارت پردازنده چقدر ئه، چقدر برق مصرف میکنه و چقدر جریان میکشه و چقدر درخواست پردازش روی پردازنده هست فرکانس رو تغییر میده.
    وقتی فقط یک هسته رو فعال کنید، هسته های دیگه از مدار خارج میشن و مصرف انرژی پردازنده به میزان متناسب کم میشه، جریانی که پردازنده میکشه به میزان متناسب کم میشه، حرارت پردازنده هم که موثر از اینها است کم میشه.
    در نتیجه همه اون موارد که سقفی پایین تر از حداکثر میزان فرکانس ایجاد میکردن از بین میرن، خود بار کاری الان تعیین کننده فرکانس میشه که اونم یک پارامتر جدا است، سقف نیست.
    شما در Intel proccessor identification utility میخواهید سقف فرکانس پردازنده رو بخونید، نه فرکانس متغیری که در این لحظه توسط Turbo Boostبرای CPU تعیین شده.
    اگر همه هسته ها فعال باشند، احتمال داره با توجه به مشخصات پردازنده یا مادربورد و سیستم خنک کننده سقف های مضاعف تحمیل بشن و سقف فرکانسی که Intel proccessor identification utility اعلام میکنه کمتر از چیزی باشه که در بهترین شرایط سخت افزاری و به عنوان حداکثر فرکانس Turbo Boost برای پردازنده بدست میاد. دقت کنید که صحبت از حداکثر فرکانس پردازنده با Turbo Boost ئه، نه حداکثر فرکانس وقتی همه هسته ها رو فعال کردید و بصورت عادی از سیستم استفاده می کنید.
    ممکنه بخاطر محدودیت های سخت افزاری سایر پارامتر ها هیچوفت نتوانید در عمل از اون سقف فرکانس استفاده کنید، مگر در همون حالتی که سیستم تک هسته ای یا حتی دو هسته ای شده.
    میتوانید امتحان کنید، ممکنه با هر چهار هسته فعال هم به اون حداکثر فرکانس در عمل برسید، اما تا وقتی که پردازنده زیادی داغ نشده.
    اگه اشتباه نکنم ، به عبارتی ساده تر منظورتون اینه که چون وقتی یه هسته را فعال کنیم ، بار کاری و مصرف پردازنده میاد پایین و بنابراین خنک تر میشه ، پس فرکانس turbo boost ، به حداکثر مقدارش میرسه . درست میگم؟
    اگه آره ، خوب این خلاف چیزی هست که قبلا گفته بودید . قبلا گفتید که با افزایش بار کاری پردازنده (که باعث افزایش مصرف و افزایش دما میشه) ، فرکانس turbo boost بیشتر میشه .

    استاد ، خیلی ممنونم که جواب مو دادین
    آخرین ویرایش به وسیله SajjadKhati : جمعه 08 آذر 1398 در 20:50 عصر

تاپیک های مشابه

  1. پاسخ: 1
    آخرین پست: چهارشنبه 13 بهمن 1395, 00:04 صبح
  2. پاسخ: 3
    آخرین پست: دوشنبه 27 خرداد 1392, 12:26 عصر
  3. سوال : ساخت پایگاه داده بصورت تک فایل مستقل بدون پسورد ؟!
    نوشته شده توسط mf.designing در بخش امنیت در SQL Server
    پاسخ: 2
    آخرین پست: پنج شنبه 29 فروردین 1392, 17:09 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •