Кластеры на Ubuntu – создай себе суперкомпьютер

Операционная система Ubuntu может быть использована для создания кластеров – своего рода аналога суперкомпьютеров. Кстати, Unix-подобные системы пользуются огромной популярностью и на суперкомпьютерах устанавливают только эти операционные системы. Существуют вычисления, которые требуют огромных мощностей. Например, обсчёты 3D-фильмов, или научные расчёты течения сложных химических, биохимических, физических процессах, протекающих во Вселенной. Время аренды суперкомпьютеров очень дорогое, так как это уникальные аппаратно-программные комплексы, существующие в исчислимом количестве и на них моделируются самые разные важные задачи. Не все университеты могут позволить себе аренду суперкомпьютеров. Но в действительности это не беда. Все дистрибутивы Linux можно приспособить для решения сложных задач. Если конечно, в парке присутствуют и другие компьютеры. Кластер, грубо говоря, это совокупность аппаратно-программных комплексов, компьютеров в сети, которые участвуют в параллельных вычислениях.

А почему бы и нет. Одна огромная задача делится на параллельные потоки и Ubuntu в этой схеме приобретает огромную важность. Почему именно Ubuntu? Потому что легко ставить пакеты, потому что для этой задачи в Ubuntu есть всё необходимое, потому что установить Ubuntu может даже школьник, не говоря уже о профессорско-преподавательском составе. И действительно, часто эту задачу поручают либо студентам либо младшим научным сотрудникам. Например, создать кластер для расчёта кинетического уравнения течения биохимических задач весьма просто.

Что необходимо для создания кластера на Ubuntu?

1. Хотя бы два компьютера в сети.

2. Дистрибутив Ubuntu.

3. Интернет-канал.

Принципиально схема кластера такова. Одна машина выполняет роль сервера кластера (главного компьютера, раздающего задачи). Остальные машины – клиенты этого кластера. Они получают задание от сервере, выполняют их и возвращают результат на сервер. На сервере настраивается и монтируется сетевая файловая система NFS. В каталогах этой системы хранятся параллельные задачи: программные модули, файлы, исходные данные. Каждый клиент монтирует себе эту файловую систему, формируя таким образом что-то вроде одного большого общего каталога. Затем ставятся необходимые компиляторы (Pascal, Fortran, C, C++ и так далее). Их можно установить только на сервер, а каталоги с ними можно монтировать к клиентам. Далее запускается специальный сервис, который следит за очередью задач. Таким образом у нас формируется своего рода суперкомпьютер с несколькими ядрами (чем больше компьютеров в сети, тем больше ядер) и увеличенной ОЗУ. Такова теория процесса создания кластеров.