Подтвердить что ты не робот

MPI против GPU против Hadoop, в чем основное отличие этих трех parallelism?

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

В частности, если кто-то может указать мне на какое-то исследование, сравните разницу между ними, это будет идеально!

Пожалуйста, укажите плюсы и минусы для каждого parallelism, спасибо

4b9b3361

Ответ 1

  • MPI - это парадигма передачи сообщений parallelism. Здесь у вас есть корневая машина, которая запускает программы на всех компьютерах в своем MPI WORLD. Все потоки в системе независимы и, следовательно, единственный способ общения между ними - через сообщения по сети. Полоса пропускания сети и пропускная способность являются одним из важнейших факторов производительности MPI. Идея: если на машине есть только один поток, и у вас много ядер, вы можете использовать парадигму общей памяти OpenMP для решения подмножеств вашей проблемы на одной машине.

  • CUDA - парадигма SMT parallelism. Он использует современную архитектуру графического процессора для обеспечения параллельности. Графический блок содержит (блоки (ядра)), работающие с одной и той же инструкцией в режиме блокировки (это похоже на SIMD-модель). Следовательно, если все потоки в вашей системе выполняют такую ​​же работу, вы можете использовать CUDA. Но объем общей памяти и глобальной памяти в графическом процессоре ограничен, и поэтому вы не должны использовать только один GPU для решения огромной проблемы.

  • Hadoop используется для решения крупных проблем на товарном оборудовании с использованием парадигмы Map Reduce. Следовательно, вам не нужно беспокоиться о распространении данных или управлении угловыми случаями. Hadoop также предоставляет файловую систему HDFS для хранения данных на вычислительных узлах.




Hadoop, MPI и CUDA полностью ортогональны друг другу. Следовательно, может быть несправедливо сравнивать их.

Хотя, вы всегда можете использовать (CUDA + MPI) для решения проблемы с помощью кластера графических процессоров. Вам все еще нужно простое ядро ​​для выполнения коммуникационной части проблемы.