Параллельные вычисления: распределенные системы против многоядерных процессоров?
Мне было просто интересно, почему возникает необходимость преодолеть все трудности создания распределенных систем для массовой параллельной обработки, когда мы можем просто создать отдельные машины, которые поддерживают сотни или тысячи ядер / процессоров (или даже GPGPU) на машину?
В общем, зачем вам выполнять параллельную обработку по сети машин, когда это можно сделать с гораздо меньшими затратами и гораздо более надежно на 1 машине, которая поддерживает множество ядер?
2 ответа
Стоимость: тысячи ядер на одном сервере по сравнению с несколькими бюджетными серверами x86.
Надежность: один сервер вместо множества серверов.
В общем, зачем вам выполнять параллельную обработку по сети машин, когда это можно сделать с гораздо меньшими затратами и гораздо более надежно на 1 машине, которая поддерживает множество ядер?
Вы должны выполнять параллельную обработку по сети машин, когда это невозможно сделать при гораздо меньших затратах и большей надежности на одной машине, которая поддерживает множество ядер.
Быстро наступает момент, когда для обработки вычислений требуется несколько процессоров, гораздо больше, чем может обрабатывать одна материнская плата. Помимо этого, есть положительный момент потребления энергии для увеличения производительности, что часто встречается в более медленных процессорах. Банк процессоров Xeon 7500 потребляет огромное количество энергии, в то время как низкоэффективные процессоры могут выполнять половину обработки при 1/3 мощности и, следовательно, масштабироваться намного лучше.
Есть также концепция единой точки отказа. Желаете ли вы, чтобы одно устройство вообще перестало вычислять вычисления? Альтернатива, имеющая несколько узлов и даже несколько центров обработки данных, намного лучше справляется с авариями.