Виртуальный процессор и расширенные сетевые Linux и Windows - PullRequest
1 голос
/ 08 февраля 2011

Привет всем, прежде чем я начну свой вопрос:

если вы не хотите читать, перейдите к вопросу

Предположим:

  1. У меня есть доступ к обоим Linux (Ubuntu) & Windows (XP и выше, за исключением окна виста) в огромных количествах.
  2. Я знаком с Ассемблером, и я иметь хорошее, если не продвинутое понимание C ++.
  3. Я знаком с обоими окна (эксперт) & Linux (intermidiate)
  4. Я знаком с драйверами (windows)
  5. Я хорошо разбираюсь в сетях и имею настроить несколько моих собственных
  6. Я готов пойти на все, чтобы достичь этого (не деньгами, а временем / усилиями)
  7. Я знаю, по крайней мере, о нескольких практических проблемах (местах памяти)

За эти годы я собрал большое количество компьютеров (50), которые я больше не использую. Недавно я начал думать о том, что это за трата, я хотел перерабатывать эти компьютеры / снова использовать их. Так родилась эта идея: я хочу объединить их все по сети и передать их общую скорость процессора на мой хост-компьютер. У меня уже установлен какой-то кластерный компьютер, сейчас он всего 5 компьютеров. И сеть разделяет это жесткие диски / мониторы / клавиатуры / мыши, я хочу добавить процессоры в этот список.

Вопрос:

  1. Могу ли я - и если могу, как мне действовать, объединить все процессоры других компьютеров, распределенных по моей сети, и сделать так, чтобы мой хост-компьютер Windows Server 2008r2 отображался как процессор (ы)? IA. Можно ли имитировать процессор?

  2. Как я могу максимально быстро передать питание / результат работы компьютера с одного компьютера на хост-компьютер?

  3. Как я могу разделить всю свою физическую память по этой сети (ОЗУ, в диапазоне от 1 до 3)

Заранее спасибо; -)

пс:

Я понимаю, что этого почти невозможно достичь, прочитайте, предположим, 6.

EDIT:

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

Но спасибо всем за предложения: D

Ответы [ 5 ]

1 голос
/ 08 февраля 2011

Если вы хотите смоделировать набор виртуальных процессоров в Windows 2008 и фактически получить больше энергии, чем вы теряете при задержке в сети, то я не думаю, что вы можете сделать это в одиночку в течение всей жизни. Возможно, вы сможете, в этом случае я рекомендую вас каждому работодателю, которого я знаю.

Что вы можете сделать, это выбрать унифицированную дистрибутив Linux и запустить ее (как виртуальную машину на Windows-боксах или как собственную) на всех системах. Установите реализацию MPI на каждом, и пусть они соединяются друг с другом. Теперь вы можете писать распределенные приложения, как на суперкомпьютерах. Я бы порекомендовал 10Gb Ethernet соединения между узлами. Вам придется писать специальные приложения MPI, чтобы воспользоваться преимуществами.

0 голосов
/ 24 февраля 2011

Я также должен порекомендовать Kerrighed (http://www.kerrighed.org/wiki/index.php/Main_Page)

Это вариант Linux с SSI (Single System Image), который может имитировать общую память:

Main targeted features are: 
* Support for cluster wide shared memory 

Включается через USE_REMOTE_MEMORY Kerrighed capability

0 голосов
/ 09 февраля 2011

Вам следует обратиться к программному обеспечению SSI (Single System Image). Это программное обеспечение, работающее поверх нескольких компьютеров (узлов), может дать вам представление об одной ОС, работающей на компьютере с большим количеством процессоров. Но, к сожалению, большинство систем SSI предназначены для распределения процессов между узлами (некоторые из них осуществляют такое распределение при запуске программы, другие могут перенести весь запущенный процесс на другой узел). Я не знаю системы SSI, способной распределять потоки.

Другим вариантом может быть поиск программного обеспечения для виртуализации, которое само по себе может работать поверх MPI / TCP / любой быстрой сети. Я также не знаю ни одной такой системы. Например. в списке рассылки qemu была тема: http://www.mail-archive.com/qemu-devel@nongnu.org/msg18338.html

Достаточно хороший текст также: http://perilsofparallel.blogspot.com/2009/01/multi-multicore-single-system-image_9797.html

0 голосов
/ 09 февраля 2011

Проект, о котором я знаю, реализует это под (модифицированным) ядром Linux.Это называется Mosix;теперь есть несколько вариантов.

Это единственный известный мне, который представляет собой настоящий кластер с одним системным образом и претендует на работу.

Однако я крайне скептически отношусь к способностииз вашего проекта сделать что-нибудь полезное;на практике, вероятно, было бы лучше использовать (электрическое) питание для подключения iphone, чем к ПК, которому 5 лет.

Несмотря на то, что перемещение данных по сети сопряжено с определенными затратами.Несколько типов компьютерных проблем требуют перемещения небольшого количества данных, но большая обработка - примеры взлома ключей шифрования и 3D-рендеринга.Тем не менее, многие другие проблемные области нуждаются в большом количестве данных, чтобы быть во многих местах, что на практике, кажется, оправдывает использование очень дорогих сетей.Кажется, что большинство научных кластеров используют высокоскоростные сети (> гигабитный Ethernet)

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

0 голосов
/ 08 февраля 2011

Я бы предложил придерживаться распределенной среды программирования, такой как OpenMP или Beowulf , чтобы ваше приложение распространялось, а не сама ОС.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...