viernes, 20 de septiembre de 2013

Embarrasingly Parallel Algorithms


Llevan éste nombre los algoritmos más sencillos de adaptar su implementación en una GPGPU. Para conocerlos mejor, nombraremos las siguientes características:

  • También se les conoce como algoritmos naturalmente paralelos.
  • Son los algoritmos paralelos más simples debido que casi no requieren comunicación entre procesos.
  • Cada proceso puede realizar sus cálculos de forma propia sin necesidad de comunicarse con otros.
  • Pueden requerir alguna partición inicial de los datos, o juntar los datos resultantes al final, aunque no siempre.

Caso ideal:

  • Todos los subproblemas o tareas son definidas antes de que el cómputo inicie.
  • Todas las sub-soluciones son almacenadas en localidades de memoria independientes (variables, elementos de arrays).
  • Por lo tanto, el cómputo de cada sub-solución es completamente independiente.
  • Si el cómputo requiere alguna comunicación inicial o final, lo llamaremos Nearly embarrasingly parallel.

Algunos ejemplos:

  • Renderizado de gráficos para computadora.
  • Algoritmos genéticos
  • Simulaciones de Monte-Carlo
  • Conjuntos de Mandelbrot (a.k.a. Fractales)


No hay comentarios:

Publicar un comentario