Gabana
18-11-2007, 18:42
مقدمه...
زماني كه پردازنده هاي دو هسته اي روانه بازار شدند بحث بر سر اين بود كه آيا نرم افزار ها و خصوصا بازي هاي فعلي توانايي كافي براي استفاده از تمام قابليت هاي چند هسته اي ها را دارند يا خير.
مقالات متعددي منتشر شده و همگي بر اين قضيه اذعان داشتند كه بازي ها و نرم افزار هاي موجود توانايي استفاده از قابليت هاي خاص پردازنده هاي چند هسته را ندارند. بهمين دليل بود كه در چند ماهه اول ورود اين پردازنده ها همچنان پردازنده هاي تك هسته اي محبوب گيمر ها بودند .
اما به تدريج و با بررسي هاي انجام شده بازي و نرم افزار هاي جديد خاصيت Multi Thread بودن را در خود ايجاد كردند.
Multi Threading بحثي بوده كه بار هاي توي فروم بررسي شده و همينطور سوالات زيادي هم پرسيده شده.
سعي كردم در اين رابطه مقدمه كوتاهي بنويسم تا بيشتر و بهتر با اين مفهوم آشنا بشيم .
هر چند در اين مورد جستجو زياد داشتم ولي هنوز در قالب كلي يك مطلب نميشه ارايه داد بنابراين بهمين چند خط اكتفا مي كنم .
توضيح...
اما در اين بين Software Developer ها چه بايد بكنند ؟ يكي ديگر از مواردي كه باعث محدوديت در استفاده از قابليت هاي پردازنده هاي چند هسته اي مي شود نرم افزاري است كه بر روي آن به اجرا در مي آيد. براي اكثر كاربران بهترين حالت بهره از پردازنده هاي چند هسته اي زماني اتفاق مي افتد كه نياز به Multi Tasking داسته باشند. براي مثال در كنار گوش دادن به موسيقي از فتوشاپ هم استفاده كنند و يا در هنگام ديدن صفحات وب ويروس يابي نيز داشته باشند. در اين هر Task به يك Core تخصيص داده مي شود.
اما اگر همين كاربر يك نرم افزار را بر روي پردازنده چند هسته اي به اجرا در آورد كارآيي قابل توجهي را ملاحظه نخواهد كرد. به اين دليل كه اكثر نرم افزار هاي واقعا Multi Thread واقعي نيستند . Application ها مي توانند ظاهرا Multi thread باشند. بدين معني كه وقتي رابط گرافيكي يه ويروس ياب را فعال مي كنيد در كنار آن ويروس اسكن را نيز فعال كنيد. در اين حالت GIU در يك Thread و Virus Scan در Thread ديگر فعال مي شود. اما در واقع اين حالت Multi Thread واقعي نيست. Multi Thread واقعي زماني است كه كل حجم كاري به ميزان مساوي بين هسته هاي پردازنده تقسيم شود. در اين مثال حجم كاري GIU مسلما كمتر از حجم كاري Virus scan است .
توسعه يك نرم افزاري كه بتواند حالت واقعي Multi Thread را داشته باشد كار دشواري است . چراكه زمان زيادي را به سيكل توسعه نرم افزار اضافه مي كند و بهمين دليل افزايش هزينه ناگزير خواهد بود. بهمين دليل است كه در حال حاضر بسياري از نرم افزار هاي كاربردي بصورت واقعي Multi Thread نيستند .
بنابراين استفاده از هسته هاي پردازنده هاي Multi Core نيازمند نرم افزار هاي و Game هايي است كه بطور واقعي از اين خاصيت پشتيباني كنند. در حال حاضر تعدادي از بازي هاي جديد توانايي پشتيباني از اين خاصيت را حتي بر روي پردازنده چهار هسته اي نيز دارا هستند ...
ختم كلام .. :دي
زماني كه پردازنده هاي دو هسته اي روانه بازار شدند بحث بر سر اين بود كه آيا نرم افزار ها و خصوصا بازي هاي فعلي توانايي كافي براي استفاده از تمام قابليت هاي چند هسته اي ها را دارند يا خير.
مقالات متعددي منتشر شده و همگي بر اين قضيه اذعان داشتند كه بازي ها و نرم افزار هاي موجود توانايي استفاده از قابليت هاي خاص پردازنده هاي چند هسته را ندارند. بهمين دليل بود كه در چند ماهه اول ورود اين پردازنده ها همچنان پردازنده هاي تك هسته اي محبوب گيمر ها بودند .
اما به تدريج و با بررسي هاي انجام شده بازي و نرم افزار هاي جديد خاصيت Multi Thread بودن را در خود ايجاد كردند.
Multi Threading بحثي بوده كه بار هاي توي فروم بررسي شده و همينطور سوالات زيادي هم پرسيده شده.
سعي كردم در اين رابطه مقدمه كوتاهي بنويسم تا بيشتر و بهتر با اين مفهوم آشنا بشيم .
هر چند در اين مورد جستجو زياد داشتم ولي هنوز در قالب كلي يك مطلب نميشه ارايه داد بنابراين بهمين چند خط اكتفا مي كنم .
توضيح...
اما در اين بين Software Developer ها چه بايد بكنند ؟ يكي ديگر از مواردي كه باعث محدوديت در استفاده از قابليت هاي پردازنده هاي چند هسته اي مي شود نرم افزاري است كه بر روي آن به اجرا در مي آيد. براي اكثر كاربران بهترين حالت بهره از پردازنده هاي چند هسته اي زماني اتفاق مي افتد كه نياز به Multi Tasking داسته باشند. براي مثال در كنار گوش دادن به موسيقي از فتوشاپ هم استفاده كنند و يا در هنگام ديدن صفحات وب ويروس يابي نيز داشته باشند. در اين هر Task به يك Core تخصيص داده مي شود.
اما اگر همين كاربر يك نرم افزار را بر روي پردازنده چند هسته اي به اجرا در آورد كارآيي قابل توجهي را ملاحظه نخواهد كرد. به اين دليل كه اكثر نرم افزار هاي واقعا Multi Thread واقعي نيستند . Application ها مي توانند ظاهرا Multi thread باشند. بدين معني كه وقتي رابط گرافيكي يه ويروس ياب را فعال مي كنيد در كنار آن ويروس اسكن را نيز فعال كنيد. در اين حالت GIU در يك Thread و Virus Scan در Thread ديگر فعال مي شود. اما در واقع اين حالت Multi Thread واقعي نيست. Multi Thread واقعي زماني است كه كل حجم كاري به ميزان مساوي بين هسته هاي پردازنده تقسيم شود. در اين مثال حجم كاري GIU مسلما كمتر از حجم كاري Virus scan است .
توسعه يك نرم افزاري كه بتواند حالت واقعي Multi Thread را داشته باشد كار دشواري است . چراكه زمان زيادي را به سيكل توسعه نرم افزار اضافه مي كند و بهمين دليل افزايش هزينه ناگزير خواهد بود. بهمين دليل است كه در حال حاضر بسياري از نرم افزار هاي كاربردي بصورت واقعي Multi Thread نيستند .
بنابراين استفاده از هسته هاي پردازنده هاي Multi Core نيازمند نرم افزار هاي و Game هايي است كه بطور واقعي از اين خاصيت پشتيباني كنند. در حال حاضر تعدادي از بازي هاي جديد توانايي پشتيباني از اين خاصيت را حتي بر روي پردازنده چهار هسته اي نيز دارا هستند ...
ختم كلام .. :دي