BioAGE

Обща топология

Показана е примерна топология на информационно-изчислителния грид BioAGE.

Най-общо грида се изгражда от взаимно свързани нодове. Връзките между нодовете са имплицитни. Всеки нод се управлява от програма, наречена Агент (age_agent). Агентите контролират разпространението на информацията между нодовете на грида и неговите потребители. Тази организация на работа гарантира следното:

  1. Поведението на грида е еднакво за неговите потребители независимо от структурата и предназначението на информацията;
  2. Всеки нод предоставя унифициран и прозрачен програмен интерфейс за работа – функционалността на грида може да се управлява с едни и същи средства от произволен нод;

Паралелна обработка

BioAGE има типична SOA архитектура – потребителската функционалност в нодовете на грида не е фиксирана и винаги се зарежда динамично чрез услуги - външни софтуерни модули и стандартни линейни алгоритми. Всяка услуга на грида има уникално име в контекста на конкретен нод и може да се зареди динамично само един път в същия контекст. С други думи, една и съща услуга може да се зареди динамично по един път във всеки нод на грида.

Мултиплицирането на функционалността в нодовете поражда ефекта на дублиране на резултатите. От една страна, ако се изпрати заявка към целия грид за функция на определена услуга, то заявката ще бъде изпълнена толкова пъти, колкото динамично заредени копия на услугата съществуват в грида. Резултатите се обобщават от агента на извикващия нод, като допълнителната обработка на резултатите е отговорност на инициатора на заявката – външен процес или функция. От друга страна, заявките могат да се адресират имплицитно към определен нод, услуга и функция.

Показани са в зелено онези заявки, които се изпращат и обработват от агентите на нодовете. В синьо е показан резултата от изпълнение на същите заявки, а в червено са показани заявките които няма да бъдат обработени в резултат на оптимизация. От една страна се вижда как BioAGE динамично оптимизира и редуцира изпълнението на заявките, а от друга – как всеки агент в грида се грижи да обобщава междинните резултати. Независимо каква е гранулярността на грида, заявките винаги се оптимизират в съответствие с редица динамични фактори свързани с текущата топология, статистика на ползването, „дълбочината на изпълнение“ на задачите и други.

Агентите в грида работят изключително асинхронно с информацията и са оптимизирани така, че да внасят минимален overhead в комуникацията между нодовете. Агентите никога не се блокират при изпълнение на задача! Това поведение на агентите има цена – практиката изисква заявките да се обработват за определено време. В AGE всяка заявка има време на живот. Когато това време бъде надхвърлено, то заявката остарява и се отстранява от по-нататъшна обработка. Накратко, за определен времеви хоризонт няма пълна гаранция, че резултата от заявките ще бъде получен. От потребителска гледна точка това означава, че при изпращане на заявка за изпълнение към грида е възможно да се получат непълни резултати. Агентите в BioAGE са настроени да предоставят максимално количество резултати за предоставеното им процесорно време.

Пример

На илюстрацията е показан един реален пример на грид създаден чрез BioAGE, който се състои от 7 нода. Интерес представлява първия нод – N1. Макар и произволно избран, в този нод е инсталирана услугата WeBioGrid, която представлява web server. Чрез него потребител може да изпраща заявки към грида по HTTP. Модули на сървъра преобразуват HTTP заявката в формат на BioAGE и изчакват (синхронизират) резултата. Данните на получения резултат се структурират в JSON и се пакетират в XML. Така форматиран, резултатът се връща в web броузера на клиента, където може допълнително да бъде анализиран с JavaScript.


Back to top