Как построить суперкомпьютер, связав обычные ПК в сети?

1844
Dihelson Mendonça

Fellows,

У меня есть несколько компьютеров, некоторые новые, некоторые старые (я собираю их, так как мой первый, который имеет 2 КБ ОЗУ, с 1979 года). Коллекция становится огромной, но цель этого вопроса связана с тем, что я всегда любил мощь суперкомпьютеров или, по крайней мере, мощь больших машин).

Я когда-либо думал об идее объединения машин, чтобы получить более мощный. Я использую локальную сеть (локальную сеть) 1Gbit Apeed, где 4 машины Intel i7 2600k работают на 4,8 ГГц водяном охладителе, каждая с 16 МБ ОЗУ, SSD и обычными жесткими дисками, в общей сложности 30 ТБ (всего в локальной сети ). Прочитав статьи и просмотрев много видео о виртуализации, я подвергаю сомнению возможность установки на каждую машину гипервизоров типа «голый металл» (тип 1), а затем создания виртуальной машины, которая распространяется на физические машины, чтобы я мог установить операционную систему, например Windows. кроме того, для запуска программ, которые требуют много ресурсов, таких как процессор, оперативная память, жесткий диск и т. д.

Я предполагаю, что должен быть способ, которым виртуальная машина «думает», что она установлена ​​на одной машине, но на самом деле она распространяется по нескольким узлам (например, кластеру). Что касается виртуальной машины, она рассматривает систему как одну большую машину, но на самом деле есть общий процессор, общая оперативная память и общие жесткие диски.

Используя этот способ, мы могли бы установить OP и запустить, например, Adobe After Effects или Adobe Premiere, которые нуждаются в выдающейся параллельной обработке (или мощности процессора) для предварительного просмотра в реальном времени или для запуска сложного программного обеспечения, которое может принести пользу от нескольких процессоров. Я знаю, что многие люди предложили бы купить большую многоядерную, многоядерную машину Xeon для параллельной обработки, но это не так ... Мне нравится думать, что с существующей технологией должен быть способ объединения ПК и получить больше вычислительной мощности.

Я вижу людей, присоединяющихся к Raspberry pi и создающих «суперкомпьютеры» на youtube, с одним терафлопом, поэтому почему мы не можем сделать это с нашими собственными машинами, которые имеют LAN, ram, диски ... это не то же самое нам нужно только программное обеспечение и как это сделать, нет? Является ли это возможным ? Как это сделать ?

Спасибо

2
«Я полагаю, что должен быть способ, которым виртуальная машина« думает », что она установлена ​​на одной машине» - да, это определенно только ваше воображение. Нет Кроме того, как насчет некоторых параграфов? Daniel B 7 лет назад 0
@ Даниэль Б, возможно, ты не понял. Когда я сказал, что виртуальная машина «думает», что она установлена ​​на одной машине, я не предполагал, что «машина» может думать. Действительно, виртуальные машины ВСЕГДА видят хост уже как физическую машину. Я пытаюсь сказать, что виртуальная машина увидит систему как уникальную машину. Спасибо за подсказку по абзацам. Dihelson Mendonça 7 лет назад 0
1 «терафлоп» означает 1 «триллион инструкций с плавающей запятой в минуту». Такие метрики могут вводить в заблуждение, если вы не понимаете, что они означают, а также могут вводить в заблуждение, если у них нет контекста. Этот 1 «терафлоп» может просто означать, что они могут запускать SuperPI в кластере и получать эти показатели именно с помощью только этого программного обеспечения. txtechhelp 7 лет назад 0
_В последнее время я видел одну рабочую станцию, способную на 20 терафлопс_. Мой 5-летний процессор Intel Core i7 с тактовой частотой 2,4 ГГц способен приблизительно [153 MEGAFLOPS] (https://en.wikipedia.org/wiki/FLOPS#FLOPs_per_cycle) .. просто для справки. txtechhelp 7 лет назад 0
@ DihelsonMendonça Нет, я все прекрасно понял. Вы хотите каким-то образом взять все ресурсы с этих компьютеров и объединить их в виртуальный компьютер, который «запустит Crysis». Однако это невозможно. Кластеры работают со специализированным программным обеспечением, которое учитывает кластеры. Daniel B 7 лет назад 0
Здравствуйте, @txtechhelp, просто чтобы показать вам ссылку для рабочей станции 20Tflop: https://www.extremetech.com/extreme/199745-boxxs-new-workstation-packs-five-gpus-and-over-20-tflops- из-вычислительно лошадиных сил Dihelson Mendonça 7 лет назад 0
@ DihelsonMendonça .. Я видел это раньше, это впечатляющая сборка, но мощность (например, FLOPS) в основном от графического процессора .. В частности, ядра CUDA в этих картах. Графические процессоры в основном параллельны, которые хорошо подходят для «суперкомпьютеров», но являются специализированными и дорогими. Была проделана большая удивительная работа, чтобы попытаться запустить «нормальные» приложения на графических процессорах… но, вероятно, она останется «естественной» по своей природе, поскольку обычный человек только когда-либо просматривает веб-страницы и редактирует документы (что было сделано хорошо на CPU более 20 лет). txtechhelp 7 лет назад 0

3 ответа на вопрос

3
Mr. Raspberry

К сожалению, пока что «суперкомпьютер», который вы хотите запустить, еще не разработан с точки зрения аппаратного и программного обеспечения.

Существующие гипервизоры для виртуализации, такие как Hyper-V, VMware ESXi, XenServer, позволяют запускать виртуальные машины на одном хосте или в кластере. Гипервизор использует аппаратный процессор, оперативную память и хранилище и «конвертирует» его в виртуальные ресурсы для запуска виртуальных машин. Что касается хранилища, его можно настроить в общих томах, которые зеркалируются между хостами с использованием сетевого подключения к передаче данных (например, iSCSI SAN, VMware VSAN, StarWind VSAN и т. Д.), Но все же каждая виртуальная машина использует только локальные вычислительные ЦП и ОЗУ.

Исходя из моего опыта, не существует программного или аппаратного обеспечения, которое могло бы объединить ЦП, ОЗУ и хранилище, поскольку нет типа шины, который мог бы обслуживать связь между хостами «суперкомпьютера».

2
oldmud0

Приложения ограничены теми, которые эффективно используют ваши данные ресурсы. Вы не можете запустить After Effects на своем «суперкомпьютере», если не существует программного обеспечения, которое знает, как разделить рабочую нагрузку между всеми вашими подчиненными.

Во-первых, у вас нет необходимого программного обеспечения. Даже если вы приобретаете необходимое программное обеспечение для виртуализации (любой ценой или если компания даже готова продать его вам!), Существуют минимальные требования для кластера, которые обычно включают в себя почти идентичные спецификации. Самая близкая вещь, которую я мог найти, - VMware ESXi.

Во-вторых, компьютеры, связывающиеся друг с другом, сталкиваются с огромными штрафами, которые практически сводят на нет любое повышение производительности. Совместное использование ОЗУ по сети происходит слишком медленно, чтобы быть жизнеспособным, а совместное использование диска через iSCSI может оказаться не таким надежным, как вы ожидали.

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

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

Считаете ли вы, что на этих суперкомпьютерах, созданных десятками Raspberry Pi, связанных друг с другом через локальную сеть, работает программное обеспечение? Почему я не могу получить его и установить тоже? Это будет не совместимо? Из того, что я видел, есть некоторый дистрибутив Linux, который работает на этих кластерах, и по крайней мере один Ubuntu сделан специально для него. Конечно, вы правы во многих отношениях, таких как оперативная память и управление питанием. А как насчет подключения через 10 Мбит волокна? Как связаны узлы суперкомпьютера? Dihelson Mendonça 7 лет назад 0
@ DihelsonMendonça Десятки Raspberry Pis на самом деле не создают суперкомпьютер, поскольку вычислительная мощность не является исключительной. То, что вы ищете, это кластер Беовульфа, и я предлагаю вам продолжить исследования, чтобы увидеть, является ли то, что вы хотите, жизнеспособным или нет. oldmud0 7 лет назад 0
@ DihelsonMendonça «суперкомпьютерные» узлы обычно напрямую связаны друг с другом через оптоволоконные каналы порядка 10000 Мбит / с .. не 10/100/1000. То, что вы пытаетесь достичь, вполне возможно, и это было сделано, поскольку компьютеры могут быть связаны друг с другом, вам нужно что-то вроде [кластера Беовульфа] (https://en.wikipedia.org/wiki/Beowulf_cluster) .. вы однако в соответствии с законом убывающей отдачи. Кластер из 10 Пи с тактовой частотой 1 ГГц и 512 МБ ОЗУ каждый не будет равен «суперкомпьютеру» с тактовой частотой 10 ГГц и 5 ГБ ОЗУ ... txtechhelp 7 лет назад 0
@ oldmud0 .. [OpenMPI] (https://en.wikipedia.org/wiki/OpenMPI) - одна из наиболее популярных версий программного обеспечения для кластеризации с открытым исходным кодом. txtechhelp 7 лет назад 0
Спасибо за идеи, oldmund и @txtechhelp, которые действительно проливают свет на этот вопрос. Я исследую больше о кластере Беовульф. Я видел несколько проектов, использующих RasPberry Pi, и, конечно, они не являются «суперкомпьютерами» по сравнению с TITAN, но, учитывая обработку, даже наши смартфоны можно считать суперкомпьютерами по сравнению с теми из 80-х. Недавно я увидел одну рабочую станцию, способную на 20 терафлопс. Но для моего Adobe After Effects я проконсультировался со специалистом в Adobe, и он сказал, что машина, способная делать предварительный просмотр в реальном времени, будет стоить не менее 120 000 долларов США. Dihelson Mendonça 7 лет назад 0
@ DihelsonMendonça .. для предварительного просмотра в реальном времени, да. Обработка графики сильно отличается от «нормальной» обработки. Возможно, вы захотите взглянуть на что-то вроде кластера NVidia CUDA. Но $ 120 тыс. За кластер, способный на такую ​​обработку, звучит примерно так же, как современные технологии. Вы должны заметить, что суперкомпьютер предназначен для параллельной обработки, а не потоковой обработки (вокруг которой разработано большинство пользовательских приложений), поэтому на самом деле суперкомпьютер 80-х годов по-прежнему намного мощнее современных «суперкомпьютерных» телефонов. txtechhelp 7 лет назад 0
2
Darren

Это на самом деле может быть сделано. Раньше был дистрибутив Linux под названием ClusterKnoppix, основанный на форке с открытым исходным кодом все еще доступного, но бесплатного AFAICS, пакета Linux под названием Mosix .

Из руководства администратора:

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

Что оно делает:

Предоставляет единый образ системы.

- Пользователи могут войти в систему на любом узле, и им не нужно знать, где работают их программы.

- Нет необходимости изменять или связывать приложения со специальными библиотеками.

Автоматическое обнаружение ресурсов и распределение рабочей нагрузки.

Но

Все узлы должны иметь 64-разрядную архитектуру x86. Все ядра одного и того же узла должны иметь одинаковую скорость.

Так что это может не соответствовать вашим конкретным требованиям.

Похожие вопросы