Что такое кластер

Что такое кластер

Андрей Ривкин, технический менеджер инфраструктуры Яндекса

Коротко

Кластер — множество компьютеров, которые объединены в сеть и работают как единая система.

Подробнее

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

Но для создания вычислительного кластера недостаточно просто соединить компьютеры в локальную сеть. Необходимо программное обеспечение, которое соберёт их в единую логическую систему. В Яндексе для этого используют платформу с открытым исходным кодом YTsaurus. Она управляет кластерами и решает с их помощью задачи: от надёжного хранения данных до запуска машинного обучения на GPU.

История термина

В 1952 году у американского математика Дэниеля Слотника появилась идея: если подавать данные с магнитных лент сразу на несколько процессоров, то скорость обработки данных увеличится. Через 20 лет при его участии построили ILLIAC IV, первый компьютер с четырьмя процессорами и одну из быстрейших машин своего времени. Из-за больших расходов проект забросили, но идею не забыли.

Часть компьютера ILLIAC IV. Фотография: NASA/Ames Research Center

Простой пример

Кластеры решают задачи, которые легко делятся на подзадачи. Например, вам нужно подсчитать количество слов в большом тексте. Проще всего поступить так: поделить текст на сто небольших частей и раздать их исполнителям — то есть процессорам, — а потом собрать результаты и сложить их. Такая парадигма работы с данными называется MapReduce, в кластере чаще всего используют именно её.

MapReduce состоит из двух фаз: Map — выполняется параллельно на разных узлах кластера; и Reduce — объединяет результаты. Парадигма подходит для обработки больших объёмов данных и задач, которые можно распараллелить, чтобы задействовать для решения максимальное количество ресурсов.

Кластеры в Яндексе

Большие кластеры под управлением YTsaurus помогают большинству сервисов Яндекса решать задачи по обработке и хранению данных. Так, Яндекс Go использует кластер YTsaurus, чтобы прогнозировать спрос на такси. Кластеры с очень большой вычислительной мощностью — их называют суперкомпьютерами — выполняют ML-задачи, например обучают беспилотники, как распознавать объекты.

Report Page