Этот кластер возник внезапно. В МСЦ РАН собирали новый суперкомпьютер, под него нужно было место, поэтому старый нужно было кому-нибудь отдать. Два академика встретились в коридорах президиума РАН, один предложил: “Слышь, а вам не нужно пару-тройку стоек нашего старого суперкомпьютера?”. Странно было отказываться. Коллеги, что в институте занимаются вычислительной техникой, со страхом забились в угол при словах “суперкомпьютер” и сказали “оно нам не нужно”. Пришлось нам забирать эту кучу техники, разбирать, погружать, разгружать, перевозить, собирать. Так через 1.5 года после того, как мы перевезли это всё из президиума РАН в институт, в моем, практически единоличном, распоряжении оказались три стойки по шесть шасси по четырнадцать блейдов JS20.
После всех перевозок и переносов мне показалось, что будет проще поднять на кластере Linux с нуля, нежели разбираться с настройками, что были в МСЦ, а после ещё и исправлением этих настроек под существующие реалии. Конечно, там был SLES9 и компиляторы IBM, но этих прелестей было недостаточно для воодушевления на копание в настройках. К тому ж головная машина кластера не пережила переездов и ожидания. За год пребывания в комнате из нее куда-то делась регистровая память и сгорел БП.
В целом план действий был ясен. Найти бесхозную машину, поднять там Linux, на нем поднять HTTP, DHCP, DNS, TFTP и LDAP серверы, сделать локальное зеркало какого-нибудь дистрибутива (выбор таки пал на Fedora 12), написать Kickstart-файл, сбросить настройки управляющих модулей, сгенерировать конфигурации для всех этих серверов, выставить блейдам загрузку по сети. Немного подождать, далее доставить на блейды драйвера Myrinet и систему очередей.
Первая незадача возникла после сброса настроек управляющих модулей. Внешние порты Ethernet свичей оказались выключены. Выяснилось это чуть позже, но сначала пришлось какое-то время ломать голову над тем “и отчего же у нас yaboot не желает грузить блейды”.
Вторая - с драйверами Myrinet. Поскольку Myricom контора серьёзная, доступ к драйверам у них можно получить только после недолгой переписки с девушкой из технической поддержки. Девица запросила серийный номер оборудования, немного подумала и прислала логин и пароль для доступа. При этом посоветовав пользоваться драйвером mx. Радостно загрузив исходники, написал SPEC-файл, помедитировал на патчи, что-то ещё исправил, чтобы оно собиралось на ядре 2.6.32, сделал RPM, установил на несколько узлов. Но все эти узлы видели исключительно себя. Далее начались страдания с драйверами gm. Что 2.0.х, что 2.1.х при сборке падали с ошибкой “iseries is not supported”. Пришлось учинить вандализм, закомментировать строчку с директивой препроцессора #error. После этого всё мирно собралось и даже заработало. С некоторыми НО, конечно.
Третья - с Torque. Вернее с одним компонентом - pbs_sched. Если быть ещё точнее, то во всем оказались виновато оборудование Myrinet, которое не видело часть блейдов. Поэтому возникла необходимость разделять узлы на которых будут запускаться параллельные задачи и узлы для последовательных задач. Пометить узлы в файле nodes было несложно. При создании очередей написать resources_default.neednodes = myrinet тоже просто. Однако pbs_sched отказывался различать узлы по текстовым меткам. Пришлось вспоминать пароль на www.clusterresources.com, загружать оттуда Maui, собирать его. После этого узлы стали нормально отбираться по очередям. Также исчезла проблема с тем, что pbs_sched очень любит запускать неограниченное количество задач на узлах с np=X.
После всех этих нехитрых действий оно всё и заработало. И продолжает работать.
Aucun commentaire:
Enregistrer un commentaire