فهرست نشانه‌های اختصاری
HDFS Hadoop Distributed File System
GFS Google File System
GPGPU General Purpose Graphics Processing Units
IaaS Infrastructure as a Service
PaaS Platform as a Service
SaaS Software as a Service
VM Virtual Machine
فصل اول
مقـدمه
مقدمه
کلیات
امروزه با افزایش روش‌های مختلف اخذ اطلاعات گسسته مانند دوربین‌های دیجیتال، پویشگرها و ماهواره‌ها، پردازش تصویر کاربرد فراوانی یافته‌است. از زمینه‌های پر کاربرد پردازش تصویر می‌توان نجوم، زیست شناسی و پزشکی را نام برد. پردازش تصاویر ارسالی از ماهواره‌ها و تشخیص پلاک اتومبیل‌ها از نمونه‌های کاربردی و شناخته‌شده‌ی مسائل پردازش تصویر هستند.
با افزایش کاربردهای تصاویر رقمی[۱] در حوزه‌های مختلف، هر روز بر حجم تصاویر موجود در پایگاه‌های داده افزوده می شود. در پردازش تصاویر ارسالی از ماهواره‌ها حجم وسیعی از تصاویر برای پردازش ارسال می‌شوند که برای پردازش این حجم وسیع از تصاویر، نیاز به کامپیوترهای قدرتمندی است تا با سرعت بالایی تصاویر دریافتی را پردازش کنند. در سال‌های اخیر تلاش‌های بسیاری در زمینه‌ی پردازش داده‌های حجیم صورت گرفته‌است. در این بین، پردازش موازی و بطور خاص پردازش توزیع شده یکی از پر طرفدارترین این روش‌ها می‌باشد.
پایان نامه
در بیشتر روش‌های توزیع شده برای پردازش داده‌ها، برنامه نویس باید دانش کافی در برنامه نویسی و شبکه داشته باشد و نیز بتواند مسائل مربوط به زمان اجرا را مدیریت و برطرف کند که‌این کار نیازمند تخصص و مهارت بالایی در برنامه نویسی و مباحث شبکه‌است. لذا روش‌هایی که در آن کاربر بتواند با سهولت بیشتری برنامه‌هایش را ایجاد و اجرا کند بسیار مورد استقبال قرار می‌گیرد.
یکی از تکنولوژی‌هایی که امروزه توجه بسیاری را به خود جلب کرده و تحول بزرگی در بسیاری از زمینه‌های مختلف کامپیوتری به ارمغان آورده‌است رایانش ابری است. ابرها بسیاری از نیازها در زمینه‌ی فناوری اطلاعات را بصورت یک سرویس ارائه می‌دهند که این سرویس از طریق اینترنت قابل دسترسی است. در این پژوهش به بررسی چالش‌هایی که کاربران برای اجرای مسائل پردازش تصویر خود در روی ابر و افزایش کارایی آن مواجهند می‌پردازیم و هدف این پژوهش ارائه روشی برای افزایش کارایی پردازش تصاویر در روی ابر که یک محیط توزیع شده‌است ارائه می‌شود. بطوریکه طی آن کاربر بتواند برنامه‌های خود را بصورت بهینه تر و کاراتری تولید، اجرا و مدیریت کند.
اهمیت تحقیق
با توجه به گستردگی کاربردهای پردازش تصویر در زمینه‌های مختلف، و نیز با روند کنونی افزایش حجم تصاویر، برای پردازش این حجم از داده‌ها در زمان مناسب، نیاز به سرعت بسیار بالایی داریم. لذا ناگزیر به استفاده از ماشین‌های غولپیکر و پردازش موازی[۲] برای پردازش این حجم از داده‌ها هستیم. در پردازش موازی، ماشینی با چندین پردازنده[۳] یا چندین هسته‌ی پردازنده[۴]، برنامه داده شده را اجرا می‌کند [۱]. پردازنده‌های چند هسته‌ای[۵] از نمونه‌ی این نوع پردازنده‌ها هستند. علاوه براین با اتصال کامپیوترهای تک پردازنده[۶] و تک هسته[۷] و ایجاد یک شبکه نیز میتوان پردازش موازی انجام داد. این کار بکمک نرم افزارهای توزیع شده صورت می‌پذیرد و به‌این نوع از پردازش موازی، اصطلاحا پردازش توزیع شده[۸] می‌گویند[۲].
بسیاری از سازمان‌ها به دلایل مختلفی همچون هزینه‌های بالای خرید و نگهداری و نیاز به متخصصان و . . . قادر به فراهم سازی کامپیوترهای غول پیکر برای اجرای برنامه‌ها بصورت موازی نیستند. لذا پردازش توزیع شده بسیار مورد توجه محققان و نیز سازمان‌ها قرار گرفته‌است.
بطور معمول در برخی از روش های توزیع شده برنامه نویس باید مهارت بالایی در برنامه نویسی و مدیریت خطاهای هنگام اجرا روی شبکه داشته باشد. برنامه نویس علاوه بر تمرکز روی هدف اصلی برنامه، باید مشکلات احتمالی هنگام اجرای برنامه را نیز پیش بینی و برای آن‌ ها راه حل بیاندیشد. بعنوان مثال کاربر باید بتواند پردازش‌ها را بطور مناسب بین ماشین‌ها تقسیم و مدیریت کند و اگر در حین اجرای برنامه یکی از ماشین‌ها به هر علتی متوقف شود باید بتوان وظایف آن ماشین را بدون توقف برنامه، به ماشینهای دیگر سپرد و داده‌های رویش را نیز بازیابی کرد. همچنین گاهی ممکن است قدرت ماشین‌های یک سیستم توزیع شده با هم برابر نبوده و ماشین‌ها با سرعت‌های مختلف وظایفشان را انجام دهند. لذا برنامه نویس باید بتواند بطور متعادلی توزیع بار[۹] پردازشی را روی ماشین‌های شبکه انجام دهد. بنابراین استفاده از روشی که بتواند برنامه نویس را در ایجاد و اجرای برنامه‌هایش یاری رساند بسیار مفید و موثر خواهد بود. همچنین در پردزاش داده‌های حجیم، زمان، فاکتور مهمی‌بوده و یافتن روش‌هایی که باعث کاهش زمان اجرای برنامه‌ها شود، از اهمیت بالایی برخوردار است.
هدف تحقیق
یکی از روش‌هایی که مشکلات فوق را حل می‌کند استفاده از مدل برنامه نویسی نگاشت‌کاهش[۱۰] است. وظیفه‌ی این مدل برنامه نویسی که توسط گوگل[۱۱] معرفی شد، پردازش حجم بالایی از داده‌ها به شکلی موازی است [۳, ۴]. مدل برنامه نویسی نگاشت‌کاهش به برنامه نویسان اجازه می‌دهد تا با نوشتن توابعی، داده‌ها را پردازش کنند. دو تابع اصلی در این مدل برنامه نویسی وجود دارد. یکی تابع نگاشت[۱۲] و دیگری تابع کاهش[۱۳] نام دارد. تابع نگاشت داده ورودی را پردازش و نتایج میانی را تولید می‌کند. تابع کاهش نتایج میانی را تحلیل و نتایج نهایی را تولید می‌کند. یکی از ویژگیهای مفید این مدل این است که برنامه‌نویس بدون توجه به مسائل زمان اجرا که در قسمت قبل به آن اشاره شد، تمرکز خود را فقط بر روی برنامه و ایجاد توابع مورد نیاز معطوف می‌کند. هدف این پژوهش، پردازش تصاویر بصورت موازی با بهره گرفتن از مدل برنامه نویسی نگاشت‌کاهش و ارائه یک مدل استقرار بهینه برای اجرای برنامه ها در محیط توزیع شده است بطوریکه با استفاده بهینه از منابع پردازشی و رسیدن به بالاترین کارایی ممکن بکمک این مدل برنامه نویسی، سرعت پردازش را افزایش داد. با توجه به حجم وسیع داده‌ها در مسائل پردازش تصویر، نیاز به بهره‌وری از منابع و سرعت بالا یک نیاز اساسی تلقی می‌شود. علاوه‌براین بکمک مدل برنامه نویسی نگاشت‌کاهش حتی برنامه نویسانی که دانشی درباره‌ی برنامه نویسی تحت شبکه و مدیریت خطاها در شبکه ندارند نیز می‌توانند برنامه‌های خود را با سهولت بیشتری ایجاد و روی محیط توزیع شده انتقال و اجرا کنند.
گفتارهای پایان نامه
این پایان نامه در شش فصل تهیه شده‌است. فصل اول شامل مقدمه، تشریح صورت مساله و بیان اهداف است. در فصل دوم مبانی نظری و مفهومی‌تحقیق، شامل مفاهیم علمی‌پایه و مستندات مرتبط با تحقیق شرح داده شده‌است. فصل سوم به بررسی تحقیقات پیشین و ارتباط منطقی میان اطلاعات پژوهش‌های قبلی و مساله‌ی تحقیق می‌پردازد.
فصل چهارم، روش انجام تحقیق، ارائه مدل و زیرساخت بکار رفته را در بر می‌گیرد. فصل پنجم به مقایسه نتایج تحقیق با پژوهش‌های پیشین می‌پردازد و در فصل ششم، نتیجه گیری ارائه می‌گردد .
فصل دوم
مبانی نظری تحقیـق
مبانی نظری تحقیق
رایانش ابری
امروزه دنیای فناوری اطلاعات و اینترنت روز به روز در حال گسترش و توسعه است. همسو با آن نیازهای دیگری مانند امنیت اطلاعات، پردازش سریع، صرفه‌جویی در زمان و هزینه و … اهمیت زیادی یافته است. لذا شرکت‌های کامپیوتری همواره به دنبال راهی برای رفع نیازهای کاربران و ارتقای خدمات خود بوده و در این میان شرکتهایی که خدمات بهتر و سریعتری ارائه دهند برنده‌ی این میدان خواهند بود. راه حلی که امروزه برای اینگونه مشکلات پیشنهاد می‌شود فناوری جدیدی است به نام رایانش ابری، که به شدت توسط شرکت‌های مختلف و نیز کاربران مورد استقبال واقع شده است.
در اواخر اولین دهه قرن ۲۱، شاهد توسعه و گسترش بسیار سریع فناوری جدیدی بنام رایانش ابری بوده‌ایم که بطور کلی مدل متفاوتی از رایانش را ارائه می‌کند. یک سیستم ابری در ساده‌ترین تعریف، ارائه‌ سرویس کامپیوتری روی اینترنت است. به جای آنکه تاسیسات و امکانات فناوری اطلاعات خود را برای نگهداری داده‌ها و یا نرم‌افزار هزینه کرده و بسازید، از امکانات شرکتهای دیگر استفاده می‌کنید. به عبارت دیگر شرکتهایی زیرساختهای خاصی درست می‌کنند که این امکانات را در اختیار شما قرار می‌دهند. بدین ترتیب شرکت شما از طریق اینترنت می‌تواند از داده‌ها و نرم‌افزار آنها استفاده کند. از این سیستم به نام ابر یا cloud نام برده می‌شود [۵].
هنوز تعریف استاندارد علمی‌که مورد قبول عام باشد، برای رایانش ابری ارائه نشده است. موسسه ملی فناوری و استانداردها ، رایانش ابری را اینگونه تعریف می‌کند: “رایانش ابری مدلی است برای داشتن دسترسی فراگیر و آسان و بنا به سفارش شبکه به مجموعه ای از منابع رایانشی پیکره بندی پذیر مثل: شبکه ها ، سرورها ، فضای ذخیره سازی ، برنامه های کاربردی و سرویس ها که بتوانند با کمترین کار و زحمت یا نیاز به دخالت فراهم کننده‌ی سرویس به سرعت فراهم شده یا آزاد (رها) گردد.”
رایانش ابری پنج مشخصه اساسی دارد و از سه مدل سرویس دهی و چهار مدل پیاده‌سازی تشکیل شده است که در قسمت زیر به معرفی آن می‌پردازیم [۶].
ویژگی‌های اساسی رایانش ابری:
دسترسی سلف سرویس و بنا به تقاضا[۱۴]:
مصرف کنندگان خدمات رایانش ابری، بنا به تقاضا، بدون نیاز به تماس مستقیم با نماینده فروش یا کارمند پشتیبانی فنی، با ورود به حساب کاربری خود از طریق یک وبسایت، می‌توانند به منابع رایانشی دسترسی یافته و از خدمات تدارک دیده، استفاده نمایند.
دسترسی تحت شبکه[۱۵]:
به دلیل تحت وب بودن خدمات ابری، به کمک هر وسیله متصل به اینترنت، می‌توان از این خدمات استفاده کرد؛ یک مرورگر وب در یک کامپیوتر شخصی، یک پایانه‌ی کامپیوتری و در مواردی حتی ابزارهای دستی مثل iPhone و Blackberry
تجمیع منابع[۱۶]:
در رایانش ابری منابعی که از نظر فیزیکی ممکن است در نقاط مختلفی قرار داشته باشند، در قالب مجموعه ای متمرکز و بصورت اشتراکی در معرض استفاده‌ی مصرف کنندگان قرار می‌گیرند.
انعطاف پذیری سریع[۱۷]:
فناوری رایانش ابری، انعطاف پذیری قابل توجهی در تامین و تدارک خدمات فراهم می‌کند؛ منابع بصورت پویا به درخواست‌ها تخصیص داده می‌شودکه این امر تخصیص یا آزادسازی سریع منابع متناسب با تغییر نیاز مصرف کنندگان را ممکن می‌سازد. به این ترتیب مشتریان خدمات می‌توانند در هر زمان، متناسب با نیازها و شرایط خود، بدون هیچ مقدمه‌ای، از خدمات بیشتر یا کمتری استفاده کنند.
خدمات اندازه گیری شده[۱۸]:
رایانش ابری، امکان کنترل و ثبت خودکار کلیه خدمات مورد استفاده و منابعی که به مشتریان تخصیص داده شده است را فراهم می‌کند. این امر، پیاده سازی مدل پرداخت به ازای استفاده را برای تامین کنندگان خدمات ممکن می‌سازد.
مدلهای سرویس دهی رایانش ابری:
نرم افزار بعنوان سرویس[۱۹]:
خدمات نرم افزاری رایانش ابری شامل برنامه های نرم افزاری است که از طریق وب در معرض استفاده مشتریان بالقوه قرار می گیرند. عدم نیاز به نصب برنامه و امکان تعریف سریع و آسان کاربران جدید و به کارگیری مدل پراخت بازای استفاده، این خدمات را به یک فرصت بزرگ برای افراد و سازمان ها تبدیل کرده است.نمونه ی شناخته شده ی این خدمات، پست الکترونیک تحت وب است.
پلتفرم بعنوان سروریس[۲۰]:
این خدمات، پلتفرم های آنلاینی برای ایجاد، تست و راه اندازی برنامه های تحت وب فراهم می کندکه می توانند با بهره گرفتن از ابزارهای برنامه نویسی و توسعه نرم افزار مبتنی بر مرورگر مورد استفاده قرار گیرند. در این روش دیگر نیازی به نصب و پیکربندی پلتفرم ها و ابزارها و برنامه های توسعه نرم افزار نیست.
زیرساخت بعنوان سرویس[۲۱]:

موضوعات: بدون موضوع  لینک ثابت


فرم در حال بارگذاری ...