Страница 1 из 6

Помогите поднять кластер

Добавлено: 24 окт 2012, 20:46
homecluster
Этой темой " Помогите поднять кластер" пользователь homecluster задал повод для разговора... а после этого вытер все свои сообщения, заменив их якобы глубокомысленным: "Просто слова".

P.S. Как утверждает один мой знакомый:
Если вас обидели, то лучший способ отомстить обидчику это: набрать полный рот говна, тщательно его переживать до однородной консистенции, и выплюнуть обидчику в морду!
Но как бы там не было, в результате обсуждений в этой теме были подняты действующие модели многомашинных кластеров.

Все сообщения, которые по ходу обсуждения homecluster вытер, заменив их своим глубокомысленным "Просто слова" - вытерты, но по цитированиям основной ход обсуждений, который привёл к работающим вариантам кластерных структур, восстанавливается.

Re: Помогите поднять кластер

Добавлено: 24 окт 2012, 22:34
Olej
homecluster писал(а):Есть 4 компьютера. Хочу сделать из них кластер. Но мои поиски понятной пошаговой инструкции как поднять кластер не увенчались успехом.
1. Определитесь что вы хотите понимать как кластер, для каких целей он нужен.
Под термином кластер часто понимают разные вещи, в зависимости от того, какие задачи ставятся.

2. Под какой операционной системой вы хотите чтобы работал кластер?

3. Есть несколько открытых проектов ПО для построения универсальных кластеров.
Начните с поиска.

4. Посмотрите в сторону описаний работ CERN, Андронный Коллайдер и т. д. - они используют мощные кластерные структуры, построенные на Scientific Linux (это такой клон RedHat). Обратите внимание в сообщениях на названия пакетов, с помощью которых они это организовывают - CERN достаточно открыт в публикациях, и хорошо делятся информацией.
homecluster писал(а): Можем кто нибудь делал что нибудь похожее. Поделитесь опытом.
Я когда-то занимался подобными вещами. Но под операционной системой QNX. Потом позже эти результаты и исходные коды вошли в 2005 г. в книгу. ... Вот в эту ;-) :
Изображение
(но вам это не сильно поможет: там была OS QNX - операционная система с уникальной сетевой прозрачностью ... не достижимой до такого уровня ни к какой моноядерной OS, в том числе, естественно, и Linux :-( ).

С удовольствием поделюсь чем могу, если у вас будут вопросы ... и не угаснет азарт ;-)
homecluster писал(а): Я буду делать и сообщать о результате. Может получиться HOWTO. Может ещё кому пригодятся полученные знания.
Неплохое начинание.

Re: Помогите поднять кластер

Добавлено: 25 окт 2012, 00:32
Olej
Olej писал(а):
homecluster писал(а):Есть 4 компьютера. Хочу сделать из них кластер. Но мои поиски понятной пошаговой инструкции как поднять кластер не увенчались успехом.
1. Определитесь что вы хотите понимать как кластер, для каких целей он нужен.
Под термином кластер часто понимают разные вещи, в зависимости от того, какие задачи ставятся.
Обратите внимание:

- когда N хостов объединяются для распараллеливания задачи на N частей - это называют кластер...
- и далеко не всякую задачу в такой системе можно распараллелить ... точно так же, как в SMP на N процессорах, и для таких задач кластер становится совершенно бесполезным;
- и когда N (=3, например) хостов объединяют для того, чтобы при выходе одного хоста из строя вся система продолжала жить - это тоже называют кластер ... хотя здесь ни на % не увеличивается производительность, вопрос в живучести;
- и когда те же N (=3, например) хостов работают по мажоритарному принципу "2 из 3" для контроля надёжности (верности) полученного результата - это тоже называют кластер;

Так что это достаточно неоднозначно, и нужно хорошо определиться что же хочется получить?

Re: Помогите поднять кластер

Добавлено: 25 окт 2012, 13:31
Olej
homecluster писал(а): Говоря про 4 компьютера я не уточнил некоторые детали. Все 4 компьютера находятся в одном корпусе формата miditower. То есть формально это один компьютер в котором 4 компьютера.
Это не принципиально важно, это всё конструктивные подробности.
Важно как эти 4 компьютера связаны между собой, какими каналами могут обмениваться информацией.
Здесь (укрупнённо) могут быть 2 варианта:

1. слабо связанные системы, когда эти 4 хоста связаны линиями связи, по типу Ethernet (скорость здесь может быть самая разная: 100Mb/s, 1Gb/s, 10Gb/s ...)

2. сильно связанные системы, когда процессоры связаны внутренними шинами обмена (обычно на очень высокой скорости), сюда относятся все SMP (многоядерные - которые на сегодня стали уже обычными настольными компьютерами), вычислители на графических GPU технологии CUDA NVIDIA, любые разные специализированные SIMD архитектуры... ещё недавно были такие микросхемы как транспьютеры, на которых строились замечательные суперкомпьютеры, но они умерли как архитектура.

Вы говорите, как я понимаю, о 1-й категории.
homecluster писал(а): Я позиционирую такие образцы вычислительной техники как персональные суперкомпьютеры.
Скорее более простой и более дешёвый способ попробовать "персональный суперкомпьютер" - это купить за $100 или чуть больше что-то из новых выдеокарт NVIDIA, и поэкспериментировать с параллельными вычислениями на GPU ... как слегка описано здесь: NVIDIA & CUDA. Там даже самые дешёвые модели GPU ведут вычисления в 48 процессоров. И это очень многое проясняет ... в том числе и в отношении сложностей с параллельными вычислениями.

Посмотрите ещё вот это: параллельность + синхронизации (примеры)
homecluster писал(а): И поскольку есть дистрибутивы которые могут быть установлены на обычные компьютеры то очевидно должен быть дистрибутив который можно установить на персональный суперкомпьютер.
Не совсем так:
Есть отдельные независимые проекты (пакеты) которые позволяют организовать кластерную работу слабо связанной системы компьютеров, каждый из которых работает под самой обычной операционной системой Linux.
homecluster писал(а): То что у вас есть книга в которой вы описывали свой практический опыт в работе с QNX то может быть на основе вашей книги и ваших наработок сделать такой дистрибутив для персонального суперкомпьютера с возможностью его включения в различных режимах, в том числе и в режиме кластера.
Там просто сделан и показан такой кластер. И работающий.
Но операционная система QNX - это совершенно особая операционная система ... она вас не должна интересовать: она не годится для работы в качестве операционной системы общего применения (GPOS), это операционная система реального времени (RTOS), для встраиваемых или экстремально надёжных систем, заточенная на работу не с пользователем-человеком, а с железом.

Но!
Самое главное и сложное в кластерной системе (и любой параллельной, суперкомпьютерной) не то, как её сделать, а то а).какие классы задач вы собираетесь на ней решать, и б). каким образом вы станете распараллеливать вычислительную мощность на N процессоров. Для очень многих задач даже если вы имейте суперкомпьютер на 1000 процессоров, или 10000 процессоров (что всё уже становится реальной возможностью) задача ваша может выполняться только на 1-м процессоре, а все остальные будут тупо простаивать.

P.S. Посмотрите ещё ссылки, которые приводились здесь: Практические применения Linux.

Re: Помогите поднять кластер

Добавлено: 25 окт 2012, 13:36
Olej
homecluster писал(а):
Olej писал(а): Так что это достаточно неоднозначно, и нужно хорошо определиться что же хочется получить?
Мне видится вариант когда в загрузочном меню можно было бы выбрать любой из перечисленных вами вариантов.
Это настолько разные задачи, что целесообразнее (экономически, по трудоёмкости, объёму и сложности проекта и т.п.) затачивать проект на какое-то из этих направлений.

Тем более, что эти требования не возникают одновременно в одной и той же области применения, они отчасти противоречат друг-другу.

И тем более, что универсальные (комбинированные) решения никогда не реализовывают свои возможности лучше, чем специализированные решения, заточенные только под одно конкретное направление.

Re: Помогите поднять кластер

Добавлено: 25 окт 2012, 13:55
Olej
Olej писал(а): Не совсем так:
Есть отдельные независимые проекты (пакеты) которые позволяют организовать кластерную работу слабо связанной системы компьютеров, каждый из которых работает под самой обычной операционной системой Linux.
В любом случае, начинать нужно с поиска:
- я подсказываю, что существуют общедоступные программы организации кластеров а). на универсальных компьютерах, б). под управлением самого обычного Linux и в). без использования какого-либо специального hardware;
- а вы, подкреплённые знанием что такое существует, ищите конкретные проекты ;-)

Вот элементарный поиск на Yandex "на обум" даёт результат:
Нашлось
492 тыс. ответов
Среди них есть совсем любопытные - Практическое руководство по параллельным вычислениям :
Этот сайт посвящен вопросу организации параллельных вычислений, без использования суперкомпьютеров. Или, если угодно, как построить суперкомпьютер из подручных материалов.
Там есть что почитать - Как быстро построить кластер?
Ничего страшного! С помощью специализированного дистрибутива PelicanHPC GNU Linux вы в любой момент, например после окончания рабочего дня и занятий в компьютерном классе, можете запустить кластер и на приведение его в боевую готовность потребуется не более пяти минут. Причем исходная операционная система, программное обеспечение и данные на используемых в качестве кластера компьютерах не будет модифицировано. После выключения кластера компьютеры придут в то состояние, которое было до начала работы кластера.
А также - Нужно ли делать кластер?
Если ваша задача не имеет внутреннего параллелизма и не адаптирована соответствующим образом, максимум, что вы можете получить от кластера -- это запуск на выполнение нескольких экземпляров программы одновременно, работающих с различными начальными данными. ... Можно привести следующую аналогию: один корабль переплывает море за 7 дней, но семь кораблей не смогут переплыть море за день.
Если вдуматься как следует, то закон, на самом деле, страшный. Предположим, что в вашей программе лишь 10% последовательных операций, т.е. f=0.1 . Что утверждает закон? А он говорит о том, что сколько бы вы процессоров не использовали, ускорения работы программы более, чем в десять раз никак не получите... да и то 10 - это теоретическая верхняя оценка самого лучшего случая, когда никаких других отрицательных факторов нет... :((
:lol:

Re: Помогите поднять кластер

Добавлено: 25 окт 2012, 14:18
Olej
Olej писал(а):
homecluster писал(а): Говоря про 4 компьютера я не уточнил некоторые детали. Все 4 компьютера находятся в одном корпусе формата miditower. То есть формально это один компьютер в котором 4 компьютера.
1. слабо связанные системы, когда эти 4 хоста связаны линиями связи, по типу Ethernet (скорость здесь может быть самая разная: 100Mb/s, 1Gb/s, 10Gb/s ...)
Для того, чтобы разобраться, посмотреть ... и даже руками пощупать, поучаствовать - в том, что есть такое "слабо связанные кластерные системы", есть такой очень интересный проект, доступный для всех желающих - distributed.net :
distributed.net — одно из старейших, если не самое старое сетевое сообщество распределённых вычислений. Возникло достаточно стихийным образом — на волне погони за денежными призами от компании RSA Data Security.
Вот вам URL некоторых русскоязычных "команд", развлекающихся ;-) в этом проекте:
- Проекты распределённых вычислений
- Приветствуем вас на сайте Украинской команды распределенных вычислений !
- Прочие русскоязычные команды
Они, как мне кажется, и на сегодня очень даже живые ... на 2-м URL последняя публикация 15.10.2012, неделю назад...

Я детально знакомился с проектом давно ... в конце 90-х, по состоянию на это время - это безумно интересный проект. Вот вам и территориально разнесённый кластер на пару-тройку миллионов процессоров ;-) .

P.S. А вот вам ещё пару ссылок на открытые платформы для организации таких распределённых вычислений:
- The Cosm Project
- BOINC
BOINC (англ. Berkeley Open Infrastructure for Network Computing) — открытая программная платформа (университета) Беркли для GRID вычислений) — некоммерческое межплатформенное ПО для организации распределённых вычислений.
Что вы можете напрямую использовать и для своего кластера.

Re: Помогите поднять кластер

Добавлено: 26 окт 2012, 22:34
Olej
homecluster писал(а): Сделав свой дистрибутив у вас появятся пользователи вашего дистрибутива и авторы тем на вашем форуме.
1. Это не мой форум, этот форум не имеет ко мне никакого отношения ... как, впрочем, и я к нему :lol:
Это просто хорошо задуманный сайт (по своей идее ... объяснить? ;-) ), и форум при нём.
А поэтому я охотно отвечаю на вопросы на этом форуме (а вот на многих других околокомпьютерных форумах рассказываю им нелицеприятную правду, а они меня банят ... так и живём ;-) )
homecluster писал(а): А вы можете стать автором своего дистрибутива линукс?
2. А зачем нужен ещё один дистрибутив Linux?
Посмотрите сюда: http://distrowatch.com/dwres.php?resource=popularity ... и содрогнитесь :lol:
Попробуйте ясно сформулировать ответ на этот простой вопрос!
Попробуйте подумать (домашнее задание):
- зачем нужен дистрибутив 1-му космическому касманафту :lol: ?
- зачем нужен дистрибутив Fedora?
- зачем нужен (и вообще нужен ли на сегодня) дистрибутив Slackware?
- по всем прочим 324 дистрибутивов (по вот той ссылке http://distrowatch.com/dwres.php?resource=popularity) тоже неплохо подумать о том же ;-)

3. Я всегда считал, что лучшие проекты в области IT находятся в области прикладных приложений, применений компьютерных технологий к разрешению конкретных потребностей других областей человеческой деятельности.
Работа IT на потребности IT - это мыльный пузырь, "дутая" область инноваций.
Это то же, чем отличаются монетарная экономика "финансового пузыря" от реальной экономики "земли и стали" ... если вы поймёте о чём я имею в виду сказать :oops: .
В этом смысле почитайте ещё вот это: Правда и мифы об инновационной экономике, это интересно и поучительно:
То есть если истеблишмент сумел внушить обществу нечто, и оно это приняло, то через какое-то время истеблишмент сам начинает в это искренне верить. Так получилось и с легендой о том, что наступила смена технологического уклада, соизмеримая с наступлением эпохи угля и стали или эпохи нефти и пластмасс, и научно-технический прогресс сейчас быстрее, чем когда-либо в прошлом. Именно легендой. Ею является и «новая экономика», и новый технологический уклад. Потому что на самом деле персональные компьютеры и информационные технологии, безусловно, являясь качественно новыми продуктами и создавая значительный новый спрос, вовсе не так сильно изменили нашу жизнь — вне всякого сомнения, меньше, чем в свое время железные дороги или телеграф.
Потому что «новый технологический уклад, основанный в первую очередь на микроэлектронике, компьютерах и информационных технологиях, нано- и биотехнологиях» (встречается во многих публицистических и официальных документах всех больших стран), — сказки, ничего подобного нет,
Если вы и вправду любите компьютерные технологии (а не просто ищите себе популярности и занятия где попало ;-) ) - то ищите себя в области прикладных проектов. Есть такой, как пример, достаточно известный ресурс RSDN + его форумы ... и кто-то считает что это "круто", я вот считаю, что это всего лишь "отстой с понтами" - ... при весьма низком профессиональном уровне (правда я не заглядывал туда лет 5). Так вот там они всё порываются годами всё свои новые операционные системы лепить... Это одно сразу является показателем уровня (точнее, отсутствия всякого уровня).
homecluster писал(а):А если вы станете автором своего дистрибутива для персонального суперкомпьютера то у вас появятся не только пользователи софта но и пользователи аппаратной части которые тоже станут авторами своих вопросов на форуме.
За мной (часто вместе с другими коллегами) достаточно немало доведенных до ума и внедрённых прикладных проектов, часть которых до сих пор пользуют достаточно многие в них нуждающиеся, ... кое-что из них до сих пор стоит на боевом дежурстве охраны вашей страны. Собирать "под себя" дистрибутив Linux (при том, что я категорически не вижу ответа на вопрос: "а зачем?") это было бы слишком сильным понижением статуса :lol: ... Как-то это напомнило (с усмешкой): "для Атоса это слишком много, а для графа де ла Фер - слишком мало"(с) :lol:

Re: Помогите поднять кластер

Добавлено: 27 окт 2012, 01:55
Olej
homecluster писал(а):могу обсудить с вами все интересующие вопросы.
Для долгосрочного проекта сделать дистрибутив для улучшенной поддержки кластерных вычислений - не есть хорошая бизнес-идея. Тем более, что такой дистрибутив уже замечательно есть, и это RedHat ;-) ... там у них очень много (всё необходимое?) для поддержки кластерных структур.

А уже тем более для успешного бизнес-проекта, рассчитанного на коммерческий успех - должна быть свежая бизнес-идея: чем он должен отличаться от существующих дистрибутивов. Вот у RedHat такая свежая (на то время) идея была - сосредоточится исключительно на осуществлении поддержки корпоративных клиентов в Linux.

Но на сегодня всё, что а). десктопные компьютеры, б). процессоры Intel x86, в). системы (дистрибутивы) для них - это всё отработанный материал, рынок, крутящийся по инерции ... здесь не может быть свежих идей. И крупнейшие корпоративные игроки IT рынка это замечательно понимают, и ищут бизнес-идеи в совсем других нишах:
- процессоры ARM
- мобильные архитектуры
- облачные (распределённые, сетевые) инструменты
Всё интересное будет происходить только здесь.

Re: Помогите поднять кластер

Добавлено: 27 окт 2012, 09:58
Olej
homecluster писал(а):Этот дистрибутив ориентирован на работу на серверах.
homecluster писал(а): Это не совсем так.

Если вас смущает RedHat, посмотрите в сторону CentOS.
homecluster писал(а):Почитайте минимальные требования для поднятия кластера на RED HAT. Для моего персонального суперкомпьютера такой дистрибутив слишком тяжёлый.
Когда вы говорите "почитайте", то давайте точную ссылку (я вам везде показывал проверенные URL).
а). мне не хочется искать неизвестно где не такой уж и важный материал б). неизвестного срока давности и в). хотелось бы в разговоре иметь в виду одни и те же источники.