Abstract
For modern high performance systems, aggressive technology and voltage scaling has drastically increased their susceptibility to soft errors. At the grand scale of cloud computing, it is clear that soft error induced failures will occur far more frequently, but it is unclear as to how to effectively apply current error detection and fault tolerance techniques in scale. In this paper, we focus on energy-aware fault tolerant scheduling in public, multi-user cloud systems, and explore the three-way tradeoff between reliability (in terms of soft error resiliency), performance and energy. Through a systematically optimized resource allocation, error detection approach selection, virtual machine placement, spatial/temporal redundancy augmentation and task scheduling process, the cloud service provider can achieve high error coverage and fault tolerance confidence while minimizing global energy costs under user deadline constraints. Our scheduling algorithm includes a static scheduling phase that operates on task graph based workload inputs prior to execution, and a light-weight dynamic scheduler that migrates tasks during execution in case of excessive reexecutions. All schedules are evaluated on a runtime simulation engine that (1) mimics the performance fluctuations in cloud systems, and (2) supports the injection of arbitrary fault patterns. Compared to current virtual machine or task replication techniques, we are able to reduce overall application failure rates by over 50% with approximately 76% total energy overhead
چکیده
امروزه وجود فناوری های پرتکاپو و مسئله ی مقیاس بندی ولتاژ، در سطح قابلملاحظهای منجر به افزایش حساسیت سیستمهای مدرن و با کارائی بالای امروزی به خطاهای نرم گردیده است. بدیهی است که در مقیاس بزرگی از رایانش ابری، اشتباهات ناشی از خطای نرم به کرار رخ میدهد ولی مشخص نیست که چطور میتوان از تکنیکهای تحملپذیر در برابر خطا و همچنین تکنیکهای تشخیص خطا در محیط های ابری با این مقیاس گسترده استفاده کرد. در این مقاله قصد داریم تا بر روی یک چارچوب زمانبندیِ تحملپذیر در برابر خطا و آگاه از نظر میزان انرژی در سیستمهای ابری عمومی و چند لایهای متمرکز شویم و به بررسی و کاوش سه حالت موازنه و سبکسنگینی که میتواند بین قابلیت اطمینان ( بر حسب تابآوری خطای نرم)، کارائی و انرژی پدید آید بپردازیم. از این رو یک سرویسدهندهی ابری میتواند با استفاده از یک روش سامانمند و بهینه سازی شده برای تخصیص منبع، انتخاب روش مناسبی برای تشخیص خطا، گمارش ماشین مجازی، تقویت افزونگی فضایی/زمانی و فرایند زمانبندی وظیفه، به کمینهسازی هزینههای انرژی مصرفی برای اجرای اپلیکیشن ها و آنهم تحت محدودیتهای مهلت زمانی کاربر بپردازد. الگوریتم زمانبندی ما، شامل یک فاز زمانبندی ایستا بوده که بر مبنای ورودیهای بار کاری، بر روی یک گراف وظیفه کار کرده و همچنین این الگوریتم شامل یک زمانبند پویای سبکوزن بوده که در طول اجرای الگوریتم، در صورتی که وظایف در سطح زیادی مجدد اجرا شدند، آنها را جابجا میکند. همهی زمانبندیها بر روی یک موتور شبیهسازی در زمان اجرا مورد ارزیابی قرار میگیرد، به طوری که این موتور، اولا از نوسانات کارائی در سیستمهای ابری تقلید کرده و ثانیا از تزریق الگوهای خطای دلخواه نیز پشتیبانی میکند. در مقایسه با تکنیکهای تکثیر وظیفه و یا ماشین مجازی، میتوانیم نرخ خطای کاربرد کلی را به میزان 50% کاهش داده و تقریباً 76% از سربار انرژی کلی را کاهش دهیم.
1-مقدمه
با توجه به افزایش مقیاس ولتاژ و فناوری CMOS (فناوری نیمه های اکسید فلزی تکمیلی) در سیستمهای رایانشی مدرن، تابآوری و برگشت پذیری از خطای نرم به یکی از نگرانیهای اصلی در این سیستمها مبدل گشته است [1]. خطاهای نرم به دلیل وجود خطاها و معایبی موقت و متناوب ( که از این به بعد آنها را خطا نامگذاری میکنیم) ناشی از نویز، ذرات کیهانی با مصرف انرژی بالا و فرسودگی سختافزاری رخ میدهند. با توجه به اینکه این خطاها در سرتاسر سیستم تکثیر و پخش میشوند، شکلهای مختلفی مانند خروجیهای معیوب و یا بروز اختلال در عملکرد کلی سیستم را به خود میگیرند...