Модуль 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)


  1. zxweed
    28.11.2017 23:45

    здесь ещё не учтены расходы энергии на охлаждение, которые в несколько раз превышают энергопотребление самой вычислительной системы

    аффтар хочет сказать, что в высокоэффективных суперкомпьютерах PUE сильно больше двух? да у самого колхозного дата-центра он не превышает 1.7, а у обычных где-то около 1.3…


    1. NetBUG
      29.11.2017 02:14

      И мне кажется, до последнего времени эффективность распараллеливания падала, поскольку качество кода снижалось. Сейчас, правда, программисты понемногу начинают видеть смысл в качественном распаралелливании. Как минимум, Scala-программисты.


      1. Priapus
        29.11.2017 18:27

        Гуглите закон Амдала.


    1. Dioxin
      29.11.2017 09:40

      Для охлаждения ДЦ природа придумала сибирь и вечную мерзлоту


      1. Kobalt_x
        29.11.2017 10:51

        А электро инфраструктуры в тех широтах хватает?( Не сарказм, просто не слышал отдц в Сибири и Заполярье)


        1. Dioxin
          29.11.2017 11:04

          У нас — полно, причем еще и дешевле, т.к. генерация как раз там, в сибири.
          А вот интернет в сибири это посложнее.
          Есть прецеденты строительства ДЦ в прохладных регионах.


        1. exehoo
          29.11.2017 15:10

          Красноярская ГЭС как вариант. Там и интернет неплохой.


      1. alex-1917
        29.11.2017 11:34

        Таки да. Если посмотреть список дата-центров, предлагаемых при покупке хостинга, таки в Испании найти в 1000 раз сложнее, нежели в Норвегии)))


        1. Dioxin
          29.11.2017 12:11

          В Норвегии мало того что прохладнее, там еще и альтернативная энергетика не плохо развита.


  1. Kobalt_x
    29.11.2017 02:01

    Не понятно что за интерконнект используется, и что с производительностью в LinPack/Graph500 и не дешевле ли купить мелкий кластер на x86/Power8 за flops/$?
    На сайте никаких данных об этом не нашел


    1. pwrlnd
      29.11.2017 08:42

      Акцент делают не на производительность, а на количество ядер. В этом плане предложенный вами вариант в разы, а то и на порядок будет дороже.


      1. Kobalt_x
        29.11.2017 10:36

        Это не отменяет необходимости в тестах, может там даже тривиальные вещи не ускоряются из-за фигового интерконнекта


    1. Randl
      29.11.2017 16:39

      Идея в том чтобы, например, тестировать распределенные алгоритмы на большом количестве нод.


  1. yousoufian
    29.11.2017 05:59

    Как тяжело читать…
    image


  1. REPISOT
    29.11.2017 06:53

    Самого важного в статье нет — значения производительности.


  1. yurisv3
    29.11.2017 07:57

    Модули Raspberry Pi дают возможность разработчикам выяснить, как писать такое программное обеспечение и заставить его надёжно работать, без необходимости иметь испытательный стенд такого же размера стоимостью четверть миллиарда долларов и потребляющий 25 мегаватт электричества


    «Выяснить, как писать такое программное обеспечение и заставить его надёжно работать» — как ни странно, для этого вовсе не нужно несколько ведер «малины», достаточно софтверного симулятора. Причем можно прокачивать навык под самые разные кластерные архитектуры даже не отходя от кассы.


    1. mickvav
      29.11.2017 11:19

      Ну не совсем. Думаю, что чтобы «задышало» и научиться эффективно использовать инструменты, хватит 10-ка Pi-ев. А дальше уже смысла нет — оптимизировать под ттх целевой платформы уже имеет смысл только на ней самой.


      1. Bronto3
        29.11.2017 17:44
        -2

        то есть если
        что чтобы
        потому то что
        удалённый
        придумали программисты.))


    1. Gutt
      29.11.2017 16:06

      Боюсь, что нет. Нужно эмулировать задержку и пропускную способность интерконнета, производительность памяти и множество других вещей. Просто эмулятор на большом x86 покажет другую картинку. Но я не понимаю, почему Pi3, а не Compute Module 3? Поленились делать железку для связи и решили обойтись GigE-коммутатором?


  1. bearad
    29.11.2017 08:57

    А чем VM/docker не подходят для тестирования? При условии использования современного ПК, на том же docker + оркестратор можно поднимать сотни, если не тысячи, контейнеров.


    1. Kobalt_x
      29.11.2017 10:42

      Тем что утилизация ресурсов на задачу будет не полная из-за скачущих контекстов. Ускорение будет существенно ниже, для HPC это неприемлемо.
      Для предварительного тестирования можно и в VM и на локалхосте. Но здесь под тестированием подразумевается не отладка написанного а скорее оценка поведения на небольшом но полноценном кластере


      1. bearad
        30.11.2017 15:07

        Всегда в оценку можно заложить оверхед. Или создавать контейнеров не больше чем количество ядер, благо аренда более чем доступна (тот же ес2 на 32 ядра — 1.5 $/h. по требованию, не говоря про спот или предоплату).


  1. untilx
    29.11.2017 09:15

    Мне всегда было интересно вот что: есть т. н. вычислительные модули aka малина под разъём ddr, которые пихают в телеки и прочее. Так почему бы не сделать кластерную плату для, скажем, десятка модулей с внутренней сетью, роутингом на внешний интерфейс, охлаждением, каким-нибудь бп и чем-нибудь ещё? Конечно, для чего-то большого это не подошло бы, а для мелких задач и просто любителей было бы идеально. Я, по крайней мере, ничего такого не нашёл, сколько ни искал.


    1. DROS
      29.11.2017 09:30

      Мне кажется спрос на подобные вещи слишком уж низкий и просто не рентабельно разрабатывать, выпускать и поддерживать дальнейшее развитие. А так да, давно уже задумывался насчет подобной же темы. Но…


      1. untilx
        29.11.2017 11:14

        Учитывая, сколько народа покупает одноплатники десятками для домашних поделок, спрос будет. А если ещё и стандартизировать, чтобы другие производители могли пользоваться…


  1. Konachan700
    29.11.2017 14:52

    Но у RPi нет ничего для организации шины между модулями — сетка на usb (отжирающая суровый процент производительности), pci-e нет, ничего нет. USB на эту роль не годится.
    Для концепта, в качестве «смотрите что мы можем» — круто, для реальной ынтерпрайзной системы бессмысленно. Особенно учитывая то, что в каждую RPi из тысячи надо ставить флешку с образом — грузить ОС из сети оно по понятным причинам не умеет…


    1. h31
      29.11.2017 15:35

      Так это же не энтерпрайз, это лаборатория.


    1. Kobalt_x
      29.11.2017 15:58

      а ну тогда, можно закапывать, реальное ускорения на этом кластере можно будет увидеть только для задачах с малой долей коммуникации, а в реальных приложениях их немного. Коллективные коммуникации будут с супер тормозами


    1. nlykl
      29.11.2017 16:49

      Raspberry Pi 3 поддерживает загрузку по сети, флешка при этом не нужна.


      1. Konachan700
        29.11.2017 17:31

        Погуглил, и правда… Они в preboot запихнули весь usb-стек и драйвер usb-сетевушки…


  1. hydrogo
    29.11.2017 16:37

    А как насчет ограничений платформы ARM? Я полгода назад когда мониторил покупку малинки с идеей сделать из нее портативный инструмент для моих научных задач, то обнаружил, что conda туда не накатить, doker тоже какой-то особенный должен быть (или ось под ним) и т.д. В итоге решил не колхозить (навалил на старый хромбук SeaBios и PepermintOS).


  1. DjOnline
    29.11.2017 17:06

    Почему нельзя на видеокарте запустить тысячу независимых потоков, там до сих пор все сильно другое ?


    1. Kobalt_x
      29.11.2017 22:23

      Да там до сих пор всё сильно другое и устройство памяти и куча других нюансов, если их не учитывать, будет медленне чем на cpu, поэтому general purpose софта под gpu ~0. (правда была попытка amd запустить jvm, на картах, но там всё заглохло по вышеназванным причинам)


      1. DjOnline
        29.11.2017 23:31

        Речь не о том что медленнее чем на CPU, речь о том чтобы запустить 1000 потоков, так же как здесь на эти тысячах инстансах RPi.
        p.s. вопросы для того и задаются, чтобы прояснить.


        1. Norno
          30.11.2017 11:43

          (Сужу по статье) Здесь они все же хотели сделать тестовый стенд, который позволил бы людям, готовящим программы для суперкомпьютера, проверить свою программу/потренироваться, цели делать железку на которой будут считать не было. Для этого требуется много ядер (распределенные вычисления, синхронизация, обмен данными).
          А на GPU задачи решают, для этого есть CUDA (может сейчас есть еще что-то другое, не слежу).


    1. Alex_Q
      30.11.2017 00:06

      Потому что нельзя запустить на видеокарте тысячу независимых потоков. Там SIMD архитектура и количество независимых потоков будет равно количеству ALU (терминология AMD) или SMX (NVidia).


      1. Areso
        30.11.2017 07:15

        А CUDA-ядра? Скажем, у меня 1050 Ti, 6 SMX*128, итого 768 CUDA-ядер.
        Вряд ли 6 ядерный ЦПУ будет эффективнее в расчете хэшей этой видеокарты. Или как?


        1. Kobalt_x
          30.11.2017 09:26

          Ну вот вы и сможете максимум одновременно подбирать 6 разных хэшей или 1 но быстрее. Грубо говоря у вас количество различных по структуре задач равно числу SMX


        1. Alex_Q
          30.11.2017 21:52

          Вы сможете выполнять 6 независимых потоков на GPU. Что бы понять, что такое SIMD можно представить марширующих солдат — каждый из них делает одно и тоже движение в один и тот же момент времени, но в разных точках пространства.
          В каких то случаях SIMD полезен, к примеру при подборе хэшей. В каких то бесполезен — там, где нужно делать много ветвлений. Далеко не все алгоритмы могут быть эффективно реализованы на SIMD архитектурах. Там, где нужно принимать много решений, SIMD малополезен. Это как отправить солдат маршировать в ногу по пересечённой местности с оврагами и буреломом.


  1. firk
    29.11.2017 20:10

    Неужели эффективность (скорость/цена) таких устройств уже догнала хотя бы обычные x86, не говоря уже про железо, специализированное под расчёты?


  1. masai
    29.11.2017 20:14

    У нас на работе давно ходит шутка про кластер на смарткартах. Скоро, боюсь, шутка станет реальностью.


    1. c_kotik
      29.11.2017 21:55

      Пока вы шутите, другие разрабатывают!
      https://xakep.ru/2015/01/29/cluster-puzzlecluster/


  1. true-grue
    29.11.2017 22:56

    Сеймуру Крэю принадлежит след. знаменитый вопрос.

    «Если вам надо вспахать поле, то что вы используете: двух сильных волов или 1024 цыпленка»?


    1. Norno
      30.11.2017 11:56

      А если «собрать» рассыпанное зерно? Для каждой задачи свой инструмент.


      1. 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 для достижения малого времени отклика при обработки большого числа легковесных процессов. Но со временем, я перешел к архитектуре «барабанной» многопоточности в рамках единственного ядра-«вола».

        Подводя итог. «Цыпленок» представляет собой простой процессор/компьютер, который не проектировался специально для задач суперкомпьютерных вычислений. Разумеется, системы на основе «цыплят» часто дешевле в разработке и эксплуатации. Но время от времени возникают требования, когда уместнее оказывается подход Сэймура Крэя.


  1. Shrizt
    30.11.2017 16:22

    * ушел паять :)