Как я могу разделить процессы между несколькими компьютерами
У меня есть запасной компьютер, на котором установлена версия сервера Ubuntu (10.04.1), и мне было интересно, есть ли способ использовать мой сервер для обработки данных на рабочем столе Ubuntu (тот же выпуск). Я хотел бы поделиться любыми функциями с тяжелым процессором с моим сервером, чтобы облегчить нагрузку на мой рабочий стол. Кто-нибудь знает хороший / простой способ сделать это? Они подключены к одной сети через маршрутизатор. Я перечислю то, что я думаю, могут быть относительными компонентами для каждого ниже.
Рабочий стол - Intel Core 2 Quad @ 2,83 ГГц
Контроллер Ethernet: Atheros Communications Atheros AR8121/AR8113/AR8114 Контроллер Ethernet PCI-E (версия b0)
Сервер - Pentium 4 @ 2,8 ГГц с гиперпоточностью
Контроллер Ethernet: Intel Corporation 82540EM Gigabit Ethernet Controller (версия 02)
3 ответа
Если вы ищете способ сделать это для общего использования компьютера, т. Е. Если вы не имеете в виду какую-то конкретную, требующую большого объема вычислений математическую проблему, ответом будет то, что это невозможно. Отдельные программы должны быть специально разработаны для выполнения распределенных вычислений.
Концептуальное объяснение состоит в том, что для того, чтобы другой компьютер мог помочь с задачей обработки, обязательные входные инструкции и ресурсы должны быть полностью предсказаны и переданы компьютеру заранее. Даже если трудная проблема прогнозирования задач обработки может быть решена, накладные расходы, связанные с отправкой инструкций и ресурсов в другую систему, слишком дороги для тех видов обработки, которые обычно выполняются на настольном компьютере.
Чтобы распределенные вычисления приводили к чистому увеличению эффективности, объем вводимой обработки, который можно прогнозировать, должен быть большим по сравнению с накладными расходами в связи. На практике это ограничивает возможные приложения вычислительно-интенсивными математическими задачами, такими как сворачивание белка и 3D-рендеринг.
Просто на тот случай, если кто-нибудь еще придет посмотреть сюда, я подумал, что поделюсь тем, что нашел.
Существует проект, известный как LinuxPMI, который предназначен для обмена процессами между сетью компьютеров, настроенных для его использования.
Для исследовательских целей, поскольку проекты могут объединяться и прекращаться, эта история может помочь найти ее в будущем:
Был создан проект clusterix, в котором в качестве основы для кластерных / грид-вычислений использовался проект openMosix.
Как заявил кто-то еще, в настоящее время это не доступно для общих вычислений. Он доступен в специализированных приложениях в Linux, таких как DVDRip. Если вы хотите немного поработать и у вас есть конкретные обобщенные задачи, которые вы хотите решить, взгляните на Bash Reduce, реализацию Map Reduce, полностью выполненную в bash.