Можно ли использовать компьютерные кластеры для повседневных задач? - PullRequest
2 голосов
/ 06 октября 2009

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

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

Ответы [ 4 ]

7 голосов
/ 06 октября 2009

Это не поможет, особенно в случае видеоигр. Вы должны построить вокруг кластера; кластер не работает вокруг вас.

В любом случае, для видеоигр требуется время отклика менее 50 мс на входе и отклике, а распространение по сети просто уничтожит любой прирост производительности, который вы можете увидеть. С другой стороны, обработка видео получает БОЛЬШУЮ выгоду от кластера, поскольку задача изначально ориентирована на распараллеливание. Он не требует ввода данных пользователем, а вывод измеряется только в терминах пакетного процесса.

3 голосов
/ 06 октября 2009

Если у вас есть программа, написанная для одного ядра, запуск ее на четырехъядерном процессоре вам не поможет (за исключением того, что одно ядро ​​может быть выделено для этой программы). Например, у меня Visual Studio компилируется на нескольких ядрах на этом компьютере, но связывание выполняется на одном ядре (и это раздражающе медленно). Чтобы использовать несколько ядер, мне нужно либо запустить что-то, что может использовать несколько ядер, либо запустить несколько отдельных программ.

Кластеры такие, только больше. Все взаимодействие между компьютерами является явным и должно быть запрограммировано. Есть некоторые вещи, которые вы можете сделать с кластером (см. Алгоритм Google Map-Reduce), но они требуют специального программирования и работы.

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

1 голос
/ 06 октября 2009

Вы не сможете легко запустить видеоигру в кластере, если она уже не предназначена для работы на нескольких машинах. Я не слышал о такой игре. Возможно, вам повезет с созданием виртуальной фермы серверов, но я сомневаюсь, что будет легко заставить ее работать идеально. Если вы заинтересованы в этом, одним из примеров будет сервис Amazon EC2. Они предлагают виртуальные машины для «сдачи в аренду» по часам. За кадром я предполагаю, что у них есть гигантский кластер, который снабжает все эти виртуальные машины.

0 голосов
/ 06 октября 2009

К сожалению, если вы не задумывались над довольно умным дизайном операционной системы / программного обеспечения - простое объединение программ через кластер и надежда на повышение производительности вряд ли сработают, особенно для видеоигр. Чтобы получить повышенную производительность от запуска вещей в кластере, вы должны запрограммировать его, иначе есть хорошее изменение, вы увидите скорее снижение производительности, чем увеличение.

...