نقل قول نوشته شده توسط SajjadKhati مشاهده تاپیک
من دقیق متوجه نشدم هدف تون از این کار چیه .
به هر حال تست کردم :

1) دو برنامه ی ProcessThreads را همزمان اجرا کردم و در هر دو برنامه ، همه ی cpu ها تیک دارن .در هر کدوم از برنامه ها ، فقط یک نخ اجرا کردم (یکبار دکمه ی New Thread را کلیک کردم) .
در یکی شون ، cpu usage و total usage مقدار 94 درصد و در برنامه ی دیگری ، این موارد مقدار 92 درصد شدن . مقدار اشغال پردازنده هم 25 درصد برای هر برنامه بود .
شما وقتی در یک برنامه یک نخ رو آزادانه برای اجرا روی هر هسته ای انتخاب می کردید بهتون cpu usage و total usage بین 98 الی 100 درصد میده. درسته؟ حالا در دو برنامه رسیده به 94 و 92 درصد.
طبق ادعای شما برای اجرای این دو برنامه فقط دو هسته درگیر شدن، هر هسته برای یک نخ در یک برنامه و اون دو هسته دیگه پردازنده تون الان بیکار ئه و 25 + 25 درصد توان پردازنده مشغول ئه و 25 + 25 درصد بیکار ئه.
پس چطور این مساله رو توضیح میدید که یک هسته که 25 درصد توان پردازنده بود تونسته بود 98 الی 100 درصد کارایی بده ولی حالا که دو تا هسته شد با 50 درصد توان پردازنده کارایی شون شده 94 + 92 درصد؟
مگه شما مدعی نیستید که اون دو تا هسته دیگه الان بیکار هستند و کاری به اون دو تا نخ ندارند برای سایر کارهای سیستم عامل آزادند هر کاری لازمه بکنند؟ چطور توان دو هسته ای موازی تون اومد پایین؟
این چطور پردازش موازی ای در دو هسته فیزیکی مستقل ئه که دو تا پروسه جدا دارن ولی اجرای همزمان شون نتونسته کارایی اجرای تکی رو ارائه کنه؟

نقل قول نوشته شده توسط SajjadKhati مشاهده تاپیک
2) دو برنامه ی ProcessThreads را همزمان اجرا کردم و در یکی شون فقط cpu 0 و cpu 1 را تیک زدم و در برنامه ی دیگری ، فقط cpu 2 و cpu 3 را تیک زدم . در هر کدوم از برنامه ها ، فقط یک نخ اجرا کردم (یکبار دکمه ی New Thread را کلیک کردم) .
در یکی شون cpu usage و total usage مقدار 85 درصد و در برنامه ی دیگری ، این موارد مقدار 93 درصد شدن . مقدار اشغال پردازنده هم 25 درصد برای هر برنامه بود .
این هم مثل همون یکی. با فرض شما که مدعی هستید وقتی نخ بین CPU0 و CPU1 سوئیچ میشه سایر هسته ها آزاد هستند و درگیر نیستن، چه توضیحی دارید برای اینکه نخی که آزاد بوده در یکی از دو هسته CPU0 و CPU1 اجرا بشه روی کارکرد در هسته CPU2 و CPU3 تاثیر داره؟

نقل قول نوشته شده توسط SajjadKhati مشاهده تاپیک
به هر حال ، دو برنامه (و بنابراین دو پروسه ی متفاوت) ، در دو هسته ی متفاوت اجرا میشن که هر کدوم 25 درصد از پردازنده ی من را (که 4 هسته ای هست) ، اشغال میکنن (که کلا میشه 50 درصد) .
وقتی هم که در یک پروسه ، دو نخ اجرا میکنیم ، باز هم 50 درصد را اشغال میکنن .
و حتما می توانید توضیح بدین که چطور کارکرد این 50 درصد تون پایینتر از اجرای یک نخ شده؟ اینکه چطور با این اجرای موازی از 98 الی 100 درصد رسیدین به 94 و 92 درصد. شما که میگید من نمیتونم بپذیرم که وقتی بین دو هسته سوئیچ میشه بار کاری روی سایر هسته ها ایجاد بشه چطوری این تجربه رو تفسیر می کنید که فقط 50 درصد توان پردازنده رو گرفتید و کاری به سایر هسته ها نداشتید ولی کارکرد اومد پایینتر؟ شما که میگید پردازنده هنوز 50 درصد بیکار ئه چطور کارکرد هسته اش کم شد؟

نقل قول نوشته شده توسط SajjadKhati مشاهده تاپیک
متوجه نشدم منظورتون دقیقا چیه
آره، متوجه نشدین. منظور من دقیقا همون مرغی است که یه پا داره.