موازیسازی و برداریسازی حلقههای تودرتوی چند بعدی در پردازندههای چند هستهای
عنوان اصلي به زبان ديگر
Parallelizing and Vectorizing Multi-Dimensional Nested Loops in Multicore Processors
نام نخستين پديدآور
/یوسف صیفاری
وضعیت نشر و پخش و غیره
نام ناشر، پخش کننده و غيره
: علوم ریاضی
تاریخ نشرو بخش و غیره
، ۱۳۹۷
نام توليد کننده
، راشدی
مشخصات ظاهری
نام خاص و کميت اثر
۱۵۰ص
یادداشتهای مربوط به نشر، بخش و غیره
متن يادداشت
چاپی - الکترونیکی
یادداشتهای مربوط به پایان نامه ها
جزئيات پايان نامه و نوع درجه آن
دکتری
نظم درجات
علوم کامپیوتر
زمان اعطا مدرک
۱۳۹۷/۰۶/۱۴
کسي که مدرک را اعطا کرده
تبریز
یادداشتهای مربوط به خلاصه یا چکیده
متن يادداشت
امروزه از رایانهها در بیشتر حوزههای علمی برای حل مسائل پیچیده استفاده میشود .حوزههایی همانند پردازش تصویر و هواشناسی نیازمند انجام محاسبات بسیار زیادی بر روی دادههای فراوان هستند .حلقهها مهمترین بخش محاسبات علمی و همچنین بزرگترین منبع بهینهسازی/موازیسازی در محاسبات علمی هستند .از منابع مهم محاسباتی موجود در پردازندههای مدرن میتوان به هستهها، واحد SIMD و حافظه نهان اشاره کرد که میتوان از آنها برای تسریع محاسبات علمی استفاده نمود .چالش اول در این رساله استفاده همزمان از این سه منبع است .اگر حلقههای نامزد موازیسازی و برداریسازی درست انتخاب نشوند کارآیی مد نظر بهدست نخواهد آمد .هدف از این رساله، موازیسازی، برداریسازی و بهبود محلیت دادهای حلقههای تودرتو بر روی پردازندههای مدرن چند هستهای است بهطوریکه کارآیی محاسبات روی این سختافزارها افزایش پیدا کند .در این رساله سه راهکار برای این منظور ارائه شده است .در این سه راهکار، ابتدا سعی شده است که حلقههای تودرتو به صورت همزمان موازیسازی و برداریسازی شوند .برای این منظور از مدل چند وجهی به همراه برنامهریزی خطی صحیح استفاده شده تا تبدیل مناسب حلقه پیدا گردد .سپس بر روی حلقههای کلاس استنسیل تمرکز شده است .استنسیلها کلاسی از حلقهها هستند که عناصر آرایه را طبق الگوی ثابتی بهروزرسانی میکنند بهطوریکه استنسیلهای غیر کامل، محلیت داده میان-حلقهای خوبی از خود نشان میدهند .چالش دوم استفاده از محلیت داده میان-حلقهای در حلقههای استنسیل غیر کامل است .بنابراین سعی شده است محلیت میان-حلقهای استنسیلها استخراج گردد .سپس به منظور استفاده همزمان از هستهها، واحد SIMD و حافظه نهان در این حلقهها، ابتدا قدرت محاسباتی سه منبع موجود در پردازنده محاسبه شده و در ادامه بهترین اندازه کاشی پیدا شده است و در نتیجه زمان اجرای موازی کمینه و محلیت داده بیشینه شده است .راهکارهای پیشنهادی از طریق آزمایشهای گستردهای مورد ارزیابی و مقایسه قرار گرفتهاند .نتایج حاصل از ارزیابیها و مقایسهها، تسریع در زمان اجرای راهکارهای پیشنهادی در محکها را به خوبی نشان میدهند
متن يادداشت
Today, computers are used in various scientific fields to solve complex scientific problems. Fields such as image processing and weather meteorology require heavy computation on huge data. Loops are most important segment of scientific computations that are largest source of optimization/parallelization. Cores, SIMD units, and cache memory are important computational resources in processors with modern architecture. The first challenge is to use these three resources in the modern processors simultaneously. If candidate loops for the parallelization and vectorization are not selected properly, the desired performance will not be achieved. The aim of this thesis is parallelization, vectorization, and improving data locality of nested loop in processors with modern architecture such that performance of the loops increase. For this purpose, three approaches are proposed in this thesis to parallelize, vectorize, and improve data locality of nested loops in the processors with modern architecture. In these approaches, in order to parallelize and vectorize the loop nests, polyhedral model is used with Integer Linear Programming (ILP) to find proper loop transformation. Then, we focused on the stencil computations. Stencil computations are a class of the loops that update array elements according to a fixed pattern such that imperfect stencils show good inter-nest data locality. The second challenge is to use inter-nest data locality in imperfect stencils. Thus, we proposed an approach to optimize inter-nest data locality in stencil computations. Then, in order to use cores, SIMD units, and cache memory simultaneously, computational power of these resources in the processor are calculated, first. Later, the best tile size determined such that parallel execution time of the loop nests are minimized and data locality is maximized. The proposed approaches have been evaluated and compared extensively in various aspects. Experimental results of evaluations and comparisons demonstrate the speedup in the execution time of the benchmarks after using our proposed approaches
عنوان اصلی به زبان دیگر
عنوان اصلي به زبان ديگر
Parallelizing and Vectorizing Multi-Dimensional Nested Loops in Multicore Processors
نام شخص به منزله سر شناسه - (مسئولیت معنوی درجه اول )