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

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

Снимка на 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 Gflops1 при теоретичен максимум от 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 Gflops2, като при това не сме правили сериозни компромиси с качеството – шасита на 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 млн. британски лири. ↩︎