Para un paralelismo bastante fácil (por ejemplo, openmp con bucles paralelos), puede concentrarse en el programa y optimizarlo.
Sin embargo, para muchos problemas, debe cambiar el algoritmo.
Piense en el conjunto de algoritmos que resolverían un problema.
- ¿Qué es exactamente la informática teórica? ¿Qué se investiga en él?
- ¿Cómo puede un estudiante universitario publicar un artículo de revista? ¿Qué tan difícil es hacer? ¿Qué consejos y estrategias recomendaría la gente?
- ¿Qué es el Protocolo de separación de localizador / identificador (LISP) en términos simples, con las terminologías en eso?
- ¿Google acelera el lanzamiento de la investigación de aprendizaje profundo?
- ¿Es el aprendizaje no supervisado la próxima frontera en la investigación del aprendizaje automático?
Algunos de estos algoritmos pueden ser paralelos, y otros no. A menudo, el mejor algoritmo serial (no paralelo) no es paralelo, por lo que debe conocer otros modelos computacionales para un problema que luego puede ser paralelo.
El mejor algoritmo para ejecutar a escala (digamos 30 mil procesadores o más) puede ejecutarse a solo una décima parte de la velocidad del mejor algoritmo en serie en un único procesador. Pero si el mejor algoritmo en serie solo puede ejecutarse en un procesador, puede obtener una aceleración de hasta 3000x ejecutando en 30,000 procesadores.
La otra gran ganancia del procesamiento paralelo distribuido es que puede usar mucha más memoria y, por lo tanto, resolver problemas más grandes para avanzar en el campo científico.