Уютный домашний кластер.

18 июля 2017

ВНИМАНИЕ! ЭТА СТАТЬЯ НЕ ЯВЛЯЕТСЯ

РУКОВОДСТВОМ ПОЛЬЗОВАТЕЛЯ ИЛИ МЭНЬЮАЛОМ

ДЛЯ ЭСПЕРИМЕНТАТОРОВ! ЭТО ИСКЛЮЧИТЕЛЬНО МЫСЛИ АВТОРА!

ВЫ ЧИТАЕТЕ БЛОГ ПРО КОМПЬЮТЕРЫ! УЧТИТЕ ЭТО!

Всем нам давно известна технология кластерного вычисления или так называемые нод-единицы в системе, исполняющие задачи. Суть в том, что несколько машин работают под управлением одной операционной системы, либо являются нодами одной из систем вычислений. Если еще проще, то приложение/команда управляется ЦПУ с главного терминала, с тактовой частотой в, например, 18 Ггц. (не путать с 1,8 Ггц). То есть так ее видит система. Конечно, если у вас дома имеются десять одноядерных нутов с частотой 1,8 Ггц. Либо 5 по 3,6, либо два четырехъядерных по 2,25 и тому подобное.

Совсем скоро сдаст бразды правления 2017 год, а люд до сих пор не знает как объединить несколько машин в одну. Задача, к слову, непростая. Нет такого user friendly interface, чтоб все понятно, кнопку нажал, и понеслась Дота в рай, и рендер видео стал быстрее в 9000 раз. Чуть более, чем совсем. Однако, ничего сложного с практической точки зрения тут нет. Берем Солярис (не Станислава Лема, а нормальный, человечий), и в путь-дорожку!



Еще не закрыли статью? Лады, продолжим.

Немного терминологии:

Кластер — группа компьютеров, объединённых высокоскоростными каналами связи, представляющая с точки зрения пользователя единый аппаратный ресурс. Кластер - слабо связанная совокупность нескольких вычислительных систем, работающих совместно для выполнения общих приложений, и представляющихся пользователю единой системой. Один из первых архитекторов кластерной технологии Грегори Пфистер дал кластеру следующее определение: «Кластер — это разновидность параллельной или распределённой системы, которая:

  1. состоит из нескольких связанных между собой компьютеров;
  2. используется как единый, унифицированный компьютерный ресурс».

Обычно различают следующие основные виды кластеров:

  1. отказоустойчивые кластеры (High-availability clusters, HA, кластеры высокой доступности)
  2. кластеры с балансировкой нагрузки (Load balancing clusters)
  3. вычислительные кластеры (High performance computing clusters, HPC)
  4. системы распределенных вычислений

Теперь.. зачем это нам вообще нужно?

КАТ: СЛОЖНО.

ИНТРО: В наше время круг задач, требующих для своего решения применения мощных вычислительных ресурсов, постоянно расширяется. Это связано с тем, что произошли фундаментальные изменения в самой организации научных исследований. Вследствие широкого внедрения вычислительной техники, значительно усилилось направление численного моделирования и численного эксперимента. Численное моделирование, заполняя промежуток между физическими экспериментами и аналитическими подходами, позволило изучать явления, которые являются либо слишком сложными для исследования аналитическими методами, либо слишком дорогостоящими или опасными для экспериментального изучения. При этом численный эксперимент позволил значительно удешевить процесс научного и технологического поиска. Стало возможным моделировать в реальном времени процессы интенсивных физико-химических и ядерных реакций, глобальные атмосферные процессы, процессы экономического и промышленного развития регионов и т.д. Очевидно, что решение таких масштабных задач требует значительных вычислительных ресурсов.

ЗАВЯЗКА: Мощности современных процессоров вполне достаточно для решения элементарных шагов большинства задач, ну, там видосик про котиков посмотреть или пару каток в Доту совершить, а объединение нескольких десятков таких процессоров позволяет быстро и эффективно решать многие поставленные задачи, не прибегая к помощи мэйнфреймов (привет, Америка) и супер компьютеров.

КУЛЬМИНАЦИЯ : Сейчас в наших научных организациях и университетах, как правило, имеются энтузиасты бесплатного распространяемого ПО и специалисты по ОС Linux. В то же время парк более-менее современных персональных компьютеров в этих организациях так же имеется. Закономерно появилась идея создания параллельных вычислительных систем из общедоступных компьютеров на базе процессоров Intel и недорогих Ethernet-сетей, устанавив на эти компьютеры Linux и, объединив с помощью одной из бесплатно распространяемых коммуникационных библиотек (PVM или MPI) эти компьютеры в кластер. Оказалось, что на многих классах задач и при достаточном числе узлов такие системы дают производительность, сравнимую с той, что можно получить, используя дорогие суперкомпьютеры.

Проверим?

КАТ: ПРОСТО

Что вообще умеет такой зверь? Ну, при правильном подходе можно считать графику со сложной трассировкой лучей, с отскоками пучков вплоть до 100 (смотря какой движок используете, например, автор имеет ввиду исконно домашний Raytrace), правда только для ЦПУ движков, вроде короны или оных (смотря какой результат требуется, это вам не Гугл Скетч). Совсем уж энтузиастам рекомендовано пробовать просчитать погоду (CAUTION:AUTHORIZED PERSONNEL ONLY) или, например, отказоустойчивость рамных конструкций или вероятностные повреждения зданий при сейсмической активности (привет, Сочи). Словом, злая штука. А про автокад и архикад просто молчу.

Теперь практика.

И все-таки наследие Sun Microsystems велико. Но, не будем углубляться в детали и продолжим. Конечно, Debian. Конечно, Линукс. Положим, что есть единственная система, подходящая нам по всем параметрам. И нам необходимо ее установить. Естественно, есть тонны материалов в Интернете на эту тему, но автор прибегнет только к описанию одной системы.

Уровень PRO

Внимательно читаем лицензию (убеждаемся в том, что мы все делаем правильно, не нарушаем закон, и используем ПО исключительно по назначению). И, прежде чем скачать, убеждаемся в том, что вы полностью подготовлены к установке. (примечание автора: эта статья - не руководство к действию, вы читаете БЛОГ) Забегая вперед, скажу, что неокогнитрон Фукушимы у нас на практике не получится, но вот попытаться поставить виртуалку можно. А следом и наш любимый Виндоуз. Вот, кстати, весьма понятная инструкция на двухнодового друга. ENG ONLY.

Уровень EASY

Вполне представима ситуация, когда по каким-либо причинам развернуть стационарный кластер не представляется возможным. С помощью специализированного дистрибутиваPelicanHPC GNU Linux вы в любой момент, например после окончания рабочего дня и занятий в компьютерном классе, можете запустить кластер и на приведение его в боевую готовность потребуется не более пяти минут. Причем исходная операционная система, программное обеспечение и данные на используемых в качестве кластера компьютерах не будет модифицировано. После выключения кластера компьютеры придут в то состояние, которое было до начала работы кластера. То есть довольно просто и понятно.

Как это выглядит на практике? Да просто. Море проводов и без перфекционизма тут просто не обойтись, N-количество машин в системе. Да и собсно вся эта установка, которая будет приятно дуть теплым воздухом в холодное время года.

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

Примечание: из-за отсутствия у автора дома достаточного количества компьютеров, такой эксперимент представляется возможным только при совместном участии третьих лиц, если те преследуют конкретную цель. Однако, логика предельно проста и тут уж сам Бог велел попробовать это. И никакие Расберри Пай не смогут того, что сможет пару десятков Core 2 Duo. Начнем вычислять число Пи?

Благодарю за внимание.

Картинки по запросу cluster computer


Продолжение следует...