1-2- اهمیت تحقیق…………………….. 3
1-3- هدف تحقیق…………………….. 4
1-4- گفتارهای پایان نامه……………………. 5
2- مبانی نظری تحقیق……………………… 7
2-1- رایانش ابری…………………….. 7
2-1-1- ویژگیهای اساسی رایانش ابری: ……………………8
2-1-1-1- دسترسی سلف سرویس و بنا به تقاضا: ……………………8
2-1-1-2- دسترسی تحت شبکه: ……………………8
2-1-1-3- تجمیع منابع:……………………8
2-1-1-4- انعطاف پذیری سریع:…………………… 8
2-1-1-5- خدمات اندازه گیری شده:…………………… 9
2-1-2- مدلهای سرویس دهی رایانش ابری: ……………………9
2-1-2-1- نرم افزار بعنوان سرویس:…………………… 9
2-1-2-2- پلتفرم بعنوان سروریس:…………………… 9
2-1-2-3- زیرساخت بعنوان سرویس:…………………… 9
2-1-3- مدلهای خدمات رایانش ابری: ……………………10
2-1-3-1- ابر عمومی:…………………… 10
2-1-3-2- ابر خصوصی: ……………………10
2-1-3-3- ابر گروهی:…………………… 10
2-1-3-4- ابر ترکیبی:…………………… 10
2-2- نگاشتکاهش………………………. 10
2-3- آپاچی هدوپ…………………….. 13
2-3-1- فایل سیستم توزیع یافته هدوپ …………………… 15
2-3-2- چارچوب نگاشتکاهش…………………… 17
3- مروری بر تحقیقات انجام شده……………………. 20
4- روش تحقیق……………………… 40
4-1- مقدمه……………………. 40
4-2- انتخاب پارامترها…………………… 40
4-2-1- مقیاس پذیری…………………….. 41
4-2-1-1- Scale up……………………..
4-2-1-2- Scale in……………………..
4-2-1-3- Scale out……………………
4-2-2- تعداد Map Taskهای همزمان…………… 41
4-2-3- حجم قطعات تصاویر…………………… 42
4-2-4- تعداد تکرار داده ها روی شبکه……………………. 42
4-2-5- حجم داده مورد بررسی…………………….. 42
4-3- برنامه مورد استفاده……………………. 42
4-4- بررسی پارامترها…………………… 44
4-4-1- سناریو اول: تاثیر مقیاس پذیری عمودی(Scale Up) بر زمان پردازش……… 44
4-4-2- سناریو دوم: بررسی تاثیر مقیاس پذیری (Scale in) بر زمان پردازش………… 47
4-4-3- سناریو سوم: بررسی تاثیر حجم قطعات تصاویر بر زمان پردازش……………. 52
4-4-4- سناریو چهارم: بررسی تاثیر تعداد Map Task های همزمان بر زمان پردازش………. 55
4-4-5- سناریو پنجم: بررسی تاثیر تعداد تکرار تصاویر بر زمان پردازش……………………… 58
4-4-6- سناریو ششم: بررسی پارامتر حجم دادهها…………………… 63
4-4-7- سناریو هفتم: تاثیر مقیاس پذیری افقی(Scale Out) بر زمان پردازش…………… 65
4-5- نتایج…………………….. 68
5- بررسی و تحلیل یافتههای تحقیق……………………… 71
6- نتیجهگیری و پیشنهادها ……………………77
چکیده:
پردازش مالتی مدیا و بطور خاص پردازش تصویر از زمینههای پرکاربردی است که در آن ما با حجم بسیار بالایی از دادهها مواجه هستیم و به شدت از سوی محققان نیز مورد توجه قرار گرفته است. با افزایش حجم تصاویر و نیز گسترش و توسعهی انواع مختلف برنامهها نیاز به کامپیوترهای غول پیکر و پردازش موازی برای پردازش این حجم از دادهها احساس میشود. نوعی از پردازشهای موازی که امروزه به شدت طرفدار پیدا کرده است، پردازش توزیع شده است که طی آن پردازشها بین ماشینها تقسیم و به موازات هم اجرا میشوند. همچنین مدل برنامهنویسی که امروزه بعنوان راهحلی برای بسیاری از مسائل Big Data ارائه شده و روی محیط توزیع شده نیز مورد استفاده قرار میگیرد مدل برنامهنویسی نگاشتکاهش است. این مدل برنامه نویسی، از نوع خاصی از مسائل توزیعپذیر که روی حجم بسیار بالایی از دادهها و روی شبکهای از کامپیوترها اجرا میشوند پشتیبانی میکند. در این پژوهش که به بررسی پردازش تصویر توزیع شده میپردازیم، با یافتن پارامترهای تاثیرگذار بر سرعت پردازش در محیط توزیع شده به بررسی تاثیر آنها بر روی مسائل پردازش تصویر در مدل نگاشتکاهش پرداختهایم. این روش منجر به چارچوبی حاوی پارامترهایی شدهاست که با بررسی تاثیر آنها میتوانیم نوعی مدل انتزاعی برای استقرار بهینه نرم افزارها در محیط توزیع شده پیشنهاد بدهیم. استفاده بهینه از منابع باعث اجرای کاراتر برنامهها در محیط توزیعشده میشود و سرعت پردازش را به میزان قابل توجهی افزایش میدهد. در این پژوهش طبق مدل ارائه شده سرعت پردازش 17.9 برابر افزایش یافت.
فصل اول: مقدمه
1- مقدمه
1-1- کلیات
امروزه با افزایش روشهای مختلف اخذ اطلاعات گسسته مانند دوربینهای دیجیتال، پویشگرها و ماهوارهها، پردازش تصویر کاربرد فراوانی یافتهاست. از زمینههای پر کاربرد پردازش تصویر میتوان نجوم، زیست شناسی و پزشکی را نام برد. پردازش تصاویر ارسالی از ماهوارهها و تشخیص پلاک اتومبیلها از نمونههای کاربردی و شناختهشدهی مسائل پردازش تصویر هستند.
با افزایش کاربردهای تصاویر رقمی[1] در حوزههای مختلف، هر روز بر حجم تصاویر موجود در پایگاههای داده افزوده می شود. در پردازش تصاویر ارسالی از ماهوارهها حجم وسیعی از تصاویر برای پردازش ارسال میشوند که برای پردازش این حجم وسیع از تصاویر، نیاز به کامپیوترهای قدرتمندی است تا با سرعت بالایی تصاویر دریافتی را پردازش کنند. در سالهای اخیر تلاشهای بسیاری در زمینهی پردازش دادههای حجیم صورت گرفتهاست. در این بین، پردازش موازی و بطور خاص پردازش توزیع شده یکی از پر طرفدارترین این روشها میباشد.
در بیشتر روشهای توزیع شده برای پردازش دادهها، برنامه نویس باید دانش کافی در برنامه نویسی و شبکه داشته باشد و نیز بتواند مسائل مربوط به زمان اجرا را مدیریت و برطرف کند کهاین کار نیازمند تخصص و مهارت بالایی در برنامه نویسی و مباحث شبکهاست. لذا روشهایی که در آن کاربر بتواند با سهولت بیشتری برنامههایش را ایجاد و اجرا کند بسیار مورد استقبال قرار میگیرد.
یکی از تکنولوژیهایی که امروزه توجه بسیاری را به خود جلب کرده و تحول بزرگی در بسیاری از زمینههای مختلف کامپیوتری به ارمغان آوردهاست رایانش ابری است. ابرها بسیاری از نیازها در زمینهی فناوری اطلاعات را بصورت یک سرویس ارائه میدهند که این سرویس از طریق اینترنت قابل دسترسی است. در این پژوهش به بررسی چالشهایی که کاربران برای اجرای مسائل پردازش تصویر خود در روی ابر و افزایش کارایی آن مواجهند میپردازیم و هدف این پژوهش ارائه روشی برای افزایش کارایی پردازش تصاویر در روی ابر که یک محیط توزیع شدهاست ارائه میشود. بطوریکه طی آن کاربر بتواند برنامههای خود را بصورت بهینه تر و کاراتری تولید، اجرا و مدیریت کند.
2-1- اهمیت تحقیق
با توجه به گستردگی کاربردهای پردازش تصویر در زمینههای مختلف، و نیز با روند کنونی افزایش حجم تصاویر، برای پردازش این حجم از دادهها در زمان مناسب، نیاز به سرعت بسیار بالایی داریم. لذا ناگزیر به استفاده از ماشینهای غولپیکر و پردازش موازی[2] برای پردازش این حجم از دادهها هستیم. در پردازش موازی، ماشینی با چندین پردازنده[3] یا چندین هستهی پردازنده[4]، برنامه داده شده را اجرا میکند [1]. پردازندههای چند هستهای[5] از نمونهی این نوع پردازندهها هستند. علاوه براین با اتصال کامپیوترهای تک پردازنده[6] و تک هسته[7] و ایجاد یک شبکه نیز میتوان پردازش موازی انجام داد. این کار بکمک نرم افزارهای توزیع شده صورت میپذیرد و بهاین نوع از پردازش موازی، اصطلاحا پردازش توزیع شده[8] میگویند[2].
بسیاری از سازمانها به دلایل مختلفی همچون هزینههای بالای خرید و نگهداری و نیاز به متخصصان و . . . قادر به فراهم سازی کامپیوترهای غول پیکر برای اجرای برنامهها بصورت موازی نیستند. لذا پردازش توزیع شده بسیار مورد توجه محققان و نیز سازمانها قرار گرفتهاست.
بطور معمول در برخی از روشهای توزیع شده برنامه نویس باید مهارت بالایی در برنامه نویسی و مدیریت خطاهای هنگام اجرا روی شبکه داشته باشد. برنامه نویس علاوه بر تمرکز روی هدف اصلی برنامه، باید مشکلات احتمالی هنگام اجرای برنامه را نیز پیش بینی و برای آنها راه حل بیاندیشد. بعنوان مثال کاربر باید بتواند پردازشها را بطور مناسب بین ماشینها تقسیم و مدیریت کند و اگر در حین اجرای برنامه یکی از ماشینها به هر علتی متوقف شود باید بتوان وظایف آن ماشین را بدون توقف برنامه، به ماشینهای دیگر سپرد و دادههای رویش را نیز بازیابی کرد. همچنین گاهی ممکن است قدرت ماشینهای یک سیستم توزیع شده با هم برابر نبوده و ماشینها با سرعتهای مختلف وظایفشان را انجام دهند. لذا برنامه نویس باید بتواند بطور متعادلی توزیع بار[9] پردازشی را روی ماشینهای شبکه انجام دهد. بنابراین استفاده از روشی که بتواند برنامه نویس را در ایجاد و اجرای برنامههایش یاری رساند بسیار مفید و موثر خواهد بود. همچنین در پردزاش دادههای حجیم، زمان، فاکتور مهمیبوده و یافتن روشهایی که باعث کاهش زمان اجرای برنامهها شود، از اهمیت بالایی برخوردار است.
3-1- هدف تحقیق
یکی از روشهایی که مشکلات فوق را حل میکند استفاده از مدل برنامه نویسی نگاشتکاهش[10] است. وظیفهی این مدل برنامه نویسی که توسط گوگل[11] معرفی شد، پردازش حجم بالایی از دادهها به شکلی موازی است [3, 4]. مدل برنامه نویسی نگاشتکاهش به برنامه نویسان اجازه میدهد تا با نوشتن توابعی، دادهها را پردازش کنند. دو تابع اصلی در این مدل برنامه نویسی وجود دارد. یکی تابع نگاشت[12] و دیگری تابع کاهش[13] نام دارد. تابع نگاشت داده ورودی را پردازش و نتایج میانی را تولید میکند. تابع کاهش نتایج میانی را تحلیل و نتایج نهایی را تولید میکند. یکی از ویژگیهای مفید این مدل این است که برنامهنویس بدون توجه به مسائل زمان اجرا که در قسمت قبل به آن اشاره شد، تمرکز خود را فقط بر روی برنامه و ایجاد توابع مورد نیاز معطوف میکند. هدف این پژوهش، پردازش تصاویر بصورت موازی با استفاده از مدل برنامه نویسی نگاشتکاهش و ارائه یک مدل استقرار بهینه برای اجرای برنامه ها در محیط توزیع شده است بطوریکه با استفاده بهینه از منابع پردازشی و رسیدن به بالاترین کارایی ممکن بکمک این مدل برنامه نویسی، سرعت پردازش را افزایش داد. با توجه به حجم وسیع دادهها در مسائل پردازش تصویر، نیاز به بهرهوری از منابع و سرعت بالا یک نیاز اساسی تلقی میشود. علاوهبراین بکمک مدل برنامه نویسی نگاشتکاهش حتی برنامه نویسانی که دانشی دربارهی برنامه نویسی تحت شبکه و مدیریت خطاها در شبکه ندارند نیز میتوانند برنامههای خود را با سهولت بیشتری ایجاد و روی محیط توزیع شده انتقال و اجرا کنند.
4-1- گفتارهای پایان نامه
این پایان نامه در شش فصل تهیه شدهاست. فصل اول شامل مقدمه، تشریح صورت مساله و بیان اهداف است. در فصل دوم مبانی نظری و مفهومیتحقیق، شامل مفاهیم علمیپایه و مستندات مرتبط با تحقیق شرح داده شدهاست. فصل سوم به بررسی تحقیقات پیشین و ارتباط منطقی میان اطلاعات پژوهشهای قبلی و مسالهی تحقیق میپردازد.
فصل چهارم، روش انجام تحقیق، ارائه مدل و زیرساخت بکار رفته را در بر میگیرد. فصل پنجم به مقایسه نتایج تحقیق با پژوهشهای پیشین میپردازد و در فصل ششم، نتیجه گیری ارائه میگردد .
[1] Digital
[2] Parallel Processing(Also Called Parallel Computing)
[3] CPU
[4] Processor Core
[5] Multi -Core Processor
[6] Single-Cpu
[7] Single-Core
[8] Distributed Processing(Also Called Distributed Computing)
[9] Load Balancing
[10] MapReduce Programming Model