Abstract
MapReduce is a very popular programming model to support parallel and distributed large-scale data processing. There have been a lot of efforts to implement this model on commodity GPU-based systems. However, most of these implementations can only work on a single GPU. And they can not be used to process large-scale datasets. In this paper, we present a new approach to design the MapReduce framework on GPU clusters for handling large-scale data processing. We have used Compute Unified Device Architectures (CUDA) and MPI parallel programming models to implement this framework. To derive an efficient mapping onto GPU clusters, we introduce a two-level parallelization approach: the inter node level and intra node level parallelization. Furthermore in order to improve the overall MapReduce efficiency, a multi-threading scheme is used to overlap the communication and computation on a multi-GPU node. Compared to previous GPU-based MapReduce implementations, our implementation, called GCMR, achieves speedups up to 2.6 on a single node and up to 9.1 on 4 nodes of a Tesla S1060 quad-GPU cluster system for processing small datasets. It also shows very good scalability for processing large-scale datasets on the cluster system
چکیده
MapReduce یک مدل برنامه نویسی بسیار محبوب برای حمایت از پردازش داده در مقیاس بزرگ، موازی و توزیع شده میباشد. تلاش های بسیاری برای پیاده سازی این مدل در سیستم های مبتنی بر GPU انجام شده است. با این حال، بسیاری از این پیاده سازی ها تنها می توانند بر روی GPU تک کار کنند. و آنها نمی توانند برای پردازش مجموعه داده ها در مقیاس بزرگ مورد استفاده قرار گیرند. در این مقاله، ما یک رویکرد جدید برای طراحی چارچوب MapReduce در خوشه های GPU برای کنترل پردازش داده ها در مقیاس بزرگ ارائه میدهیم. ما محاسبه معماری دستگاه متحد (CUDA) و مدل های برنامه نویسی موازی MPI را برای پیادهسازی این چارچوب استفاده کرده ایم. برای استخراج نگاشت کارآمد بر روی خوشه های GPU، ما یک رویکرد موازی دو سطحی را معرفی می کنیم: سطح گره میانی و سطح گره داخلی موازی. علاوه بر این به منظور بهبود بهره وری MapReduce به طور کلی، یک طرح چند نخی برای تداخل ارتباطات و محاسبات در یک گره با چند GPU استفاده می شود . در مقایسه با پیاده سازی های MapReduce مبتنی بر GPU قبلی، اجرای ما، به نام GCMR، تا 2.6 در یک گره تک و تا 9.1 در 4 گره از یک سیستم خوشه ای با چهار GPU ، Tesla S1060 برای پردازش مجموعه داده های کوچک افزایش سرعت داشته است. این رویکرد مقیاس پذیری بسیار خوبی برای پردازش مجموعه های داده در مقیاس بزرگ در سیستم خوشه ای را نیز نشان می دهد.
-1مقدمه
MapReduce یک چارچوب بسیار محبوب برنامه نویسی موازی ، که ابتدا توسط گوگل [4] پیشنهاد شد، برای پردازش مجموعه داده ها در مقیاس بزرگ میباشد. نگاشت و کاهش دو تابع اصلی در چارچوب MapReduce هستند. در پروسیجر نگاشت، مجموعه داده ورودی به تکه های کوچکتر تقسیم و به تمام گره های محاسبه برای پردازش توزیع میشود. تابع کاهش رکوردها را با کلید یکسان جمع آوری خواهد کرد و آنها را به عنوان یک رکورد ورودی پردازش میکند. چارچوب MapReduce به طور گسترده در عمل استفاده شده است. مثالها عبارتند از محاسبات علمی [3]، عملیات پایگاه داده [15]، [1]، پردازش تصویر [8]، و بیوانفورماتیک [9]…