2012-04-19 9 views
20

Conozco algunos algoritmos de aprendizaje automático como bosque aleatorio, que por naturaleza deberían implementarse en paralelo. Hago un trabajo a domicilio y veo que existen estos tres marcos de programación paralelos, por lo que estoy interesado en saber cuál es la principal diferencia entre estos tres tipos de paralelismo.MPI vs GPU vs Hadoop, ¿cuál es la principal diferencia entre estos tres paralelismos?

Especialmente, si alguien me puede indicar algún estudio, compare la diferencia entre ellos, ¡eso será perfecto!

favor haga una lista de los pros y los contras de cada paralelismo, gracias

+1

Hadoop es solo un Datastorage que le proporciona paradigmas de gestión (MapReduce). Para usar MPI necesita un PHD y es para computación. GPU es solo hardware. ¿Cuál es su apelación? –

+1

Mira este hilo http://stackoverflow.com/questions/10074047/mpi-gpu-how-to-mix-the-two-techniques – Infinity

Respuesta

34
  1. MPI es un paradigma de paso de mensajes de paralelismo. Aquí, tiene una máquina raíz que genera programas en todas las máquinas en su MPI WORLD. Todos los hilos en el sistema son independientes y, por lo tanto, la única forma de comunicación entre ellos es a través de mensajes a través de la red. El ancho de banda y el rendimiento de la red es uno de los factores más importantes en el rendimiento de la implementación de MPI. Idea: si solo hay un hilo por máquina y tiene muchos núcleos, puede usar el paradigma de memoria compartida OpenMP para resolver subconjuntos de su problema en una máquina.

  2. CUDA es un paradigma SMT de paralelismo. Utiliza la arquitectura de GPU de última generación para proporcionar el paralelismo. Una GPU contiene (bloques de (conjunto de núcleos)) trabajando en la misma instrucción en modo de paso de bloqueo (Esto es similar al modelo SIMD). Por lo tanto, si todos los hilos en su sistema hacen mucho del mismo trabajo, puede usar CUDA. Pero la cantidad de memoria compartida y memoria global en una GPU es limitada y, por lo tanto, no debe usar solo una GPU para resolver un gran problema.

  3. Hadoop se utiliza para resolver problemas grandes en el hardware básico utilizando el paradigma Map Reduce. Por lo tanto, no tiene que preocuparse por la distribución de datos o la administración de casos de esquina. Hadoop también proporciona un sistema de archivos HDFS para almacenar datos en nodos de cómputo.




Hadoop, MPI y CUDA son completamente ortogonales entre sí. Por lo tanto, puede no ser justo compararlos.

Sin embargo, siempre puede usar (CUDA + MPI) para resolver un problema utilizando un clúster de GPU. Aún necesita un núcleo simple para realizar la parte de comunicación del problema.

Cuestiones relacionadas