Модуль BitScope Cluster содержит 150 мини-компьютеров Raspberry Pi с интегрированными сетевыми коммутаторами. Фото: BitScope
Программисты и учёные не всегда имеют свободный доступ к настоящему высокопроизводительному суперкомпьютеру, чтобы испытать свои программы. Тем более что суперкомпьютеры обычно и так заняты 24 часа в сутки другим софтом. Трудно найти окошко. Нужно заранее писать заявку и становиться в очередь. Как же новая программа будет работать в реальной многопроцессорной среде, насколько хорошо распараллеливается задача?
В помощь разработчикам по заказу Отдела высокопроизводительных вычислений Лос-Аламосской национальной лаборатории австралийская компания BitScope разработала «тестовые» вычислительные модули BitScope Cluster из 150 мини-компьютеров Raspberry Pi, которые можно объединять в кластер и проверять на них свои программы.
В Лос-Аламосской национальной лаборатории работает один из десяти самых мощных суперкомпьютеров мира — Trinity.
Суперкомпьютер Trinity в Лос-Аламосской национальной лаборатории
Руководство лаборатории поставило задачу найти способ, как дать разработчикам доступ к высокопроизводительным параллельным вычислениям без реального доступа к самому суперкомпьютеру, чтобы они могли протестировать свои программы.
«Модули Raspberry Pi дают возможность разработчикам выяснить, как писать такое программное обеспечение и заставить его надёжно работать без необходимости иметь испытательный стенд такого же размера стоимостью четверть миллиарда долларов и потребляющий 25 мегаватт электричества», — говорит Гэри Глайдер (Gary Glider) из Лос-Аламосской национальной лаборатории.
В самом деле, 25 мегаватт электричества на испытание своей программки — это слишком (здесь ещё не учтены расходы энергии на охлаждение, которые в несколько раз превышают энергопотребление самой вычислительной системы).
Установка системы водяного охлаждения для суперкомпьютера Trinity, которая эффективно использует систему рекультивации санитарных стоков
В каждом модуле 144 активных узла, шесть запасных и один управляющий узел. Модуль имеет формат 6U при установке в серверную стойку дата-центра. Как сообщается на официальном сайте, кластер из 1000 узлов занимает стойку 42U обойдётся по цене примерно $120-150 за узел. Это довольно большая наценка по сравнению со стандартной ценой Raspberry Pi 3, которая составляет, как известно, $35.
Каждый модуль BitScope Cluster состоит из строительных блоков — так называемых «кластерных пакетов» (Cluster Pack). Установка в стойки по одному юниту происходит именно в виде этих «пакетов».
Cluster Pack
Один узел (мини-компьютер Raspberry Pi 3) содержит 64-битный четырёхядерный процессор ARMv8 на частоте 1,2 ГГц. Таким образом, если представить кластер, например, из пяти модулей, то там будет 720 активных узлов, то есть 2880 активных процессорных ядер. Вполне достаточно для тестирования, насколько хорошо распараллеливается программа.
Так выглядит вблизи один ряд мини-компьютеров в Cluster Pack
Хотя такое решение действительно намного дешевле суперкомпьютера, но всё-таки бюджетным его тоже не назовёшь. Позволить себе мини-кластер за $100 тыс. или $150 тыс. чисто для испытания программ может только крупная исследовательская организация. Собственно, такие модули и рассчитаны, наверное, на эти богатые организации — владельцев суперкомпьютеров. Тем не менее, создатели мини-суперкомпьютера говорят, что это «самое экономически эффективное в мире масштабируемое решение: оно недорого в сборке, управлении и поддержке».
Модули BitScope Cluster дают и заметную экономию в энергопотреблении. Можете рассчитать сами энергопотребление каждого из них, считая по 5 Вт на один узел. Если считать, что у запасных узлов энергопотребление минимальное, то в модулей остаётся 144 активных и один управляющий узел. Всего 145?5=725 Вт.
Компания BitScope намерена выпустить эти модули в свободную продажу где-то в начале 2018 года.
По мнению компании, кроме разработки программного обеспечения, подобные кластеры могут быть полезны как симуляторы сенсорных сетей, в исследованиях высокопроизводительных сетей и Интернета вещей.
Комментарии (46)
Kobalt_x
29.11.2017 02:01Не понятно что за интерконнект используется, и что с производительностью в LinPack/Graph500 и не дешевле ли купить мелкий кластер на x86/Power8 за flops/$?
На сайте никаких данных об этом не нашелpwrlnd
29.11.2017 08:42Акцент делают не на производительность, а на количество ядер. В этом плане предложенный вами вариант в разы, а то и на порядок будет дороже.
Kobalt_x
29.11.2017 10:36Это не отменяет необходимости в тестах, может там даже тривиальные вещи не ускоряются из-за фигового интерконнекта
Randl
29.11.2017 16:39Идея в том чтобы, например, тестировать распределенные алгоритмы на большом количестве нод.
yurisv3
29.11.2017 07:57Модули Raspberry Pi дают возможность разработчикам выяснить, как писать такое программное обеспечение и заставить его надёжно работать, без необходимости иметь испытательный стенд такого же размера стоимостью четверть миллиарда долларов и потребляющий 25 мегаватт электричества
«Выяснить, как писать такое программное обеспечение и заставить его надёжно работать» — как ни странно, для этого вовсе не нужно несколько ведер «малины», достаточно софтверного симулятора. Причем можно прокачивать навык под самые разные кластерные архитектурыдаже не отходя от кассы.mickvav
29.11.2017 11:19Ну не совсем. Думаю, что чтобы «задышало» и научиться эффективно использовать инструменты, хватит 10-ка Pi-ев. А дальше уже смысла нет — оптимизировать под ттх целевой платформы уже имеет смысл только на ней самой.
Gutt
29.11.2017 16:06Боюсь, что нет. Нужно эмулировать задержку и пропускную способность интерконнета, производительность памяти и множество других вещей. Просто эмулятор на большом x86 покажет другую картинку. Но я не понимаю, почему Pi3, а не Compute Module 3? Поленились делать железку для связи и решили обойтись GigE-коммутатором?
bearad
29.11.2017 08:57А чем VM/docker не подходят для тестирования? При условии использования современного ПК, на том же docker + оркестратор можно поднимать сотни, если не тысячи, контейнеров.
Kobalt_x
29.11.2017 10:42Тем что утилизация ресурсов на задачу будет не полная из-за скачущих контекстов. Ускорение будет существенно ниже, для HPC это неприемлемо.
Для предварительного тестирования можно и в VM и на локалхосте. Но здесь под тестированием подразумевается не отладка написанного а скорее оценка поведения на небольшом но полноценном кластереbearad
30.11.2017 15:07Всегда в оценку можно заложить оверхед. Или создавать контейнеров не больше чем количество ядер, благо аренда более чем доступна (тот же ес2 на 32 ядра — 1.5 $/h. по требованию, не говоря про спот или предоплату).
untilx
29.11.2017 09:15Мне всегда было интересно вот что: есть т. н. вычислительные модули aka малина под разъём ddr, которые пихают в телеки и прочее. Так почему бы не сделать кластерную плату для, скажем, десятка модулей с внутренней сетью, роутингом на внешний интерфейс, охлаждением, каким-нибудь бп и чем-нибудь ещё? Конечно, для чего-то большого это не подошло бы, а для мелких задач и просто любителей было бы идеально. Я, по крайней мере, ничего такого не нашёл, сколько ни искал.
DROS
29.11.2017 09:30Мне кажется спрос на подобные вещи слишком уж низкий и просто не рентабельно разрабатывать, выпускать и поддерживать дальнейшее развитие. А так да, давно уже задумывался насчет подобной же темы. Но…
untilx
29.11.2017 11:14Учитывая, сколько народа покупает одноплатники десятками для домашних поделок, спрос будет. А если ещё и стандартизировать, чтобы другие производители могли пользоваться…
Konachan700
29.11.2017 14:52Но у RPi нет ничего для организации шины между модулями — сетка на usb (отжирающая суровый процент производительности), pci-e нет, ничего нет. USB на эту роль не годится.
Для концепта, в качестве «смотрите что мы можем» — круто, для реальной ынтерпрайзной системы бессмысленно. Особенно учитывая то, что в каждую RPi из тысячи надо ставить флешку с образом — грузить ОС из сети оно по понятным причинам не умеет…Kobalt_x
29.11.2017 15:58а ну тогда, можно закапывать, реальное ускорения на этом кластере можно будет увидеть только для задачах с малой долей коммуникации, а в реальных приложениях их немного. Коллективные коммуникации будут с супер тормозами
nlykl
29.11.2017 16:49Raspberry Pi 3 поддерживает загрузку по сети, флешка при этом не нужна.
Konachan700
29.11.2017 17:31Погуглил, и правда… Они в preboot запихнули весь usb-стек и драйвер usb-сетевушки…
hydrogo
29.11.2017 16:37А как насчет ограничений платформы ARM? Я полгода назад когда мониторил покупку малинки с идеей сделать из нее портативный инструмент для моих научных задач, то обнаружил, что conda туда не накатить, doker тоже какой-то особенный должен быть (или ось под ним) и т.д. В итоге решил не колхозить (навалил на старый хромбук SeaBios и PepermintOS).
DjOnline
29.11.2017 17:06Почему нельзя на видеокарте запустить тысячу независимых потоков, там до сих пор все сильно другое ?
Kobalt_x
29.11.2017 22:23Да там до сих пор всё сильно другое и устройство памяти и куча других нюансов, если их не учитывать, будет медленне чем на cpu, поэтому general purpose софта под gpu ~0. (правда была попытка amd запустить jvm, на картах, но там всё заглохло по вышеназванным причинам)
DjOnline
29.11.2017 23:31Речь не о том что медленнее чем на CPU, речь о том чтобы запустить 1000 потоков, так же как здесь на эти тысячах инстансах RPi.
p.s. вопросы для того и задаются, чтобы прояснить.Norno
30.11.2017 11:43(Сужу по статье) Здесь они все же хотели сделать тестовый стенд, который позволил бы людям, готовящим программы для суперкомпьютера, проверить свою программу/потренироваться, цели делать железку на которой будут считать не было. Для этого требуется много ядер (распределенные вычисления, синхронизация, обмен данными).
А на GPU задачи решают, для этого есть CUDA (может сейчас есть еще что-то другое, не слежу).
Alex_Q
30.11.2017 00:06Потому что нельзя запустить на видеокарте тысячу независимых потоков. Там SIMD архитектура и количество независимых потоков будет равно количеству ALU (терминология AMD) или SMX (NVidia).
Areso
30.11.2017 07:15А CUDA-ядра? Скажем, у меня 1050 Ti, 6 SMX*128, итого 768 CUDA-ядер.
Вряд ли 6 ядерный ЦПУ будет эффективнее в расчете хэшей этой видеокарты. Или как?Kobalt_x
30.11.2017 09:26Ну вот вы и сможете максимум одновременно подбирать 6 разных хэшей или 1 но быстрее. Грубо говоря у вас количество различных по структуре задач равно числу SMX
Alex_Q
30.11.2017 21:52Вы сможете выполнять 6 независимых потоков на GPU. Что бы понять, что такое SIMD можно представить марширующих солдат — каждый из них делает одно и тоже движение в один и тот же момент времени, но в разных точках пространства.
В каких то случаях SIMD полезен, к примеру при подборе хэшей. В каких то бесполезен — там, где нужно делать много ветвлений. Далеко не все алгоритмы могут быть эффективно реализованы на SIMD архитектурах. Там, где нужно принимать много решений, SIMD малополезен. Это как отправить солдат маршировать в ногу по пересечённой местности с оврагами и буреломом.
firk
29.11.2017 20:10Неужели эффективность (скорость/цена) таких устройств уже догнала хотя бы обычные x86, не говоря уже про железо, специализированное под расчёты?
masai
29.11.2017 20:14У нас на работе давно ходит шутка про кластер на смарткартах. Скоро, боюсь, шутка станет реальностью.
c_kotik
29.11.2017 21:55Пока вы шутите, другие разрабатывают!
https://xakep.ru/2015/01/29/cluster-puzzlecluster/
true-grue
29.11.2017 22:56Сеймуру Крэю принадлежит след. знаменитый вопрос.
«Если вам надо вспахать поле, то что вы используете: двух сильных волов или 1024 цыпленка»?Norno
30.11.2017 11:56А если «собрать» рассыпанное зерно? Для каждой задачи свой инструмент.
true-grue
30.11.2017 14:38«Для каждой задачи свой инструмент» — это, разумеется, справедливо. Цитата же из Крэя примечательна тем, что трюизмом не является и продолжает вызывать споры до сих пор.
В английском оригинале учебника «Компьютерная архитектура. Количественный подход» Хеннесси и Паттерсона эта цитата приведена в следующем виде.
If you were plowing a field, which would you rather use: two strong oxen or 1024 chickens?
Seymour Cray, Father of the Supercomputer (arguing for two powerful vector processors versus many simple processors)
Эти слова были сказаны в начале 80-х и в то время векторные машины, которыми являлись знаменитые суперкомпьютеры Крэя, были более эффективным решением по совокупности характеристик, чем дорогостоящие кластеры из компьютеров общего назначения. Теперь времена изменились и, казалось бы, векторные системы должны быть давно забыты. Но, как ни странно, это не совсем так, несмотря на то, что компания Cray, уже после смерти ее основателя, перешла к традиционным кластерным MPP-системам (см. ту же Trinity из заметки выше). Знамя векторных вычислений подхватила компания NEC. Помните Earth Simulator? В начале 2000-х этот векторный суперкомпьютер был самым быстродействующим в мире. Совсем недавно стало известно о новом проекте «Tsubasa» этой же компании. Собственно, IBM Cell и популярные сегодня GPGPU-чипы это все те же «векторные волы».
Но касается ли цитата Крэя одних только векторных машин? Подход Крэя заключался в использовании небольшого числа мощных процессорных элементов с централизацией ресурсов (общая память, быстрые внутрисистемные коммуникации), гетерогенностью и специализированностью. Интересно, что Крэй незадолго до смерти в 1996 году занимался проектами построения суперкомпьютеров на базе реконфигурируемых систем (ПЛИС), которые вполне соответствуют изложенному выше подходу. Сегодня суперкомпьютеры с гетерогенной архитектурой и специализированными вычислителями на ПЛИС/GPU/… уже не являются экзотикой. Но, на мой взгляд, более интересно, что наметилась тенденция отхода от процессоров общего пользования и при построении кластеров. Посмотрите на лидеров Top500/Green500. 260-ядерный чип Sunway SW26010 и 2048-ядерный чип PEZY-SC2 — вот уж настоящие «волы»!
К слову сказать, мне довелось работать со своеобразными «цыплятами» — крохотными стековыми машинами с локальными связами между собой. На кристалле их были сотни. Такого рода системы могут использоваться в embedded для достижения малого времени отклика при обработки большого числа легковесных процессов. Но со временем, я перешел к архитектуре «барабанной» многопоточности в рамках единственного ядра-«вола».
Подводя итог. «Цыпленок» представляет собой простой процессор/компьютер, который не проектировался специально для задач суперкомпьютерных вычислений. Разумеется, системы на основе «цыплят» часто дешевле в разработке и эксплуатации. Но время от времени возникают требования, когда уместнее оказывается подход Сэймура Крэя.
zxweed
аффтар хочет сказать, что в высокоэффективных суперкомпьютерах PUE сильно больше двух? да у самого колхозного дата-центра он не превышает 1.7, а у обычных где-то около 1.3…
NetBUG
И мне кажется, до последнего времени эффективность распараллеливания падала, поскольку качество кода снижалось. Сейчас, правда, программисты понемногу начинают видеть смысл в качественном распаралелливании. Как минимум, Scala-программисты.
Priapus
Гуглите закон Амдала.
Dioxin
Для охлаждения ДЦ природа придумала сибирь и вечную мерзлоту
Kobalt_x
А электро инфраструктуры в тех широтах хватает?( Не сарказм, просто не слышал отдц в Сибири и Заполярье)
Dioxin
У нас — полно, причем еще и дешевле, т.к. генерация как раз там, в сибири.
А вот интернет в сибири это посложнее.
Есть прецеденты строительства ДЦ в прохладных регионах.
exehoo
Красноярская ГЭС как вариант. Там и интернет неплохой.
alex-1917
Таки да. Если посмотреть список дата-центров, предлагаемых при покупке хостинга, таки в Испании найти в 1000 раз сложнее, нежели в Норвегии)))
Dioxin
В Норвегии мало того что прохладнее, там еще и альтернативная энергетика не плохо развита.