= bubbalog =Дневникът на моето стадо

Следваща спирка – изчислителен клъстър

Saturday 06.02.2010 17:23 EET · Публикувано от в = Cluster =, = FreeBSD =, = Parallel =

Лгичното продължение на сагата с високонадеждния HA-клъстър разбира се е желанието за развиване назнанията и така постепено се увлякох  започнах да чета за други типове клъстъри. Така възникна идеята за изработка на вискоефективен изчислителен паралелен клъсътр (Parallel computing) от тип Beowulf. Е, моя за момента не е много всоко технологичен и особенно ефективен, но от пчетената инфрмация, това е началото и основата на повечето суперкомпютри.

Ето какво представлява точно това. Цитата е взет от http://computationalsystems.net/projects/hpcs/study (*с 2-3 корекции на места – BSD не мисля, че е на  Sun Microsystems ;) ):

* * * * *

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

За първи комерсиален клъстърен продут се счита 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 ли?) на базата на разпределена обща памет.

* * * * *

Моя проект разбира се е разработен на базата на FreeBSD 8, а машините за него са м иподарени от няколко познати. Оказа се обаче, че самото сглобяване и пускане на машините в паралелна работа не е никак сложно. Програмното усигоряване обаче е проблем… Не всяка програма може да върши работа за изпълнение на клъстъра. Е, не че няма да тръгне, но няма да прави това, за което е създаден клъстъра. и сега сум на етап да си припомням С/С++ и чета паралелно програмиране. За натам – ще видим какво ще излезе от цялата тая работа, но определено ми е много интересно да се занимавам с това и в някакво бъдеще мисля това да остане основното ми занимание.

Остави коментар

Писането на кирилица е задължително!
Коментари, които не са на кирилица ще бъдат изтрити без предупреждение.
Всеки коментари съдържащи 1 или повече линка, ще бъдат публикувани след одобрение.