ایده توزیع کار به منظور دستیابی به سرعت و به عبارت دیگر یک صرفه جویی در زمان قرن هاست که مدنظر بوده است. تاریخ پر است از این مثالها - تفکر در ساخت هرم ها، چیدن کتان در کشتزار و یا یورش گردانهای نظامی در جنگ که میتوانند به شما ایده بدهند. این ایده به طور طبیعی حتی پیش تر نیز وجود داشته که کندوی عسل یک مثال بارز از آن است. بسیاری از تکنیکهای مدرن علمی از قبیل میکرو آرایهها و 98-well plate نیز کارها را برای دستیابی به سرعت، توزیع میکنند. در اوایل قرن بیستم، کامپیوتر مثل شخصی بود که کارهای محاسباتی را که به صورت توزیع شده نیز قابل انجام بودند، به تنهایی انجام میداد (کارهایی از قبیل جدول بندی دادههای سرشماری).
به طور خلاصه یک گرید عبارتست از: محاسبه توزیع شده قابل توسعه در مقابل Platformهای ناهمگن چندگانه، سازمانها و مکان ها. اصطلاح قابل توسعه یا همان Scalable، به نیاز عملیاتی و مدیریتی منابع توزیع شده به صورت امن، برمی گردد.
همانگونه که در شکل زیر نشان داده شده است، کنترل یک گرید توسط نرم افزار Middleware، مدیریت میشود که یک مجموعه استاندارد سازگار از سرویسهای گرید را برای Applicationها فراهم میکند تا با منابع شبکه ای، محاسبه ای، اطلاعات و ذخایر داده به صورت امن تعادل داشته باشند.
بود که Applicationها توسط مهندسان و محققان، روی کلاسترهای محاسباتی با کارایی بالا اجرا میشدند.
گریدهای امروزی میتوانند در سازمانهای گوناگون از قبیل تحقیقات علمی، کشف داروها، تجزیه و تحلیل ریسکهای مالی، پیش بینی آب و هوا، طراحی، شبیه سازی، هوش تجاری و محیطهای پردازش تراکنش، در سرتاسر جهان یافت شوند.
همچنین از مشخصههای معمول گرید میتوان به موارد زیر اشاره کرد:
* مجازی سازی
* اشتراک گذاری منابع
* فراهم آوردن منابع پویا
1-2 مسأله گرید:
محاسبات توری بدین وسیله جدا کردن خود از محاسبات توزیعی از طریق تمرکز روی اشتراک گذاری منابع، هماهنگی، قابلیت مدیریت و کارایی بالا، به یک عنصر مهم در صنعت کامپیوتر تبدیل شده است.
تمرکز روی «اشتراک گذاری منابع»، مسأله گرید نامیده میشود که میتواند به عنوان مجموعه از مسایل مرتبط به هم با اشتراک گذاری منابع بین مجموعهای از گروهها تعریف شود.
2-2 گرید و مفاهیم دیگر از محاسبات توزیعی:
یکی از مشخصههای اساسی گرید، توانایی آن در مجازی سازی application ها، اطلاعات و منابع دیگر IT مانند شبکه ها، سرویس دهندهها و غیره میباشد.
مجازی سازی عبارتست از یک نمایش منطقی از منابعی که از مکان فیزیکی خود جدا شده اند. در حقیقت مجازی سازی، applicationها و منابعا طلاعاتی مرتبط به زیربنای IT را مجازی سازی میکند. توجه به این نکته مهم است که بسیاری از گریدهای امروزی، اغلب از منابع IT غیرمجازی ساخته شده اند.
همچنین گرید، از یک نوع معماری مشهور به نام معماری سرویس گرا (Service-Oriented Architecture) یا SOA برای ساختن و مدیریت applicationها حمایت و بهره برداری میکند.
معماری سرویس گرا (SOA)، یک روش برای معماری نرم افزار جهت حمایت از کارها و سرویسهای تکراری میباشد.
3-2 محاسبات توری چیست؟
محاسبات توری، برای اشخاص مختلف معانی مختلفی میتواند داشته باشد. یک دیدگاه کلی که اغلب به عنوان یک مقیاس برای قدرت گریدها استفاده میشود جایی است که کاربران یا لوازم الکتریکی از طریق پریزهای دیوار به الکتریسیته دسترسی پیدا میکنند بدون در نظر گرفتن اینکه الکتریسیته دقیقاً کجا و چگونه تولید میشود.
اگر از این دید به محاسبات توری نگاه کنیم، فرآیندی منتشر شونده است و کاربران شخصی یا اپلیکیشنهای مشتری، به منابع محاسباتی (پردازنده ها، حافظه، دیتا، برنامههای کاربردی و امثال آن) که مورد نیازشان است دسترسی دارند با آگاهی کم و یا بدون آگاهی از اینکه آن منابع کجا واقع شده اند و یا از چه تکنولوژیهای زیرین سخت افزار، سیستم عامل و غیره استفاده میکنند.
اگر این دیدگاه را به عنوان یک هدف نهایی در نظر بگیریم، قدمهای کوچکتر بسیاری وجود دارند که برای رسیدن به این هدف باید برداشته شوند. این قدمهای کوچک هر یک فواید خاص خود را دارند. بنابراین محاسبات توری میتواند به عنوان سفر در امتداد مسیری دیده شود که در این مسیر تکنولوژیهای متنوع و راه حلهای متنوع با هم ادغام میشوند و ما را به هدف نهاییمان نزدیکتر میکند. محاسبات توزیع شده تکنولوژیهایی را بنا میکند که در پشتیبانی برنامههای کاربردی سازمان گذر در حال تکاملند و این به اشتراک گذاشتن منابع در یک کلمه به معنی مجازی سازی است.
مجازی سازی از میان تکنولوژیها، پلتفرمها و سازمانها.
این نوع مجازی سازی فقط از طریق به کارگیری استانداردهای باز قابل دستیابی است. استاندارهای باز اطمینان میدهند که برنامههای کاربردی هر آنچه را که منابع اختصاصی میتوانند در اختیار آنها قرار دهند را میتوانند استفاده کنند.
محیطی که بتواند توانایی دسترسی به منابع به طور اشتراکی و شفاف را از میان یک محیط توزیع شده نامتجانس ایجاد کند، نه تنها به تکنولوژی نیاز دارد که منابع معین را مجازی سازی کند بلکه به تکنولوژیها و استانداردهایی در زمینه زمانبندی، امنیت، حسابداری، مدیریت سیستم و مانند آن نیاز خواهد داشت.
محاسبات توری میتواند به عنوان هر تنوع از سطوح مجازی سازی در امتداد یک پیوستار تعریف شود. این پیوستار در شکل زیر شرح داده شده است.
با شروع از پایین ترین قسمت سمت چپ ملاحظه میکنید که سیستمهای واحدی که از یکدیگر جدا هستند. مجازی سازی با توانایی تکه تکه کردن یک ماشین به ماشینهای مجازی شروع میشود. همین طور که در این طیف حرکت میکند شروع میکنید به مجازی سازی منابع مشابه.
مجازی سازی نه تنها برای سرویس دهندهها و پردازندهها به کار میرود بلکه برای حافظه، شبکهها و حتی برنامههای کاربردی نیز به کار برده میشود. با حرکت در این طیف به مجازی سازی منابع نامتشابه میرسیم. قدم بعدی یک مجازی سازی جسورانه تر است که نه تنها در یک مرکز دادهای خاص یا در یک دپارتمان است بلکه در سرتاسر یک سازمان توزیع شده صورت میپذیرد و سپس در آخر مجازی سازی فوق العاده جسورانهای صورت میگیرد یعنی مجازی سازی در سطح اینترنت. جایی که شما میتوانید دقیقاً به منابع یک مجموعه از و تهیه کنندگانشان دسترسی داشته باشید و یا ممکن است اطلاعات را در سرتاسر یک شبکه از شرکاء، ادغام کنید.
محاسبات توری شامل یک مجموعه در حال تکامل از استانداردهای باز برای سرویسهای وب و واسطهایی است که سرویسها و یا منابع محاسبات در دسترس روی اینترنت را میسازند. اگر توجهمان را روی محاسبات توزیع شده متمرکز کنیم، میتوانیم یک تعریف برای محاسبات توری ارایه دهیم برای اینکه در سطح اینترنت به صورت محاسبات توزیع شده باشد. هدف این است که یک خطا ایجاد کنیم به این صورت که کاربر یک کامپیوتر مجازی ساده و بزرگ و قدرتمند را تصور کند در حالی که این کامپیوتر قدرتمند یک مجموعه از سیستمهای به هم متصل و به احتمال زیاد نامشابه است که منابع متنوعی را به اشتراک گذاشته است.
4-2 فواید محاسبات توری:
وقتی که یک گرید بر پا میشود با نیازهای یک مجموعه از مشاغل مواجه خواهد بود. برای سازگاری بهتر قابلیتهای محاسبات توری با آن نیازمندیها، بهتر آنست که تعدادی از انگیزههای مشترک برای استفاده از محاسبات توری را در ذهن داشته باشید.
1-4-2 بهره برداری از منابع مورد استفاده
یکی از کاربردهای اصلی محاسبات توری این است که یک برنامه کاربردی موجود را بر روی یک ماشین دیگر اجرا کنیم. ماشینی که برنامه کاربردی در حالت معمولی روی آن اجرا میشود ممکن است به طور غیرطبیعی مشغول باشد که jobهای مورد بحث میتوانند روی یک ماشین بیکار در جای دیگری از گرید اجرا شوند.
حداقل دو پیشنیاز برای این سناریو وجود دارد:
اول اینکه برنامههای کاربردی باید از راه دور قابل اجرا باشند و سر بار اضافی ایجاد نشود. دوم اینکه ماشین راه دور باید این قابلیت را داشته باشد که با هر سخت افزار، نرم افزار، یا هر منبع موردنیاز خاص که توسط برنامه کاربردی تحمیل شده، مواجه شود.
در اغلب سازمانها تعداد زیادی از منابع محاسباتی وجود دارد. اغلب ماشینهای desktop کمتر از 5% زمان در یک روز کاری مشغولند. در برخی از سازمانهای حتی ماشینهای سرور هم میتوانند نسبتاً بیکار باشند. محاسبات توری یک Framework برای بهره برداری از این منابع مورد استفاده را ایجاد میکند بنابراین امکان افزایش کارایی کاربرد منابع را ایجاد میکند.
منابع پردازشی فقط آنهایی نیستند که ممکن است مورد استفاده باشند. اغلب ماشینها ممکن است ظرفیت درایورهای دیسک بسیار بزرگ داشته باشند که مورد استفاده قرار نگرفته اند. محاسبات توری یا به طور خاص تر یک data گرید برای جمع کردن این حافظه استفاده نشده در یک مخزن دادهای مجازی بسیار بزرگ تر به کار رود. اگر یک دسته job به خواندن یک مقدار زیادی داده نیاز داشته باشند این دادهها میتواند به صورت خودکار روی نقاط استراتژیکی گوناگون روی گرید منعکس شود. بنابراین اگر job قرار باشد روی یک ماشین دور در گرید اجرا شود، بنابران دیتا الان آنجاست و نیازی به جا به جا شدن دیتا به آن نقطه دور نیست و این مسأله به وضوع باعث ایجاد کارایی میشود.
همچنین این کپیهای دیتا میتوانند در هنگام زیاد دیدن کپیهای اصلی و یا به هنگام عدم دسترسی به آنها مورد استفاده قرار گیرند.
از دیگر فواید گرید، کاربرد منابع به صورت متعادل تر است. ممکن است گاهی یک سازمان حداکثر فعالیت غیرمنتظرهای داشته باشد که به منابع بیشتری نیاز خواهد داشت.اگر برنامههای کاربردی قابل فعال شدن به وسیله گرید باشند، میتوانند به هنگام رخداد این حداکثرها، به ماشینهای مورد استفاده فرستاده شوند. در حقیقت برخی از پیاده سازیهای گرید قادرند که jobهای کامل شده را به صورت جزیی مهاجرت دهند.
به طور کلی یک گرید میتواند یک راه حل برای متعادل کردن سربارهای یک مجموعه وسیعتر از منابع باشد و این خاصیت برای پردازنده ها، حافظه و هر منبع دیگری که در یک گرید قرار دارد به کار میرود.
2-4-2 ظرفیت پردازنده موازی (parallel CPU capacity)
پتانسیل ظرفیت پردازنده موازی، یکی از معمول ترین دیدگاهها و ویژگیهای جذاب گرید محسوب میشود. به علاوه برای نیازهای علمی و نظری از قبیل قدرت محاسبات، در حال پیشبرد یک تکامل تدریجی در صنایعی از قبیل رشته بیوشیمی، مدلسازی مالی، اکتشاف نفت و غیره است.
صفت مشترک هر یک از این کاربردها این است که برنامههای کاربردی نوشته شده از الگوریتمهایی استفاده میکنند که میتوانند به قسمتهای در حال اجرای مستقل تقسیم شوند. اگر یک برنامه کاربردی گرید که شدیداً به پردازنده وابسته است را در نظر بگیریم میبینیم که بسیاری از زیر jobهای کوچکتر روی هر یک از ماشینهای مختلف گرید در حال اجرا هستند. در این حالت به عنوان مثال یک برنامه کاربردی در یک دهم زمانی به پایان میرسد که اگر 10 بار از پردازنده استفاده میکرد به پایان میرسید.
برای گرید enable کردن یک برنامه کاربردی فاکتورهای زیادی وجود دارد. یکی اینکه باید بدانیم همه برنامههای کاربردی نمی توانند به صورت موازی در یک گرید اجرا شوند. به علاوه هیچ ابزار عملی برای تبدیل برنامههای کاربردی دلخواه برای بهره برداری از قابلیتهای موازی یک گرید وجود ندارد. تعدادی ابزار عملی وجود دارد که به برنامه نویسان در نوشتن برنامههای کاربردی موازی گرید مهارت میبخشد. هر چند تبدیل برنامههای کاربردی، علمی است که دوران طفولیت خود را سپری میکند. این کار به نظر مشکل میرسد و حتی اگر در موقعیتی ممکن باشد، به ریاضیات و استعدادهای برنامه نویسی نیاز دارد. برنامههای کاربردی جدید که امروزه نوشته میشوند شدیداً وابسته به محاسباتند و میتوانند به صورت موازی قابل اجرا بر روی یک گرید باشند.
3-4-2 منابع مجازی و سازمانهای مجازی برای مشارکت: