مدیریت منابع پردازنده در LINQ

حافظه اصلی در محاسبات موازی یا به صورت حافظه اشتراکی است یا حافظه توزیع شده. معماری حافظه توزیع شده یا Distributed گاهی به صورت فیزیکی و گاهی به صورت منطقی است که در بهترین حالت پردازنده های سیستم در محاسبات موازی باید از حافظه های فیزیکی که به صورت محلی است، استفاده کنند.
چهارشنبه، 29 تير 1390
تخمین زمان مطالعه:
موارد بیشتر برای شما
مدیریت منابع پردازنده در LINQ

مدیریت منابع پردازنده در LINQ
مدیریت منابع پردازنده در LINQ


 





 
حافظه اصلی در محاسبات موازی یا به صورت حافظه اشتراکی است یا حافظه توزیع شده. معماری حافظه توزیع شده یا Distributed گاهی به صورت فیزیکی و گاهی به صورت منطقی است که در بهترین حالت پردازنده های سیستم در محاسبات موازی باید از حافظه های فیزیکی که به صورت محلی است، استفاده کنند.
همان طور که می دانید، محاسبات همزمان و موازی به چند صورت انجام می پذیرد: در حد بیت، خط دستور، اطلاعات و اجرای تکالیف همزمان که هر کدام از این انواع در چیدمان و معماری سیستم های همزمان تأثیر گذار هستند.
زمانی که پردازنده های کامپیوترها تک هسته ای بود، همزمانی اجرای دستورات نرم افزار با استفاده از Multi Threading انجام می شد که اگر چه واقعاً Cuncurrency یا همزمانی مطلق تحقق پیدا نمی کرد، اما با استفاده از نرم افزار امکان اجرای دستورات موازی با استفاده از رشته پردازشی (Thread) امکان پذیر بود. به عنوان مثال، در دات نت یا جاوا می توان نرم افزارهایی را طراحی کرد که چند عمل را به صورت موازی و همزمان انجام دهند.
از طرفی هر چه که پیش می رویم، هسته های پردازنده کامپیوتر ها بیشتر و بیشتر می شود. در دات نت ۴ که به تازگی از طرف شرکت مایکروسافت به بازار عرضه شده، قابلیت استفاده از چند پردازنده بیشتر از نسخه های قبلی تقویت شده است.
استفاده از کلاس هایی که در دات نت ۴ برای اجرای همزمان دستورات وجود دارد، از نسخه های قبلی بسیار آسان تر است تا آنجا که حتی دیگر به استفاده از رشته پردازشی و Thread Pool نیز به صورت مستقیم نیازی وجود ندارد ( با استفاده از System.Threading.Tasks در VS۲۰۱۰ می توان از این قابلیت ها استفاده کرد)، یکی از کامپوننت های دات نت که می توان تأثیر همزمانی را در آن بیشتر احساس کرد، LINQ است که از نسخه ۳ دات نت پا به عرصه وجود گذاشت و تحول عظیمی در سیستم های نرم افزاری که با پایگاه داده کار می کنند، ایجاد کرد.
LINQ با قابلیت پرس وجو یا Query در منابع اطلاعاتی به صورت جست وجو در Collection های (ListT) عمل می کند و PLINQ که Parallel LINQ است، اجرای الگوی همزمانی در این جست وجوها است که در دات نت ۴ به بازار معرفی شد. در PLINQ هدف استفاده کامل از تمامی پردازشگر ها و تمام ظرفیت آن ها است.
PLINQ این کار را با تکه تکه کردن منبع اطلاعاتی به تکه های Segment و اجرای جست وجو برای هر Segment در یک رشته به صورت موازی در چند پردازنده انجام می دهد. که این کار به افزایش سرعت اجرای Query ها کمک می کند.
شاید تا اینجا فکر کنید که همزمانی در اجرای پرس وجو ها همیشه سرعت سیستم را بالا می برد. اما همیشه این طور نیست و ملاحظاتی وجود دارد که باید در طراحی و اجرای دستورات PLINQ به آن توجه کرد. باید توجه داشت که سرعت بالاتر در PLINQ با استفاده از روش های خاصی به وجود می آید.
به عنوان مثال، اگر اجرای دستوری دو میلی ثانیه زمان بخواهد، اگر به صورت سریال اجرا شود برای اجرای صد دستور دویست میلی ثانیه زمان نیاز خواهیم داشت. اما اگر از یک سیستم با چهار هسته استفاده شود سیستم باید درپنجاه میلی ثانیه این عملیات را انجام دهد که باعث خواهد شد ۱۵۰ میلی ثانیه صرفه جویی زمانی به وجود آید.
حال محاسبه کنید اگر یک عملیات یک ثانیه طول بکشد، چه میزان صرفه جویی در زمان انجام عملیات به وجود می آید. در عملیاتی که سرعت، اهمیت بالایی در آن دارد و زمان اجرای آن طولانی است، استفاده از PLINQ کارایی بیشتری به سیستم می دهد.
عواملی را که در افزایش سرعت در جست وجوهای PLINQ تأثیر گذار است، می توان به چند دسته تقسیم کرد: نخست آن که باید قبل از استفاده از دستورات PLINQ به هزینه ای که پرس وجوها دارند، دقت کرد (مطابق مثال بالا). نکته دیگر دقت کردن به تعداد هسته هایی است که سیستم دارد. تعداد هسته های پردازنده و اختصاص دادن هر عملیات به هسته خاص تأثیر فراوانی در کار خواهد داشت.
عامل دیگر توجه به این موضوع است که در پرس وجو به چه ترتیبی از منابع استفاده می شود و چه ایندکس هایی در پایگاه داده قرار داده شده است. همچنین باید به تعداد و نوع عملیاتی که PLINQ انجام می دهد، دقت و نوع جمع آوری اطلاعات از آرایه ها و فهرست هایی که از جست وجوی هر کدام از منابع اطلاعاتی به دست می آید، توجه کرد. نکته آخر این که نحوه تقسیم بندی یا Partitioning اطلاعات در سگمنت ها برای سرعت در جست وجو از اهمیت بالایی برخوردار است.
منبع:افتاب
ارسال توسط کاربر محترم سایت : mohamadaminsh




 

نظرات کاربران
ارسال نظر
با تشکر، نظر شما پس از بررسی و تایید در سایت قرار خواهد گرفت.
متاسفانه در برقراری ارتباط خطایی رخ داده. لطفاً دوباره تلاش کنید.
موارد بیشتر برای شما
تجلیل از ۵۸ نخبه علمی کشور در شصت‌وچهارمین جایزه البرز
تجلیل از ۵۸ نخبه علمی کشور در شصت‌وچهارمین جایزه البرز
وضعیت موجود وقف و امور خیریه در سوئیس؛ تحلیل آماری بنیادها، هزینه‌ها و مشارکت مردمی
وضعیت موجود وقف و امور خیریه در سوئیس؛ تحلیل آماری بنیادها، هزینه‌ها و مشارکت مردمی
مفهوم وقف و امور خیریه در سوئیس؛ ساختار بنیادها، انجمن‌ها و شرایط عام‌المنفعه بودن
مفهوم وقف و امور خیریه در سوئیس؛ ساختار بنیادها، انجمن‌ها و شرایط عام‌المنفعه بودن
سقوط پهپاد بمب‌گذاری‌شده رژیم صهیونی در جنوب لبنان
play_arrow
سقوط پهپاد بمب‌گذاری‌شده رژیم صهیونی در جنوب لبنان
افشای سند جنگی دشمن به روایت سیمیاری
play_arrow
افشای سند جنگی دشمن به روایت سیمیاری
جابه‌جایی قلعه ۳۶۰ تنی با نیروی ۱۸۰۰ نفر در ژاپن
play_arrow
جابه‌جایی قلعه ۳۶۰ تنی با نیروی ۱۸۰۰ نفر در ژاپن
سند محرمانه‌ای که از اتاق جنگ دشمن لو رفت
play_arrow
سند محرمانه‌ای که از اتاق جنگ دشمن لو رفت
پزشک قلابی که با سرم بیهوشی وارد خانه‌ها می‌شد!
play_arrow
پزشک قلابی که با سرم بیهوشی وارد خانه‌ها می‌شد!
اژه‌ای: نگوییم نمی‌شود بگوییم می‌شود می‌توانیم و انجام می‌دهیم
play_arrow
اژه‌ای: نگوییم نمی‌شود بگوییم می‌شود می‌توانیم و انجام می‌دهیم
وزیرخارجه سابق آمریکا: نتانیاهو به تصویر اسرائیل در آمریکا و جهان ضربه زد
play_arrow
وزیرخارجه سابق آمریکا: نتانیاهو به تصویر اسرائیل در آمریکا و جهان ضربه زد
پوکر لژیونر ایرانی در لیگ مالزی
play_arrow
پوکر لژیونر ایرانی در لیگ مالزی
آزمایش سیستم چتر نجات رزمی و نظامی هند
play_arrow
آزمایش سیستم چتر نجات رزمی و نظامی هند
سعید اسماعیلی بدون دادن حتی یک امتیاز قهرمان شد
play_arrow
سعید اسماعیلی بدون دادن حتی یک امتیاز قهرمان شد
‏ادعای ترامپ: اگر من نبودم ایران اسرائیل را نابود می کرد
play_arrow
‏ادعای ترامپ: اگر من نبودم ایران اسرائیل را نابود می کرد
بی‌ارزش‌ترین ویدیوهایی که در یوتیوب بازدیدهای میلیونی داشته‌اند!
play_arrow
بی‌ارزش‌ترین ویدیوهایی که در یوتیوب بازدیدهای میلیونی داشته‌اند!