1

У меня дома 4 ноутбука.

Я использую только один из них, поэтому мне интересно, есть ли программное обеспечение, которое распределяет нагрузку по производительности на несколько компьютеров?

Пример 1: Если я начну процесс компиляции, который будет распределен по всем 4 компьютерам, и сократю время компиляции до ¼.

Я не ищу программное обеспечение для использования их только в качестве мониторов (например, MaxiVista), но использую их ЦП, ОЗУ, дисковое пространство, CDROM, USB для расширения моего "основного" компьютера.

Пример 2: Если я подключу USB-устройство / вставлю DVD в один из этих ноутбуков, "главный" компьютер может использовать его.

Это было бы что-то хорошее, чтобы использовать старые ноутбуки для.

Я думаю, что слово для этого - компьютерный кластер.

Есть ли программное обеспечение для домашних пользователей?

Я использую Mac OS X Snow Leopard, кстати.

5 ответов5

3

Хотя я никогда не использовал его, первое, что пришло мне в голову, было Xgrid http://www.apple.com/server/macosx/technology/xgrid.html Я считаю, что Xcode имеет поддержку Xgrid.

3

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

3

У богатой гомолки есть первая половина ответа. Вы можете использовать Xgrid для распространения компиляции из Xcode, рендеринга из Quicktime (и / или Final Cut Pro / Qmaster) и т.д.

С точки зрения совместного использования жестких дисков, вам придется использовать традиционный обмен файлами AFP для этого. Что касается оптических носителей, Leopard и выше, дебютировал Remote Disc, преимущественно для MacBook Airs, но его использование выходит далеко за рамки этого, и это относительно полезно для многих задач общего назначения и устранения неполадок.

Обе эти функции общего доступа могут быть включены одним щелчком мыши в Системных настройках -> Общий доступ. Назван, соответственно, Общий доступ к файлам и Общий доступ к DVD или CD. (И пока вы там, обратите внимание, Xgrid Sharing!)

[редактировать]
Обратите внимание, что вы не можете делегировать задачи общего назначения в Xgrid, программное обеспечение должно быть написано явно, чтобы воспользоваться этим.

Например, Handbrake (бесплатно / с открытым исходным кодом (?) Инструмент преобразования видеоформатов) не может использовать Xgrid для ускорения рендеринга / распространения заданий рендеринга. Quicktime / Final Cut Pro может, как указано выше.

2

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

Сборка программного обеспечения часто почти параллельна, потому что каждая компиляция отдельного файла является подзадачей и существует мало зависимостей. В старом техническом подходе использовалась бы параллельная реализация make, такая как GNU make, в сочетании с совместным использованием файлов с NFS или samba. Существуют лучшие инструменты для распределенных сборок, например distcc или icecc. В вашем случае Рич Хомолка упоминает Xgrid, который, похоже, может позаботиться о большей части автоматизации.

Но даже для компиляций распределение нагрузки не является серебряной пулей. Это несет значительные накладные расходы (гораздо больше, чем параллельное строительство). Кроме того, до самого недавнего времени закон Мура означал, что четыре трехлетних ноутбука будут примерно такими же мощными, как нынешние однопроцессорные ноутбуки (даже не считая затрат на распространение), поэтому нет смысла повторно использовать старые машины для своих процессоров. Ресурсы. Однако это меняется, поскольку новые компьютеры, как правило, имеют больше процессоров, чем более быстрых процессоров.

0

Хотя это и не ответ, я думаю, что эта информация может пригодиться http://www.computer.org/portal/web/csdl/doi/10.1109/IPDPS.2005.42

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .