„Високопроизводителни Изчислителни Системи”

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

Основна задача на проекта е придобиването на знанията, необходими за изграждането на ВПИС и уменията, необходими за оптималната експлоатация на такива системи. Успешното изпълнение на проекта ще доведе до придобиване на необходимото know-how, което да позволи в последствие разработването на нови продукти и услуги, свързани със същественото подобряване на работата на ВПИС.

Подходът на проекта е научно-приложно изследване на основните фактори, обекти и процеси, от които до голяма степен зависи оптималната и икономически изгодна експлоатация на една ВПИС. Успехът на един такъв подход е силно зависим не само от качеството на извършената научно-изследователска работа, но и от създаването на необходимата среда за изършване на изследването.

1. Обща информация

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

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

Няма съмнение, че за решаването на сложните изчислителни задачи са необходими компютърни системи с много голяма производителност. Някои автори считат, че идеята за построяване на супер-изчислителни системи се е появила с първите опити да се решават сложни изчислителни задачи, още в началото на 60-те, и даже в края на 50-те години на миналия век. Може да се предположи, че още учените, работили по печално известния проект за създаване на атомната бомба, в средата на 40-те години на миналия век, са изпитвали недостиг от изчислителен ресурс. За решителна крачка към теоретичното обосноваване на високопроизводителните изчислителни системи (ВПИС), както и на всяка друга система, решаваща някаква задача чрез паралелната, строго-съгласувана и взаимно-допълваща се работа на няколко компоненти, се счита фундаменталната работа от 1967 г. на Gene Amdahl [1].

Когато се говори за ВПИС, най-често сe имат предвид компютърни системи с много голям брой процесори, клъстъри и гридове. Принципите, по които се класифицират ВПИС (най-вече хомогенност/хетерогенност на компонентите и начините на комуникация между отделните процесори) са подробно разгледани в предварителното проучване. От него е видно, че можем да си позволим да пренебрегнем тънките различия в споменатите по-горе класове компютърни системи и да ги означаваме с тремина клъстър коя да е от тях.

Исторически погледнато, за начало на изграждането на клъстъри може да се приеме 1962 г., когато Rand Corporation изобретява технологията “комутиране на пакети“, правейки по този начин възможно създаването на мрежи от свързани помежду си отдалечени компютри [2,3,4]. Използвайки тази технология, през 1969 година четири американски научни организации създават мрежата ARPANET [5], за да могат да обединят и съвместно да използват изчислителните си ресурси за решаване на тежки изчислителни задачи, които не са по силите на компютрите на нито една от организациите, взети поотделно. Може да се каже че проектът ARPANET, освен първата мрежа от компютри е и първият комютърен клъстър. Както е известно, проектът ARPANET се разраства постепенно до това, което днес наричаме Интернет и може да се каже, че Интернет е един супер-клъстър.

Разработването на клъстъри винаги е вървяло паралелно с развитието на мрежовите технологии и операционните системи от тип Unix. Проектът TCP/IP [6] има значителен принос за създаването и развитието на формализираните протоколи за мрежова комуникация. Окончателният си съвременен вид протоколите и средствата за отдалечено изпълнение на задания и отдалечен достъп до файлове добиват през 1983 г. (в рамките на операционната система BSD Unix на Sun Microsystems).

През 1971 г. компанията DEC създава клъстъра C.mmp [7], съставен от машини PDP-11. За първи комерсиален клъстърен продукт се счита ARCnet [8], разработена от Datapoint през 1977 г. ARCnet няма търговски успех, затова за начало на комерсиализацията на клъстърите може да се счита VAXcluster [9] на DEC създаден през 1984 г. с машини VAX и операционна система VAX/VMS (това са до голяма степен и основанията на DEC да се считат за родоначалници на клъстърите). VAXcluster, вече под името VMScluster, все още се използва върху машини Alpha и Itanium на Hewllet-Paccard, под управлението на операционната система OpenVMS. Два други комерсиални клъстъра от ранните година, които се споменават често, са Tandem Himalaya (в активна употреба от 1994 г.) и IBM S/390 Parallel Sysplex (също от 1994 г., използван предимно за бизнес цели).

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

PVM позволи, през 1993 г., в рамките на проекта NASA да започне изграждането на мощни виртуални суперкомпютри на базата на най-обикновени клъстъри от персонални компютри, комуникиращи със средствата на локалната мрежа. През 1995 г. идеята е доразвита до концепцията “Beowulf”. Отначало с Beowulf се означава всеки хомогенен компютърен клъстър, подобен на оригиналната система NASA - високо производителна паралелна система, изградена от евтини персонални компютри. Beowulf-клъстърите се изграждат от идентични PC-та, управлявани от Free and Open Source Software (FOSS) - Unix-подобна операционна система. Комуникацията се осъществява през малка TCP/IP локална мрежа. Разпаралеляването на изчисленията става с помощта на библиотека от стандартни програми. Най-често използваните библиотеки за разпаралеляване на изчисления са MPI (Message Passing Interface) и споменатата вече PVM. Един любопитен проект, който развива тази идея до край е Stone Soupercomputer [11]. На група специалисти е отказано обещаното финансиране за разработване на клъстър и затова те осъществяват проекта си с извадени от употреба персонални компютри и доказват неговата работоспособност и ефективност.

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

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

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

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

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

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

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

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

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

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

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

Идеята да се изгради мощен комерсиален изчислителен ресурс и да се предлагат услуги на базата на такъв ресурс е нова за България, но по света могат да се намерят съответни образци. Фирмата Cluster on Demand, например, много активно предлага отдаване на клъстери под наем [12]. Подобни услуги (за клъстъри работещи под Windows) се предлагат от фирмата Interactive Supercomputing [13]. Много сериозен е проектът за подобен род услуги на Sun [14] - каталогът им с приложения (предимно в областта на биологията и биохимията), които предлагат в комплект с изчислителен ресурс е впечатляващ.

Повече за тези инициативи, както и за всички останали аспекти на проекта може да се прочете в предварителното проучване или в цитираните в него публикации и уеб-сайтове.

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

Съществуват добре изградени клъстъри в мощни научни организации (т.н. изчислителни клъстъри), като например този в CERN (Европейската организация за ядрени изследвания), Швейцария. Такива организации привличат силно (буквално „засмукват”) научен потнциал от страните, които не могат да си позволят (или не са направили усилия) да си изградят такива клъстъри. Резултатите от проекта ще позволят построяването на един сериозен изчислителен клъстър, съвместно със Софийския университет, което ще бъде новост не само за България и ще позволи на СУ също да стане такъв притегателен център и да намали миграцията на български учени.

Съществуват и няколко международни компании, които притежават know-how в тази област [12, 13, 14]. Това им помага да предлагат на пазара продукти и услуги с много голяма добавена стойност, продавайки отлично оптимизирани ВПИС (т.н. потребителски клъстъри) както като продукт, така и под формата на услуги (предоставяне на изчислителен ресурс и ресурс за съхраяване на данни, чрез подходящи платформи). Технологиите, обаче си остават фирмена тайна и не са достъпни за широко потребление, а продуктите и услугите са много скъпи - те са достъпни за ограничен брой потребители, разполагащи с необходимите за целта бюджети. Резултатите от проекта ще позволят построяването на един сериозен комерсиален потребителски клъстър, което ще бъде новост за българския пазар и ще позволи предлагане на споменатите услуги на български, но и на световния пазар.

Предприятията от някои индустрии също имат нужда от мощни изчислителни системи. Например в ядрената енергетика и електроразпределението е немислима дори ежедневната работа без използването на голям изчислителен ресурс. Разработването, тестването и внедряването на нови продукти във фармацевтичната промишленост, телекомуникациите и др., се основава на многобройни и сложни изчисления базирани на математически модели и анализиране на получените от тях резултати. Успешното изпълнение на проекта ще даде нови перспективи на наукоемките отрасли на българската икономика. Като пряка услуга или посредством научните звена, които ще имат достъп до клъстъра, ще могат да бъдат решени важни изчислителни задачи, водещи до подобряване на конкурентноспособността на фирмите.

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

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

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

[1] G. Amdahl, Validity of the Single Processor Approach to Achieving Large-Scale Computing Capabilities, AFIPS Conference Proceedings, (30), pp. 483-485, 1967.

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

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

[4] D. W. Davies, K. A. Bartlett, R. A. Scantlebury, and P. T. Wilkinson, A digital communications network for computers giving rapid response at remote terminals, ACM Symposium on Operating Systems Principles. October 1967.

[5] B. M. Leiner, V. G. Cerf, D. D. Clark, R. E. Kahn, L. Kleinrock, D. C. Lynch, J. Postel, L. G. Roberts, St. Wolff , A Brief History of Internet, 2003.

[6] V. G. Cerf, Y. Dalal, C, Sunshine, Specification Of Internet Transmission Control Program, December 1974, available at http://www.ietf.org/rfc/rfc0675.txt

[7] W. A. Wulf and C. G. Bell, C.mpp - a multy-mini-processor, Fall Joint Computer Conference, 1972, accessed trough http://en.wikipedia.org/wiki/C.mmp

[8] http://en.wikipedia.org/wiki/ARCnet

[9] N. P. Kronenberg, H. M. Levy, W. D. Strecker, VAXcluster: a closely-coupled distributed system, ACM Transactions on Computer Systems 4 (2), 1986

[10] http://en.wikipedia.org/wiki/Parallel_Virtual_Machine

[11] http://www.extremelinux.info/stonesoup/

[12] http://clusterondemand.com/services.htm

[13] http://www.interactivesupercomputing.com/starpondemand/

[14] http://www.sun.com/service/sungrid/index.jsp

[15] http://users.erols.com/chare/elec.htm