Лайняната работа

Че администрирането на ИТ инфраструктура понякога е лайняна работа ми е добре известно отдавна, но никога не съм и подозирал, че изразът може да добие толкова буквално изражение…

Кратката версия

Клъстерът ни е разглобен и складиран, а стаята, в която се помещава обикновено, смърди на кенеф и изгнил паркет.

Дългата версия

Мивката върна вода от мръсния канал и помещението се наводни. До тук два пъти. Оказа се запушване в мръсния канал на по-долния етаж, където на мястото на мивката е включен циркулационна помпа на водното на охлаждане на специална апаратура водният кръг на охлаждането на дифузионна вакуумпомпа. Когато инсталацията работи през деня, помпата набива вода в канала водата от чешмата минава през кожуха на помпата и се набива в канализацията с налягането на водната инсталация, не може да се отича и се вдига по горните етажи. Първо се наводни стаята с инсталацията и обитателите ѝ запушиха отвора около маркуча за оточната вода с парцали. След това се наводни стаята под клъстерното и обитателите ѝ запушиха тамошната мивка с парцали и епоксидна смола. След това дойде ред на нашата мивка, която преля. Наложи се да я попиват с голи ръце и парцали. Климатиците поработиха доста усърдно за да изсушат стаята, а паркетът ще се маха. Тъкмо стаята изсъхна и днес мивката отново върна и преля. Този път на мен се падна да изгребвам от мивката и да попивам с парцали от пода лайняната вода. Добре, че намерихме първоизточника и го принудихме да изключи апаратурата и помпата, с което предотвратихме нови наводнедния… за днес.

Крайният резултат — две наводнени стаи и една сериозно овлажнена. Три компютърни лаборатории, които не работят. Една неработеща плазмена установка.

Може би някой ще попита какво прави мивка в стая със скъпа компютърна техника? Или защо собствениците на помпата са я включили, след като са имали подозрение, че отходният канал е запушен, понеже от него капе вода, без да проверят наличието на мивки в стаите на горните етажи? Добри въпроси, на които мога да отговоря прозаичо:

СУ. ФзФ на СУ.

Another job well done!

Днес е паметен ден за историята на високопроизводителната изчислителна техника в Софийски Университет. 20 дена преди да се навърши една година от началото на последното разширение на клъстера physon, следвано от поредица от технически премеждия с електрозахранването и охлаждането, днес процесът официално завърши. След два големи ремонта — прекарване на нова трифазна инсталация направо от главното табло на сградата и монтаж на втори климатик (огромно таванно прасе на General), нещата като че ли най-накрая си дойдоха на мястото и машината заработи с пълна пара така, както си я представяхме. При пълно натоварване на големия дял на машината, температурата в стаята остава стабилна, а двата UPS-а поддържат температури на батериите си от 25 и 20 градуса съответно, което е с 10 градуса по-ниско от времето, когато клъстерът вървеше на 60% от проектната си мощност.

И както казва Bender:

Another job well done!

Партито се отлага за след няколко седмици, когато е рожденният ден на машината :)

Петък вечер

Дяволът намира работа за geek-овете, които си нямат друга такава:

Benchmarking: Traditional DES [128/128 BS SSE2-16]... DONE
Many salts: 229334K c/s real, 229587K c/s virtual

Only one salt: 196838K c/s real, 196838K c/s virtual

Benchmarking: BSDI DES (x725) [128/128 BS SSE2-16]... DONE
Many salts: 7469K c/s real, 7469K c/s virtual

Only one salt: 7261K c/s real, 7261K c/s virtual

Benchmarking: FreeBSD MD5 [32/64 X2]... DONE
Raw: 1032K c/s real, 1032K c/s virtual

Benchmarking: OpenBSD Blowfish (x32) [32/64 X2]... DONE
Raw: 62009 c/s real, 62016 c/s virtual

Benchmarking: Kerberos AFS DES [48/64 4K]... DONE
Short: 34259K c/s real, 34259K c/s virtual

Long: 107373K c/s real, 107373K c/s virtual

Benchmarking: LM DES [128/128 BS SSE2-16]... DONE
Raw: 1162647K c/s real, 1162649K c/s virtual

Ах тези префикси

Имаше един такъв виц за студентите от ФМИ, че на влизане там мислели, че един килобайт е 1000 байта, а на излизане били убедени, че един килограм е 1024 грама. Изглежда същото важи с пълна сила и за възпитаниците на един от най-реномираните американски университети, разработили софтуера за наблюдение на големи компютърни системи Ganglia.

Преобразуване на мегахерци в гигахерци, в стил Berkeley.edu:

../images/98.thumbnail.png

Само в Berkeley: 1 GHz = 1024 MHz

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

Направи си сам суперкомпютър

Горе-долу с мотото в заглавието стартира преди 4 години проектът, под чиято шапка започна изграждането на клъстера Physon. Много вода изтече от слънчевия зимен ден на 2006 г., когато случайна среща в алеята към ФзФ на СУ ме направи съпричастен на идеята, до късната вечер на отминалия четвъртък, когато LINPACK се произнесе за производителността на машината след финалното ѝ разширение. Много интересни проблеми възникаха и много решения бяха намерени. Научих много за управлението на разпределените ресурси, за оптимизирането на различните мрежови компоненти, за подсигуряването срещу сривове на различни софтуерни компоненти и волю-неволю се превърнах в поредния физик с докторска степен, отделящ (много) по-голяма част от времето си за системна администрация на изчислителните ресурси, отколкото за тяхното използване в научната си работа, досущ като сродните душѝ от EPCC.

../images/93.thumbnail.jpg

Снимка на Physon в наши дни

Къде сме сега? След години на доработване, донастройване, разширяване, местене в разлчни точки на стаята и така нататък, Physon достигна мечтаните параметри, които бяха заложение в началото на проекта. В момента машината се състои от два физически дяла, разделението между които обаче е чисто логическо и касае само потребителите на паралелни приложения. Условно нареченият “малък” дял е това, с което започнахме — 4 машини с по два 4-ядрени процесора Xeon E5335 всяка, събрани в две 1U шасита, по две в шаси. От 32-те ядра, в комбинация с 533 MHz ECC DDR2 памет, паралелният LINPACK успява да “изцеди” 207 Gflops при теоретичен максимум от 256 Gflops. Доброто съотношение от почти 81% се постига не без помощта на високоскоростната и нисколатентна InfiniBand връзка, която беше особено дебело перо в цената на първоначалната система. При следващите две разширения на системата заложихме на процесори Xeon E5420 (25% по-висока тактова честота и двойно повече L2 кеш в сравнение с E5335) и по-бързата 667 MHz ECC DDR2 памет, при което се появи вторият, условно наречен “голям” дял. За да не се появи и трети дял, при последното разширение подходихме силно консервативно и заложихме отново на същата техника, въпреки наличието на пазара на Xeon-и с Nehalem ядро (базирано на i7 микроархитектура), работещи с по-бързата DDR3 памет. Въпреки, че на някои решението да закупим по-стар модел техника на цена, близка до цената на по-бързата нова, може да изглежда странно, то не е лишено от своята логика, особено когато на машината започне да се гледа като на платформа за изпълнение на паралелни приложения. Така големият дял достигна 160 ядра, които под LINPACK “развиват” 1241 Gflops [1] при теоретичен максимум от 1600 Gflops. В крайна сметка запълнихме всички 24 порта на InfiniBand маршрутизатора и получихме производителност от 1448 Gflops.

И къде бихме били без едно необективно сравнение в стил ябълки с/у круши. Българският суперкомпютърен център твърди, че държавният Blue Gene/P (изписван нататък в текста за краткост като BG/P) развива максимална производителност от 23.42 Tflops (при 27.85 Tflops теоретичен максимум), което го прави 16.2 пъти по-бърз от Physon. Оперативната му памет от 4 TiB е 10.7 пъти повече от тази на Physon (384 GiB). Всичко е много добре, но съотношението в цените няма как да не наведе мислещия човек на някои много интересни разсъждения:

BG/P струва на данъкоплатците 5.4 млн. лева по официални сведения, което прави по 230.6 лева на 1 Gflops. До момента Physon струва по-малко от 150 хил. лева (с ДДС, включително климатиците), което прави по 103.6 лева на 1 Gflops [2], като при това не сме правили сериозни компромиси с качеството — шасита на Supermicro, InfiniBand маршрутизатор на SilverStorm (сега QLogic), гигабитови комутатори на Netgear, сървърни модели твърди дискове на Seagate и Western Digital, онлайн UPS-и на Ablerex (които съвестно обират големите падове на напрежение, предизвикани от кьопавата ел. инсталация) и климатик на Mitsubishi. Нежеланието ни да се обвързваме с конкретен производител по време на изграждането ни спря да използване блейдове, които щяха допълнително да свалят цената и да увеличат компактността на системата. При тази цена производителността на BG/P би струвала 2.4 млн. лв, където не е отчетена отстъпката за количества от цената на модулите, както и че цената на порт на InfiniBand маршрутизаторите намалява с увеличаване на размера на последните. Инсталирането на подобна система от българи би струвало под 100 хил. лв, които при това ще отидат обратно в българската икономика. Разликата до 5.4 млн. лв ще стигне да покрие за поне 30 години по-високата електрическа консумация спрямо тази на BG/P. Да не говорим за опита, който ще се натрупа при това начинание и за възможностите за бъдеща надстройка [3]. Не напразно фирмите от бранша възроптаха, когато стана ясен начинът, по който държавата се е сдобила с чудото на IBM.

Предимствата на една такава система пред BG/P са очевидни:

  • 64-битовите процесори на Physon позволяват на всяка непаралелна 64-битова програма достъп до всички 16 GiB оперативна памет, с които е снабден всеки изчислителен възел — нещо, което е изключено като възможност на 32-битовия BG/P.
  • Учените все по-рядко пишат безкрайни кодове на Fortran (и понякога C/C++) и все по-често залитат към удобствата на сложни и многофункционални комерсиални среди за математичен анализ като Maple, Mathematica и MATLAB, които просто нямат версии за PowerPC, но щастливо се изпълняват в пакетен режим на грид-подобни обкръжения като това на Physon.
  • Не всички научни проблеми се решават с масивно паралелни програми. Някои учени имат серийни програми, които биха желали да пуснат върху множество от хиляди различни входни данни (т.нар. смущаващ паралелизъм, най-ярък представител на който е разпределеният проект SETI@Home). Очевидно BG/P, където всяка задача използва минимум 512 ядра, не е техният избор.

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

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

[1] Стойността е предварителна и при незавършено конфигуриране на параметрите в BIOS на новите машини. По-точно замерване ще направя при следващото спиране за рутинна поддръжка.
[2] Една система с nVidia Tesla или Fermi ще даде на порядъци по-добро съотношение, но подобни системи са подходящи само за тесен кръг от проблеми, много по-тесен от кръга на задачите, които се решават на BG/P и/или на Physon.
[3] Суперкомпютърният център на Университета в Единбург (EPCC) веднъж надстрои компютъра HECToR, заменяйки всички 5664 двуядрени Opteron-и с четириядрени, а в момента гласи замяната на последните с шестядрени, при което напълно се запазва инвестицията в останалата част от техниката на Cray. Първоначалната цена на компютъра беше 5.6 млн. британски лири.