ارایه روشی برای افزایش کارایی پردازش تصاویر بوسیله مدل نگاشت کاهش- قسمت ۱۰

*

 

 

فصل چهارم
روش تحقیق

 

روش تحقیق

 

 

مقدمه

 

برای استفاده بهینه از منابع موجود و دستیابی به بالاترین کارایی ممکن، ابتدا باید با بررسی سیستم، حالت هایی که سیستم در آن کارایی بالاتری دارد را یافته و برنامه را در همان شرایط اجرا کرد. بنابراین ابتدا باید پارامترهای تاثیرگذار در کارایی را یافته و اثر هر یک را مورد بررسی قرار داد. لذا ما با بررسی و تحلیل تحقیقات پیشین، پارامترهای موثری که محققان بیشتر مورد بررسی و توجه قرار داده‌بودند را استخراج کردیم. همچنین با بررسی ادبیات موضوع دریافتیم ضمن اینکه برخی از پارامترها پیشتر بررسی شده است، برخی نیز هنوز بررسی نشده‌اند. بدین ترتیب سعی کردیم به مدل جامعتری برسیم که با درنظر گفتن پارامترهای بیشتر، ابعاد بیشتری از مساله را تحلیل کنیم.

 

برای دانلود متن کامل پایان نامه به سایت tinoz.ir مراجعه کنید.

 

انتخاب پارامترها

 

همانطور که مشاهده شد در خلاصه ای از پژوهش هایی که در زمینه پردازش تصویر با مدل برنامه نویسی نگاشت‌کاهش انجام شده است، ارائه شده است. با تحلیل و بررسی پارامترهای تاثیرگذار در سرعت و کارایی پردازش ها در نهایت پارامترهای زیر برای بررسی و ارزیابی انتخاب شدند:

 

 

    • مقیاس پذیری[۹۱]

 

    • تعداد Map Taskهایی که بطور همزمان روی هر ماشین اجرا می شوند

 

    • حجم قطعات تصاویر

 

    • تعداد تکرار داده ها روی شبکه[۹۲]

 

  • حجم داده مورد بررسی[۹۳]

 

مقیاس پذیری

 

هدف ما از بررسی این پارامتر یافتن نحوه اجرای برنامه با تغییر و توسعه زیرساخت سخت افزاری آن است. اینکه آیا با افزایش قدرت سخت افزاری سرعت اجرا بیشتر می شود؟ آیا به صرفه است که برای رسیدن به سرعت بالاتر هزینه بیشتری برای ارتقای محیط سخت‌افزاری کرد؟ آیا می توان از سخت افزار موجود بطور بهینه تری استفاده کرد؟ این پارامتر به سه روش مختلف مورد ارزیابی قرار گرفته است.

 

SCALE UP

 

این تغییر مقیاس که به آن تغییر مقیاس عمودی[۹۴] نیز گفته می شود، به معنی افزودن منابع به یک گره (Node) از سیستم – به طور نمونه ارتقای پردازنده یا رسانه ذخیره سازی در یک کامپیوتر- می باشد [۴۶].

 

SCALE IN

 

این حالت که بیشتر در مورد اجرای چندین نخ[۹۵] روی ماشین‌های چند هسته‌ای[۹۶] مطرح می‌شود [۴۷] در این بخش بصورت اجرای تعداد ماشین‌های مختلف در یک کلاستر ثابت مورد بررسی قرار گرفته‌است. بطوریکه قدرت سخت افزاری کلاستر اصلی ثابت است ولی در هر مرحله تعداد و قدرت ماشین‌های مجازی که روی آن کلاستر ایجاد شده‌اند تغییر می کند.

 

SCALE OUT

 

این تغییر مقیاس که به آن تغییر مقیاس افقی[۹۷] نیز گفته می شود، به معنی افزایش گره‌های بیشتر به سیستم است. به عنوان مثال می توان از افزایش تعداد وب سرورها از یک به سه عدد نام برد [۴۶].

 

تعداد Map Taskهای همزمان

 

هدف از بررسی این پارامتر بررسی تاثیر افزایش تعداد کارهای همزمان در هر ماشین بر مدت زمان پردازش و یافتن حالتی که طی آن به کارایی بالاتری برسیم.

 

حجم قطعات تصاویر

 

هدف از بررسی این پارامتر این است که دریابیم آیا حجم قطعاتی که یک تصویر بزرگ باید به آن تقسیم شود در افزایش یا کاهش سرعت اجرای برنامه موثر است یا نه. در صورتی که موثر باشد میزان افزایش یا کاهش سرعت به چه صورت است.

 

تعداد تکرار داده ها روی شبکه

 

هدف از بررسی این پارامتر یافتن نحوه تغییر سرعت اجرای برنامه با تغییر تعداد تکرار داده های ورودی است.

 

حجم داده مورد بررسی

 

با بررسی این پارامتر به این نتیجه می توان رسید که با داشتن یک کلاستر و افزایش حجم داده های مورد بررسی، سرعت اجرای برنامه به چه صورتی تغییر می‌کند. آیا سیستم موجود قادر به پردازش داده های افزایش یافته است یا خیر و یا نیاز به تقویت کلاستر وجود دارد.
برای بررسی هر یک از پارامترهای فوق باید یک الگوریتم پردازش تصویر را طبق ساختار مدل برنامه نویسی نگاشت‌کاهش پیاده سازی و اجرا کرد. سپس اثر پارامترهای فوق را برروند اجرای برنامه بررسی کرد.

 

برنامه مورد استفاده

 

در این پژوهش ما برای بررسی تاثیر پارامترهای مذکور نیاز به یک برنامه پردازش تصویر داریم. با توجه به اینکه در بسیاری از پژوهش‌ها معمولا از برنامه های Benchmark که از قبل آماده شده اند استفاده می شود. اما ما در این پژوهش، برنامه پردازش تصویر تشخیص لبه را روی پلتفرم هدوپ پیاده سازی و اجرا کرده‌ایم.
ﻟﺒﻪ ﻫﺎﻱ ﻳﻚ ﺗﺼﻮﻳﺮ ﺳﺎﺧﺘﺎﺭ ﺍﺷﻴﺎء درون ﺁﻥ تصویر ﺭﺍ ﻧﺸﺎﻥ ﻣﻲ ﺩﻫند. تشخیص لبه ﻳﻚ ﻣﺮﺣﻠﻪ ﭘﻴﺶ ﭘﺮﺩﺍﺯﺵ ﻣﻬﻢ جهت ﺁﺷﻜﺎﺭﺳﺎﺯﻱ این اشیاء در پردازش تصاویر است. از لحاظ فنی در لبه‌ها یک تغییر رنگ شدید در راستایی از تصویر رخ می‌دهد. نتیجه‌ی اعمال برنامه تشخیص لبه بر یک تصویر، همانطور که در نشان داده شده است مجموعه‌ای از منحنی‌های به هم پیوسته است که نشان دهنده‌ی مرزهای یک شی است [۴۸].

 

 

 

 

 

 

 

 

 

 

شکل ‏۴‑۱: نتیجه اجرای برنامه تشخیص لبه روی تصاویر

 

همانطور که بیان شد برنامه پردازش تصویر فوق روی پلتفرم هدوپ پیاده سازی شده‌است. با توجه به اینکه هدوپ در اصل برای پردازش متن طراحی شده است، باید تغییراتی در کلاسهای جاوا اعمال شود تا بتوان از آن برای پردازش تصاویر نیز بهره برد [۳۵]. در این پژوهش ما از یک رابط متن باز برای پردازش تصاویر در هدوپ استفاده کرده‌ایم. این رابط باعث می‌شود که بسیاری از جزئیات تکنیکی مربوط به کار با تصاویر در هدوپ از دید کاربر مخفی شود و سیستم، انعطاف پذیری بیشتری در پیاده‌سازی برنامه های پردازش تصویر داشته باشد و کاربر بتواند با تمرکز بیشتری برنامه‌های خود را ایجاد کند. این رابط که HIPI [۹۸] نام دارد یک کتابخانه انعطاف‌پذیر برای ایجاد برنامه های پردازش تصویر در قالب چارچوب هدوپ ارائه می دهد بطوریکه برنامه های تولید شده قابلیت اجرای موازی را داشته و تعادل بار روی شبکه بدون دخالت کاربر بطور خودکار مدیریت می‌شود [۴۹].
همانطور که در نشان داده شده است در برخی از مقالات مانند[۳۱] و[۳۲] برای پردازش تصاویر در محیط هدوپ، مقادیر پیکسل‌های تصاویر را به فایل متنی تبدیل می‌کند. این کار علاوه بر صرف زمان برای تبدیل تصویر به داده متنی، حجم داده‌ی روی دیسک را به شدت افزایش می‌دهد. برخی دیگر مانند [۴۰] و [۴۲] فایل تصویری را به Sequence File تبدیل می کند. در این حالت نیز علاوه بر صرف زمان برای ایجاد این فایل، وظیفه برنامه نویس پیچیده بوده و ایجاد و پردازش اینگونه فایل‌ها بعهده برنامه نویس است. برخی دیگر نیز مانند [۳۳] و [۳۵] یک کلاس خاص برای پردازش تصاویر در هدوپ پیاده سازی کرده‌اند.
مهمترین مزایای HIPI به گفته طراحان آن عبارتند از عدم افزایش حجم داده روی دیسک، دستیابی آسانتر به مقادیر پیکسل‌ها بدون نیاز به کد نویسی اضافی، انعطاف پذیری بالا در برنامه نویسی و عدم کاهش سرعت اجرای برنامه‌هاست. لذا در این روش، برنامه نویس با دسترسی به مقادیر پیکسل‌ها و بدون توجه به پیچیدگی‌های کار با تصاویر در هدوپ، تمرکز بیشتری روی ایجاد برنامه خود دارد.
در بخش بعد برنامه پردازش تصویر مورد نظر در حالت‌های مختلف اجرا و اثر هر یک از پارامترهای مذکور به تفصیل مورد تحلیل و بررسی قرار گرفته‌است.

 

بررسی پارامترها

 

در این قسمت در قالب سناریوهایی به بررسی هر یک از پارامترهایی که پیشتر بیان شد می پردازیم.

 

سناریو اول: تاثیر مقیاس پذیری عمودی(Scale Up) بر زمان پردازش

 

 

 

  • شرح سناریو:

 

در بررسی این پارامتر با افزودن منابع به یک ماشین نحوه تغییر سرعت پردازش را مورد بررسی قرار می دهیم. اینکه افزودن منابع به یک ماشین سرعت پردازش را در این مدل برنامه نویسی به چه صورتی افزایش می دهد. آیا افزودن منابع برای رسیدن به سرعت بالاتر به صرفه است یا نه؟ همانطور که در نشان داده شده است در این حالت، ماشین بصورت عمودی ارتقا پیدا می‌کند.

شکل ‏۴‑۲: تغییر مقیاس عمودی
[منبع [۵۰]]
در بررسی این پارامتر ماشینی داریم که سه بار پردازنده و حافظه اصلی آن را طبق افزایش داده و برنامه را روی آن اجرا می‌کنیم. همچنین علاوه بر اینکه هر بار برنامه را روی پلتفرم هدوپ اجرا می‌کنیم، برنامه را یکبار هم بصورت سریال روی ماشین مورد نظر اجرا می‌کنیم تا تاثیر افزایش منابع بر سرعت اجرا در این دو مدل برنامه نویسی را نیز مقایسه کنیم. حجم داده مورد بررسی GB20 و شامل ۱۰۰۰۰ عدد تصویر با حجم های مختلف است.
جدول ‏۴‑۱: مشخصات سیستم برای بررسی مقیاس پذیری عمودی

 

 

 

 

 

مطالب مرتبط

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *