دسته بندی | کامپیوتر و IT |
بازدید ها | 0 |
فرمت فایل | doc |
حجم فایل | 705 کیلو بایت |
تعداد صفحات فایل | 30 |
این مقاله در 30 صفحه و در قالب word در زمینه موازی سازی سیستم عامل ها تهیه و تنظیم شده است این مقاله از یک مقاله لاتین و معتبر (از سایت ساینس دایرکت) ترجمه و ویرایش شده است.
فهرست
چکیده
مقدمه
2.یک مدل برای اجرای یک برنامه به صورت موازی
2.1 حذف وابستگی کنترل و وابستگی صحیح مدیریت پشته
2.2 انشعاب نظری و غیر نظری.
3-چارچوب آزمایشی.
3.1 شبیه ساز PerPI.
3.2مجموعه معیارهای cBenchو مجموعه داده انتخابی.
3.3شبیه سازی مدلهای مختلف.
3.4 شبیه سازی مدل انشعابی.
3.5 نتایج شبیه سازی
3.6 IPL مدل انشعابی بر روی کدهای اصلاح شده
3.7 تفاوت بین مدل انشعاب نظری با غیر نظری چیست؟
4.کارهای مرتبط بر روی مسیر موازی سازی خودکار
5. نتیجه گیری
مراجع.
چکیده
ما ظرفیت مدل های مختلف در حال اجرا را برای بهره مندی از موازی سازی سطح دستور (IPL) تحلیل کردیم.ابتدا، نشان می دهیم که قفل های ضبط فاصله IPLساکن (مقیم) هستند. ما این موارد را نشان می دهیم: 1)دریافت(واکشی)به صورت موازی2)تغییر نام منابع حافظه 3)از بین بردن وابستگی صحیح پارازیتی بر روی مدیریت پشته کلیدهای ضبط فاصله IPL.دوم پتانسیل یک مدل اجرایی جدید به نام انشعاب نظری را اندازه گیری می کنیم،که در آن یک اجرا به صورت پویا توسط انشعاب در هر تابع و حلقه مرزی ورودی چند نخی است و نخها برای پیوند مشتریان تغییر نام داده به دیگر تولید کنندگان ارتباط برقرار می کنند.ما نشان می دهیم که یک اجرا می تواند به طور خودکار توسط انشعاب نظری و تغییر نام قابل تعمیم موازی سازی شود.بسیاری از IPLدور، با افزایش اندازه داده ،می تواند به درستی برنامه های کامپایل شده براساس الگوریتم های موازی را ضبط کند.
کلمات کلیدی:
موازی سازی خودکار، موازی سازی ضبط سطح دستور IPLدور،انشعاب نظری ، تغییر نام حافظه
Limits of Instruction-Level Parallelism Capture.
Abstract
We analyse the capacity of different running models to benefit from the Instruction-Level Parallelism (ILP). First,
we show where the locks to the capture of distant ILP reside. We show that i) fetching in parallel, ii) renaming
memory references and iii) removing parasitic true dependencies on the stack management are the keys to capture
distant ILP. Second, we measure the potential of a new running model, named speculative forking, in which a run
is dynamically multi-threaded by forking at every function and loop entry frontier and threads communicate to link
renamed consumers to their producers. We show that a run can be automatically parallelized by speculative forking
and extended renaming. Most of the distant ILP, increasing with the data size, can be captured for properly compiled
programs based on parallel algorithms.
Keywords: Automatic parallelization, Instruction-Level Parallelism, distant ILP capture, speculative forking,
memory renaming
AbstractWe analyse the capacity of different running models to benefit from the Instruction-Level Parallelism (ILP). First,we show where the locks to the capture of distant ILP reside. We show that i) fetching in parallel, ii) renamingmemory references and iii) removing parasitic true dependencies on the stack management are the keys to capturedistant ILP. Second, we measure the potential of a new running model, named speculative forking, in which a runis dynamically multi-threaded by forking at every function and loop entry frontier and threads communicate to linkrenamed consumers to their producers. We show that a run can be automatically parallelized by speculative forkingand extended renaming. Most of the distant ILP, increasing with the data size, can be captured for properly compiledprograms based on parallel algorithms.Keywords: Automatic parallelization, Instruction-Level Parallelism, distant ILP capture, speculative forking,memory renaming
دسته بندی | پژوهش |
بازدید ها | 0 |
فرمت فایل | doc |
حجم فایل | 288 کیلو بایت |
تعداد صفحات فایل | 8 |
برنامه نویسی موازی شبکه روی سیستم GPU چندهستهای شتابیافته با بهینه سازی
چکیده
واضح است که کدگذاری شبکه به عنوان روشی امیدوارکننده برای بهبود بازده شبکه و پهنای باند موجود پدید آمده است. اما، با توجه به پیچیدگی محاسباتی بالا، قابلیت پیادهسازی کدگذاری شبکه هنوز هم به عنوان یک چالش بر جای مانده است. همچنین، کاربردهای شتابیافته با GPU محدود به روشهای سنتی هستند، که در آن GPU بعنوان یک کوپروسسور[1] برای مصرف مجموعهدادههای انتقالی از CPU استفاده میشود. بنابراین، یک چارچوب کدگذاری شبکه موازی مهاجم با بهینهسازی برای GPU سفارشی شده است، که در آن یک گرنیولاریتی[2] مناسب موازیشدگی برای کدگذاری شبکه ارائه شده است، و GPU نه تنها میتواند به عنوان مصرفکننده داده، بلکه تولیدکننده داده نیز عمل کند. علاوه بر این، کدگذاری شبکه خطی تصادفی، در GPU فعال شده با CUDA موازی و بهینهسازی شده است تا به اعتباربخشی روش ارائه شده بپردازد. نتایج عملی [آزمایشگاهی] نشان میدهد که موازی کردن کدگذاری شبکه در سیستم چندهسته شتابیافته با GPU استفاده از روشهای پیشنهادی بسیار موثر است.
کلمات کلیدی: GPU، کدگذاری شبکه، موازیسازی، CUDA، بهینهسازی.
1. مقدمه
کدگذاری شبکه، یکپارچهسازی کدگذاری اطلاعات و مسیریابی شبکه، تکنیکی برای تبادل اطلاعات است، که در آن بستههای اطلاعاتی قبل از ارسال کدبندی [کدگذاری] میشوند.
با توجه به مزایایی از قبیل بهبود بازده شبکه، متعادل کردن بارها، کاهش تاخیر انتقال و مصرف انرژی گره، و افزایش استحکام شبکه [1]، کدگذاری شبکه به طور گستردهای در ذخیرهسازی فایلهای توزیعی [2] در شبکههای بیسیم استفاده شده است [3]. با این حال، واقعیت وجود محیط شبکه غیرقطعی [4]، پیچیدگی محاسباتی بالای کدگذاری شبکه [5] به عملکرد سیستمهای کدگذاری شبکه [5] آسیب میرساند، لذا قابلیت پیادهسازی آن هنوز هم یک چالش است. بنابراین، بهینهسازی کدگذاری شبکه [6] کاربردی است، و بهینهسازی به نفع کاهش محاسبات و هزینه کدگذاری شبکه از جمله الگوریتم بهبود کدگذاری شبکه [7] و شتاب کدگذاری شبکه مبتنی بر سخت افزار یا معماری [5] [8-9] است.
کدگذاری شبکه شتابیافته با معماری GPU به نتایج قابلتوجهی دست یافته است و هنوز هم در حال پیشرفت است. با این حال، کار قبلی برای به حداکثر رساندن مصرف منابع محاسباتی GPU برای بازده سیستم کدگذاری شبکه موازی اختصاص داده شده است اما هنوز هم مطلوب نیست. همچنین، کار کمی بر روی بهینهسازی سلسله مراتب حافظه برای سیستم کدگذاری شبکه وجود دارد. بنابراین، یک چارچوب کدگذاری موثر شبکه موازی از جمله بهینهسازی حافظه برای بهبود بهرهبرداری علاوه بر مصرف منابع محاسباتی GPU ارائه شده لازم است.
2. معماری و مدل برنامه نویسی CUDA
شکل 1، نمایی کلی از معماری سیستم مشترک متشکل از GPU و CPU را نشان میدهد، که در آن دادهها بین CPU و GPU با کانال PCIe مورد تقاضا انتقال مییابند. معماریGPU شامل تعدادی از مولتیپروسسورهای مقیاسپذیر (SMها) است که هر کدام شامل هشت هسته جریان پردازنده (SP) است و هر سه SM تشکیل یک شاخه مولتی پروسسور ریسهای (TPC) در NVidia GTX 280، حافظه پنهان[3] ثابت خواندنی، و حافظه پنهان بافت[4] خواندنی است. علاوه بر این، هر SM دارای16KB حافظه داخلی خواندنی و نوشتنی است که وجه مشترک همه SP های 8 بیتی است.
...
دسته بندی | کامپیوتر و IT |
بازدید ها | 0 |
فرمت فایل | doc |
حجم فایل | 24 کیلو بایت |
تعداد صفحات فایل | 50 |
تحلیل الگوریتم شاخه و قید موازی آسنکرون ( Asynchronous Parallel Branch and Bound Algorithm )
بخشهایی از متن:
چکیده:
در این مقاله توضیحی درباره کامپیوترهای موازی میدهیم و بعد الگوریتمهای موازی را بررسی میکنیم. ویژگیهای الگوریتم branch & bound را بیان میکنیم و الگوریتمهای b&b موازی را ارائه میدهیم و دستهای از الگوریتمهای b&b آسنکرون برای اجرا روی سیستم MIMD را توسعه میدهیم. سپس این الگوریتم را که توسط عناصر پردازشی ناهمگن اجرا شده است بررسی میکنیم.
نمادهای perfect parallel و achieved effiency را که بطور تجربی معیار مناسبی برای موازیسازی است معرفی میکنیم زیرا نمادهای قبلی speed up (تسریع) و efficiency (کارایی) توانایی کامل را برای اجرای واقعی الگوریتم موازی آسنکرون نداشتند. و نیز شرایی را فراهم کردیم که از آنومالیهایی که به جهت موازیسازی و آسنکرون بودن و یا عدم قطعیت باعث کاهش کارایی الگوریتم شده بود، جلوگیری کند.
...
- کامپیوترهای موازی (Parallel computers):
یکی از مدلهای اصلی محاسبات Control drivenmodel است، در این مدل کاربر باید صریحاً ترتیب انجام عملیات را مشخص کند و آن دسته از عملیاتی که باید به طور موازی اجرا شوند را تعیین کند. این مدل مستقل از عناصر پردازش به صورت زیر تقسیمبندی میشود:
- کامپیوترهای SISD، که یک عنصر پردازشی وجود دارد و توان انجام فقط یک عمل را در یک زمان دارد.
- کامپیوترهای MIMD، دارای چندین عنصر پردازشی هستند که بطور موازی دستورالعملهای متفاوت را روی دیتاهای متفاوت انجام میدهند.
- کامپیوترهای SIMD، همه عناصر پردازشیشان یک دستور یکسان را در یک زمان بر روی دادههای متفاوتی انجام میدهند. اگر چه امکان پنهان کردن عناصر پردازشی وجود دارد. عنصر پردازشی پنهان شده نتیجه عملی را که انجام داده ذخیره نمیکند.
سیستمهای SIMD بر اساس نحوه ارتباط و اتصال عناصر پردازشی به یکدیگر خود به بخشهایی تقسیم میشوند: اگر تمام عناصر پردازشی به یکدیگر متصل باشند و از طریق یک حافظه مشترک ارتباط داشته باشند، به آن tightly coupled system گویند.
و اگر عناصر پردازش حافظه مشترک نداشته باشند اما از طریق شبکهای بهم متصل باشند و بروش message passing با هم ارتباط داشته باشند، به آن loosely coupled system گویند.
حافظه مشترک در tightly coupled system ها هم نقطه قوت و هم نقطه ضعف این سیستمها است. امکان به اشتراک گذاشتن راحت و سریع اطلاعات بین عناصر پردازشی مختلف را فراهم میکند. ارتباط به عملیات ساده read و wite روی حافظه مشترک خلاصه میشود و هر عنصر پردازشی مستقیماً با دیگر عناصر پردازشی ارتباط برقرار میکند. با این حال، اگر تعداد عناصر پردازشی متصل به حافظه مشترک افزایش یابد، حافظه مشترک تبدیل به گلوگاه (Bottleneck) میشود.
بنابراین تعداد عناصر پردازشی در یک سیستم tightly coupled محدود است. به جهت اینکه تمام عناصر پردازشی بایستی به ان حافظه مشترک متصل باشند، این سیستمها بصورت کامل از پیش ساخته هستند و امکان اضافه کردن عناصر پردازش به سیستم وجود ندارد.
از طرف دیگر، ارتباط در یک سیستم loosely coupled کند و آهسته است. تبادل پیامها نیاز به زمانی بیش از زمان لازم برای نوشتن یا خواندن از یک حافظه مشترک دارد. این امکان هم وجود دارد که یک عنصر پردازش مستقیماً به عنصر پردازش دیگر که قصد ارتباط دارد متصل نباشد.
در مقابل compactness بودن سیستمهای tightly coupled ، عناصر پردازشی در یک سیستم loosely coupled میتوانند در تمام نقاط توزیع شوند. لذا فاصله فیزیکی که یک پیام باید طی کند، بیشتر میشود. به جهت این حقیقت که عناصر پردازشی برای ارتباط در یک شبکه از یک پروتکل استفاده میکنند، lossely coupled system میتوانند شامل انواع مختلفی از عناصر پردازشی باشند. امکان اضافه کردن عناصر پردازشی اضافهتری به سیستم وجود دارد. در حالت کلی عناصر پردازشی خودشان یک کامپیوتر کاملی هستند.
مثالی از سیستمهای loosely coupled، Distributed Processing utilities Package است که بعداُ به تفضیل درباره آنها توضیح میدهیم.