ПРЕДВАРИТЕЛНО ПРОУЧВАНЕ

По темата: Състоянието на технологиите за изграждане и оптимизиране на високопроизводителни изчислителни системи

Ст. н. с. д-р Нели Милчева Манева

секция “Софтуерни технологии”

Институт по математика и информатика, БАН

” - За колко време опитенработник ще изкопае

дупка дълбока 2 м. с размери 0.5 на 0.5?

- За около 1 час.

- А за колко време ще изкопаят

същата дупка трима работници?

- За същото …. “

1. Въведение

Компютърният клъстър (или клъстър от компютри) е група от свързани помежду си компютри, които работят съвместно в такава близост, че в известен смисъл може да бъдат разглеждани като един компютър [1]. Обикновено, но не винаги, компютърните компоненти на клъстъра са свързани един с друг чрез бърза локална мрежа. Клъстъри от компютри обикновено се създават, за да се получи производителност и/или достъпност, много по-добри от тези на отделния компютър. Цената на такова решение винаги е много по-добра, отколкото при използването на същия брой отделно-работещи компютри със същата произвоителост и достъпност.

Най-разпространените типове клъстъри са: клъстърите с високо ниво на достъпност, клъстърите с оптимален баланс на натоварването и много специфичните клъстъри, понякога разглеждани като отделен вид формациии - гридовете.

1.1. Клъстъри с високо ниво на достъпност

Предназначението на клъстърите с високо ниво на достъпност (high-availability или HA-clusters), наричани също failover clusters (предназначени да предпазват от откази) е да осигурят безотказен достъп до предоставените от клъстъра услуги. В случай, че някоя от компонентите на HA-клъстъра откаже предоставянето на услуга (заради повреда или прекалена натовареност), тогава друга компонента на клъстъра трябва да “поеме” и изпълни заявката за обслужване. HA-клъстърите са изградени на принципа на редундантността, т.е. клъстърът съдържа повече компютри, отколкото са необходими за нуждите на предоставяното обслужване. Във всеки един момент, част от компютрите на HA-клъстъра обслужват заявки, а останалите изчакват появата на отказ, за да могат да поемат изпълнението на отказаната заявка. Най-простият HA-клъстер е съставен от 2 машини - едната обслужва заявки, а другата е в резерв до появата на отказ.

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

Известни са много комерсиални продукти, предназначени за изграждане на HA-клъстъри в различни операциони системи. За пример може да се посочи проектът Linux-HA [2], посветен на организирането на HA-клъстери, работещи под различни версии на операционната система Linux.

1.2. Клъстъри с оптимален баланс на натоварването

Предназначението на клъстърите с оптимален баланс на натоварването (load-balancing или LB-clusters) е да се разпредели колкото може по-добре натоварването между машините в клъстъра. Възможни са най-различни критерии за добро (балансирано) натоварване на компонентите на LB-клъстъра, но в края на краищата най-важно е да се минимизира сумата от времената за престояване на всчки постъпили заяки в системата (в случай, че има въведени някакви приоритети на заявките, тогава критерият ще бъде миималност на претеглената сума от времената за престояване на заявките).

Обичайната организация на ресурсите в LB-клъстъра е да се разделят машините на изпълнители на заявки (back end) и планировчици на натоварването (front end). Възможно е  LB-клъстърът да има един планировчик и много изпълнители. В такъв случай, обаче, единственият планировчик може спокойно да се окаже в състояние на отказ, поради наличие на много заявки, за които трябва да се планира обслужване. Затова интересна и полезна комбинация може да бъде LB-клъстър, подклъстърът от планировчици (front end-ът) на който е HA-клъстър. Такава ситуация, макар и засега хипотетична (проучването може би ще покаже дали някъде се реализира такъв тип клъстър) е много интересна за целите на проекта, тъй като може да бъде много сериозен проблем за изследване.

Алгоритмичната основа на планирането на работи - Теорията на разписанията [?] - е област на алторитмиката, с изобилие от трудни (NP-пълни и дори още по-трудни) задачи. Може да се предположи, че сега разпределянето на работите между компютрите-изпълнители се извършва с евристични алгоритми, резултатът от работата на които (т.е. придлаганият пан за разпределение на работите върху отделните компютри) понякога може да е доста различен от оптималния. Един от възможните аспекти за работа в предлаганото в проекта изследване може да бъде посветен на възможностите за “клъстеризация” (разпаралеляване) на задачите за планиране. Т.е. front end-ът на LB-клъстърт да е сам по себе си LB-клъстър и т.н.

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

Тиични приложения на LB-клъстърите могат да бъдат изчислителните центрове на крупни научни, научно-приложни или проектантски организации, в които се налага извършването на многобройни, сложни и продължителни пресмятания. Доколкото в България много трудно могат да се посочат такива крупни потребители на изчислителни ресурси, потенциални клиенти на един комерсиален  LB-клъстър могат да бъдът по-малки научни, научно-приложни или проектантски организации, обединяването на нуждите на които може да бъде достатъчен арумент за създаването на комерсиален (фирмен) LB-клъстър, предоставящ изчислителен ресурс под формата на услуга.

1.3. Грид-клъстъри

Гридовте могат да се класифицират като много специфичен вид клъстъри или, в най-краен случай, като технология, която е много близка по същността си до клъстърната. Тънката разлика, която може де се извлече от различните дефиниции се състои в това, че гридовете, в най-общ смисъл, са съставени от компютърни компоненти, които не биха могли да разчитат една на друга. Причините за отсъствие на доверие може да бъдаг разлчни: че машините на грида са разположени географски на различни места (разпределен клъстер); че връзките между отделните компоненти не са толкова надеждни, както връзките в локалната мрежа на класическия клъстър; компонентите на грида са с различни собственици и личните нужди на собствениците не съвпадат или трудно могат да се свместят с реализираната от грида политика на обслужване (Любопитно е дали изобщо има обмисляни такива модели - грид от компютри, в който всяка машина има, предварително дефинирано или менящо се във времето, описание на възможностите за предоставяне на ресурси. Дори и да има опити за такова нещо, то едва ли има окончателни резултати по впроса и това може да е сериозна теа за изледване.)

Терминъг GRID е създаден през 1998 от Ian Foster и Carl Kesselman [3] за означване на очевидната прилика между услугите, представяни от компютърните гридове и доставката на електроенергия: за потенциалният потребител на грид е достатъчно да се добере до вграден в стената контакт (точно както електрическия), да се включи през него и да полза услугата на супер-изчислител, без да се налага да създава специална изчислителна инфраструктура в дома си или офиса си, както почти никой не си инсталира електростанция в дома или офиса. Характерното за гридовете е, че най-често те са хетерогенни - с различни хардуерни компоненти, които дори могат да работят под различни ОС. В същото време, за крайния потребител, гридът изглежда много повече като една машина, отколкото класическите клъстъри.

Докато за класичесите клъстъри (както HA-, така и LB-клъстърите) е характерно и наличието на общи, за всички потребители или за големи подгрупи от потребители, задачи и данни, то целта на гридовете е  по-скоро обслужването  на многобойни независими (несвързани помежду си) потребители, които изпращат към грида отделни задачи или пакети от задачи, но задачите (пакетите) на различните потребители нямат нищо общо помежду си и не използват общи данни по време на изпълнение. Ролята на грида е да управлява разпределянето на постъпилите задачи по компютрите, където всяка от тях ще се изпълнява независимо от изпълението на останалите задачи в грида. Наличите ресурси, например паметта, се разпределят между отделните работи, но резултатите от работата по една задача не засяга по никакъв начин резултатите от работата по другите задачи.

Пример  за много голям грид е проектът [4], посветен на анализ на събраните данни за такива сериозни заболявания, като болестта на Alzheimer и рака, в опит да се намерят някакви средства за тяхното лечение. Друг такъв голям проект (гридът, реализиран в рамките на този проект е може би най-големият съществуващ в момента разпределен грид) е [5] - три милиона домашни компютри, разпръснати по целия свят, са “впрегнати” в рамките на този гигантски супер-компютър за да могат да бъдат обработвани големите,може да се каже даже ограмни, масиви от данни, получени от работата на радиотелескопа на обсерваторията Arecibo, в търсене на разумни същества във вселената.

1.4. Компютърни системи с (много) голям брой поцесори

Къде трябва да поставим в тази класификация компютърните системи с (много) голям брой процесори (има се предвид, това което предлагат IBM - Blue Jean, това, което поради близостта на българската дума до английския термин наричаме “ракла”, с други думи “машини” с хиляди процесори)? Не е много ясно, поне засега, дали трябва веднага да ги отнесем към някоя от преди това изброените категории или трябва да ги разглеждаме в отделна категория. Обзорните материали, които ползваме за този преглед по-скоро причисляват КС(М)ГБП към клъстърите. Но това може да е, защото материалите са писани от “клъстър-идеолози” и на тях може да им е изгодна такава класификация. Интересно е как IBM определя своите КС(М)ГБП? Интересно е още има ли друг производител на КС(М)ГБП с възможности поне малко приближаващи се до тези на IBM-ските?

Ако трябва да класифицираме КС(М)ГБП в някоя от горните категории, това не може да бъде катогорията грид - заради хомогенността. В такива системи обикновено всички процесори са еднакви, а работата се управлява от една ОС. И тук не е съвсем ясно - дали ОС на такива системи може да се нарече “една”. Очевидно във всеки от процесорите трябва да работи някаква “локална компонента” на ОС. Дали всички локални компоненти на ОС трябва да са еднакви? Наъ-вероятно в момента е така. Дали има смисъл (задачи), да се използват рзлични локални компоненти в отделните хардуерни компоненти на грида? Ето накои въпроси, които могат да бъдат интересни за обмисляне и търсене на алтернативни решения.

Въпросите, които си поставихме в пердния параграф са продиктувани от желанието да се намали броя на различните “изчислителни” модели, които да разглеждаме. От тази гледна точка, ще бъде по-просто КС(М)ГБП да се разглеждат като клъстъри.

1.4. Резюме

Както може лесно да се забележи, при опитите за класификация (а няма как да се направи изследване от такъв род без класификация), сякаш се смесват различни класификационни принции - например, от една страна, се използва хомогенност/нехомогенност на хардуера (за да се разграничат гридове от не-гридове), а от друга страна се използва характеристиката, на която ще се набляга (високо ниво на достъпност или оптимален баланс на натоварването) за да се разграничат HA-клъстъри от LВ-клъстърите.

Тредно е да се каже доколко е изпълнимо, като резултат в рамките на този проект, но си струва да се опита да се направи разгранчаване на класификации направени въз основа използвания хардуер и софтуер и класификациите от гледна точка на харктера на предоставяните услуги. В този смисъл  ще бъде  много силна стъпка да се формулират модели на предлаганите услуги, които да са независими от наличната хардуерна платформа.

Става въпрос за това, че хардуерната платформа може да се изгражда според възможностите на клиента - той може да си купи 5-6 компютъра, включително от различен вид и мощност, IBM-ска ракла и т.н., или даже да наеме изчислителен ресурс от фирмата, предоставяща такива ресурси, а фирмата трябва да е готова да осъществи на съответата хардуерна платформа на клиента (в частност на изградената във фирмата хардуерна платформа) модела на изчисения, от който се нуждае клиентът. Разбра се, че ще бъде супер-гъвкаво, ако бъдат изградени съответни софтуерни компоненти, за да може да се “сглобяват” от тях решения, съотвени на необходимия модел. Може да се “сглобат” и няколко решения, съответстващи на типични модели (проучването ще покаже какви) и да се предлагат в готов вид на клиентите.

2. История и примери

Историята на компютърните клъстъри най-точно е доловена от Greg Pfister. Както пише той в [10] “Едва ли не във всеки прес-рилийз на DEC, в който нещо се споменава за клъстъри, се казва ‘DEC, които измислиха клъстъра …’. Но не DEC измислиха клъстърите. И даже не IBM. Потребителите измислиха клъстърите тогава, когато почустваха, че не са  състояние да свършат работата си на единичен компютър, или че се нуждаят от сериозен изислителен “тил” (резерв) за пресмятанията си. Датата на пускане на първия клъстър в действие е неизвестна, но ще бъде изненадващо, ако е окаже по късно от началото на 60-те гдини на минилия век, или даже кряа на 50-те.”

Формалната инженерна основа на компютърните клъстъри, в смисъла на организаця на паралелно извършване на произволна работа, е предложена и аргументирано обоснована от Gene Amdahl от IBM, който през 1967 публикува т.н. Amdahl’s Law, считан днес за основополагаща научна публикация за теорията на паралелните пресмятания. Законът (или правилото) на Amdahl е математическа формулировка за очакваното повишаване на продуктивността на една паралелна архитектура при разпаралеляването на работата над една, иначе изпълнявана последователно, задача или гупа от задачи. Законът става инженерингова основа както за създаването на многопроцесорни изчислителни системи, клъстъри и гридове, като тънките разлики се плучават, както вече споменахме, от хомогенността/нехомогенността на  компонентите и от организацията на междупроцесорната комуникация - “вътрешна” (например, специализиран bus) или “външна” (със средствата на обичайната компютърна мрежа) за клъстърите. За да не затрудняваме изложението, като  всеки път разграничаваме многопроцесорни системи, клъстъри и гридове, което на концепционално ниво не е от толкова голяма значение, ще изберем като общ термин, и ще говорим в общия случай за клъстри. Когато се налага от някаква специфика, тогава ще уночняваме характера на конкретната изчислителна система.

Историята на ранните клъстъри практически съвпада с историята на създаването на компютърните мрежи, доколкото първоначалата цел на създаванто на мрежите е била споделянето на изчислителните ресурси на свързаните в мрежата компютри. Начаото е поставено ит изобретяване на технологията “комуниране на пакети” от Rand Corporation през 1962. Използвайки тази технология, през 1969 година четири американски научни организации създават мрежата ARPANET, за да могат да обединят и съвместно да използват изчислителние си ресурси за решаване на тежки изчислитлни дачи, които не са по силите на компютрите на нито една от организациите, взети поотдено. Затова ARPANET е  първата действаща компютъра мрежа, но същевременно може да се раглежда и като първият компютърен клъстър с мрежова комуникация на компонентите (и значи по-точният термин за ARPANET е грид). От друга страна, всяка от четирите организации е разполагала с повече от една изчислителна машина по това време, които сигурно са рботели в някакъв комплекс, като комуникацията между отделните машини не е била мрежова. Значи може да се каже, че във всяка от четирите съставящи ARPANET организации е работела някаква много ранна форма на  съвместно опериращи компютри - да то наречем прото-клъстър.

Както е добре известно, проектът ARPANET се разрасва във времето и довежда да това, което днес наричаме Интернет. Доколкото в наши дни Интернет обхваща практически всяка действаща по света компютърна система (или поне предоставя възможност това да бъде направено, при желание на собственика на компютърната система), без да преувеличаваме, можем да кажем че Интернет е един огромен супер-клъстър. Доколкото през Интернет могат да се свързват един с друг специално организираните за някакви цели по-малки клъстъри, благодарение на предоставяната от Интернет универсална комникационна парадигма - комутацията на пакети -  то Интернет може да се нарече и “клъстър-майка” на всички действащи по света клъстъри.

Разработването на клъстъри винаги е вървяло паралелно с развитието на мрежовите технологии и операционните системи от тип Unix. Проектите TCP/IP и Xerox PARC дадоха своя значителен принос за създаването и развитието на формализираните протоколи за мрежова комуникация. Операционната система  Hydra беше създадена специално за обезпечаване на работата на клъстъра C.mmp на DEC, съставен от машини PDP-11 през 1971 г. Окончателният си съвременен вид протоколите и средствата за отдалечено изпълнение на задания и отдалечен достъп до файлове добипа през 1983 г. (в рамките на операционната система BSD Unix на Sun Microsystems).

За първи комерсиален клъстърен продут се счита ARCnet, разработена от Datapoint през 1977 г. ARCnet няма търговски успех, затова за наало на комерсиализацията а клъстърте може да се счита VAXcluster на DEC създаден през 1984 г. с машини VAX и операционна система VAX/VMS (това са до голяма степен и основанията на DEC да се считат за родоначалници на клътърите, както споменахме по-горе). Както ARCnet, така VAXcluster позволяват организирането на паралелни изчислителни процеси, с използване на обща файлова система и приферни устройства, комбинирайки предимствата на паралелните пресмятания без дублиране на данните. VAXcluster, вече под името VMScluster, все още се използва върху машини Alpha и Itanium на HP под управлението на операционната система  OpenVMS. Два други комерсиални клъстъра от ранните година, които се споменават често, са Tandem Himalaya (в активна употреба от 1994 г.) и IBM S/390 Parallel Sysplex (също от  1994, предимно използван за бизнес цели).

Говорейки за историята на комптърните клъстъри, не може да не се спомене концептуалната роля  на разработения през 1989 г. софтуерен продукт Parallel Virtual Machine (PVM). С помощтта на този софтуер с отворен код (на практика билиотека от стандартни подпрограми за организация на паралелни пресмятания) стана възможно да се организира, върху хетерогенен или хомогенен физически клъстър, виртуален суперкомпютър, съставен от толкова виртуални машини, колкото е небходимо, комуникиращи чрез TCP/IP. Построените на тази платформа хетерогенни физически клъстъри предоставят на потребителите изключително удобна хомогенна среда от виртуални машини, производителността на които, измерена в Flops (мярката Flops - FLoating point Operations Per Second, т.е. брой изпълнени операции над аргументи с плаваща точка за една секунда - е добре известна мярка за производителност на суперкомпютри) значително надхврля тази на най-скъпите многопроцесорни машини. При това на значитено по-добра цена.

PVM позволи, през 1993 г., в рамките на проекта NASA да започне изграждането на мощни виртуални суперкомпютри на базата на най-обикновенни клъстъри от персонални компютри, комуникиращи със средствата на локалната мрежа. През 1995 г. идеята е доразвита до концепцията “Beowulf”. Отначало с Beowulf се означава всеки хомогенен компютърен клъстър, подобен на оригиналната система NASA - високо производителна паралелна система, изградена от евтини персонални компютри. Разработената от  Thomas Sterling и Donald Becker, в рамките на проекта NASA, концепция Beowulf днес има многобройни имплементации по света, предназначени най вече за научни и научно-приложни пресмятания.

Beowulf-клъстърите се изграждат от идентични PC-та, управлявани от Free and Open Source Software (FOSS) - Unix-подобна операционна система. Комуникацията се осъществява през малка TCP/IP локлна мрежа. Рязпаралеляването на изчисленията става с помощта на библиотека от стандартни програми. Най-често използваните билиотеки за разпаралеляване на изчисления са MPI (Message Passing Interface) и споменатата вече PVM (Parallel Virtual Machine). Отговорност а програмиста  е да обмисли разпаралеляването на пресятанията, да осигури изпращането на отделните последователни парчета от изчислението до различни компненти на клъстъра и да събере рзултата от изчисленито. Недоразумение е схващането, че всеки софтуер пренесен без изменения въху Beowulf-клъстър ще работи по-бързо отколкото на единичен компютър - това е невъзможно без пренаписване на кода.

Както се вижда концепция на клъстъра Beowulf е използването на commercial off-the-shelf (COTS), за са се постигне алтернатива на традиционния суперкомпютинг с много по ниска цена. COTS e най-общ, термин за обозначаване на техноогия, софтуер или хардуер, готови за използване чрез покупка, лизинг или в словията на нкакъв от секи който пожелае. Теминът се използва в противовес на “рализирани по поръчка” технологични продукти. Очевдно е, че COTS продуктите се характеризират с много-ниска цена, но някои правителства и корпорации отричат използването им, поради това, че не могат да контролират създателите им или не могат да разчитат на тях в бъдеще. Един проект, който развива тази идея до край е Stone Soupercomputer [9]. Група специали, о JavaSpaces е технология на Sun Microsystems, която позвлява изгражането на клъстър (но от какви машини? На Sun ли?) на базата на разпределена обща памет.

Съществува класация, т.н. TOP500 [6], която се публикува 2 пъти годишно и която представлява списък на 500-те най бързи в момента суперкомпютри. Тази класация винаги съдържа както машини с много голям брой прцесори, така и клъстъри. TOP500 се изработва съвместно от University of Mannheim, University of Tennessee и National Energy Research Scientific Computing Center на Lawrence Berkeley National Laboratory. Според публикувната през ноември 2007 г. класация, най-бързият суперкомпютър в света е системата IBM BlueGene/L [7] на Министерството на енергетиката на САЩ - скорост от 478.2 TFlops. Производителността е измерена с помощтта на High-Performance LINPACK benchmark [8]. От представянето се вижда, че IBM BlueGene/L е класифициран като клъстър, докато ние бяхме склонни да го класифицираме по-скоро като машина с много процесори. Както се вижда и от други примери, машините с хиляди процесори често се обявяват за клъстъри. Това подсказва, че всъщност не трябва да се отдава много голямо значение на тези класификации.

Суперхомпютърът System X на Virginia Technical University, 28-ят по производителност копютър в света, според класацията TOP 500 от Юни 2006 г., е компютърен клъстър, съставен от 1100 2.3 GHz дву-процесорни машини (общо 2200 процесорни ядра) Apple XServe G5 (с 4 GB RAM и 80 GB SATA HD) работещ под управлението на Mac OS X и използващ InfiniBand за връзка между компонентите. Скоростта му е оценена на 12.25 Tflops. Клъстърът отначало е бил съставен от машини Power Mac G5. После е бил престроен, като Power Mac G5 са били заменени с монтиращите се в ракла (rack-mountable)  Xserve G5, които са с много по-малък обем от настолните Power Macs, като така значително е намален обемът на клъстъра. Известна е цената на клъстъра, когато е бил съставен от Power Mac системи - 5.2 милиона US$ - десет пъти по ниска от по-бавен “мейнфрейм” супекомпютър (не е казано ясно, но сигурно става дума за супркомпютър със същтата изчислителна мощ, иаче сравнението на цените е безсмислено). Интересното е, че демонтираните Power Mac G5 са били успешно продадени!!!!

Оценяването на скоростта на суперкомпютрите и подреждането им по скорост може да бъде полезно за разсъждения върху съотношението цена/скорост. Смята се, че при клъстърите това съотношение е значително по-добро отколкото при единичните машини. Смята се, също, че измерването на производителносттта на клъстърите във Flops не е най-добрия възможен подход. Клъстърът може да показва много висока скорост, измерена във Flops, но да не е в състояние да достави толково бързо данни до компонентата, която се нуждае от тях. Затова се счита, че територята на клъстърите са паралелните пресмятания, докато за не-паралелни пресмятания все още по-добре е да се използват “традиционните” суперкомпютри.

Струва ни се очевидно, че неизбежна фаза от проекта ще бъде запознаването с литературата, където тези примери са описани подробно, а и с още много литература, където са описани  и други примери. В тази фаза трябва да се включи и проучването на пример на “комерсиални” клъстъри, (clusterondemand, например). Може и да са отделни фази - една за съествуващите системи с цени, производителност, характеристики на технологията за “клъстеризиране” и т.н, а втората фаза - за комерсиалните предлагания на кслстърни услуги.

3. Настояще и перспективи

Широкото разпространение на компютърната техника (дошло в резултат на масовото производство на персонални компютри) и развитието на Интернет доведоха до едно сериозно отклонение от първоначалната цел (заложена при създаването на ARPANET). Огромната част от потребителите на Интернет се всючват в мрежата не за да получат достъп до изчислителен ресурс, а за да получат достъп до необходимите им, по най-различни причини данни (неспециалистите предпочитат да наричат това достъп до информация, но няма да се спираме сега на този философско-маематически дискурс).     Затова ще е полезно да разграничим двете цели - споделяне на изчислителен ресурс и споделяне на данни.

Интернет се е утвърдила в съзнанието на обществото като средство за споделяне на информация (т.е. данни) и ще продължи да се развива в тази посока и да изпълнява тази безусловно много важна обществена функция. Интернет, както вече споменахме, може да бъде комуникационна база за изграждане на клъстъри, предназначени да обезпечат както споделянето на данни, така и споделянето на изчислителни ресурси, но много повече на данни, отколкото на ресурси. Такива клъстъри обикновено са резултат от иницативността на потребители, решили да обединят ресурсите си в името на някаква цел. Да ги наречем потребителски клъстъри. Интернет, в съвременния му вид е огромен потребителски клъстър. Потребителски клъстър, например, е и всяка локална компютърна мрежа.

Когато става въпрос за решаването на много сложни и много обемни изчислителни задачи, каквито са много от задачите на: математическата и инженерната физика, на метеорологията, на молекулярната биолгия и генетиката, на комбинаториката и дискретната оптмизация и т.н. е по-естествено да става на клъстъри с вътрешна (не мрежова) комуникация. Да ги наречем изчислителни клъстъри. Например, ARPANET е била такъв клъстър.

Ако се върнем към официалната класификация от началото на това проучване, можем да кажем, че понятието потребителски клъстър до много голяма степен се покрива с понятието HA-клъстър, защото основната цел на потребителския клъстър може да се формулира като осигуряване на всеки потребител безотказен достъп до ресурсите на къстъра. Понятието изчилителен клъстър, от своя страна, до голяма степен се покрива с понятието LB-клъстър защото основната му цел е да разпредели, колкото може по-добре, огромния обем от работа по една изчислтелна задача между компонентите, така че работата да бъде завършена за възможно най-малко време. За нуждите на това проучване ще считям съответните понятия идентични.

Както вече споменахме, основен принцип на потребителските клъстъри е редундантноста, т.е. излишък от изчислителен ресурс. При системите, при които много важен параметър е намаляването до минимум на възможността сестмата да откаже предоставянето на услуга, този излишък е предпоставен при изгражането на клъстъра. При много потребителски клъстъри, обаче, този излишък е следствие от съвсем други причини. В един корпоративен потребителски клъстър, например, обикновено се вграждат толкова къмпютъра, колкото са служителите на съответната фирма или институция. Такава редундантност изобщо не е предзвикана от необходимостта да се намалят отказите от услуги, а по-скоро от “разглезващо” ниската цена на персоналните компютри. Резултатът е, че примерно 90% от изчислителния ресурс на един такъв корпоративен потребителски клъстър остава неизползван.

Това поражда следната, според нас иновативна и много продуктивна идея, която би могла да аргументира необходимостта от финансиране на един научно-приложен изследователски проект. Да се обединят основните функии на един “виртуален” потребителски клъстър и един “виртуален” изчислителен клъстър в рамите на един “физически”  клстър, който сам по себе си не е нито потребителски нито изчислителен. Резултатът ще бъде, че 10% от ресурса на физическя клъстър ще се използват от виртуалния потебителски клъстър,  останалите 90% биха могли да бъдат предоставени за нуждите на виртуалния изчилителен клъстър. Основният очакван ефект е, че цената на единица изчислителен ресурс ще падне драстично.

Реализацията на тази много полезна идея ни се струва практически невъзможна, ако физическият клъстър се намира при (или е собственост на) групата от клиенти на виртуалния потребителския клъстър или групата от клиенти на изчислителния клъстър.

Използвана литература

[1] D. Bader, R. Pennington (June 1996). Cluster Computing: Applications. Georgia Tech College of Computing.

http://www.cc.gatch/~bader/papers/ijpca.html, Retrieved on 2007-07-13.

[2] да се погледне[1] http://en.wikipedia.org/wiki/Linux-HA

[3] да се погледне http://www.gridipedia.eu/aboutgrid.html

[4] да се погледне http://en.wikipedia.org/wiki/Folding%40home

[5] да се погледне http://en.wikipedia.org/wiki/SETI%40home

[6] да се погледне http://en.wikipedia.org/wiki/TOP500

[7] да се погледне http://en.wikipedia.org/wiki/BlueGene/L

[8] да се погледне http://en.wikipedia.org/wiki/LINPACK

[9] да се погледне http://en.wikipedia.org/wiki/Stone_Soupercomputer

[10] G. Pfister, In Search of Clusters, Prentice Hall, ISBN 0-13-899709-8.

[11] P. Baran et al., On Distributed Communications, Volumes I-XI, RAND Corporation Research Documents, August, 1964.

[12] P. Baran, On Distributed Communications: I Introduction to Distributed Communications Network, RAND Memorandum RM-3420-PR. August 1964.


[1] В посочените страници на Wikipedia има много цитирани заглавия по засегнатия въпрос, затова сме предпочели да препратим читателя към тези страници, вместо да изреждаме всички споменати там заглавия