La programación y computación en Paralelo - 2da Parte

avatar

Durante las últimas décadas, han aparecido en el mercado muchos sistemas de computación paralela diferentes.


En primer lugar, se han vendido como superordenadores dedicados a resolver problemas científicos específicos. Quizás, los más conocidos son los ordenadores fabricados por Cray y Connection Machine Corporation. Pero, como ya se ha mencionado, el paralelismo se ha extendido hasta el mercado de consumo y todo tipo de dispositivos portátiles.


binary.png
Imagen de Pixabay


Diversas soluciones paralelas evolucionaron gradualmente hasta convertirse en sistemas paralelos modernos que presentan al menos uno de los tres tipos de paralelismo predominantes:

  • En primer lugar, los sistemas de memoria compartida, es decir, sistemas con múltiples unidades de procesamiento unidas a una única memoria.
  • En segundo lugar, sistemas distribuidos, es decir, sistemas formados por muchas unidades de cálculo, cada una con su propia unidad de procesamiento y su memoria física, que están conectadas con redes de interconexión rápidas.
  • En tercer lugar, las unidades de procesamiento gráfico utilizadas como coprocesadores para la resolución de problemas numéricos intensivos de propósito general.


board.png
Imagen de Pixabay


Aparte de los sistemas informáticos paralelos que se han hecho omnipresentes, los supercomputadores extremadamente potentes siguen dominando los logros de la computación paralela. Los supercomputadores figuran en la lista de los 500 sistemas informáticos más rápidos jamás construidos y aún hoy son la alegría y el orgullo de las superpotencias mundiales.


Pero los principios subyacentes de la computación paralela son los mismos, independientemente de que se programen los mejores supercomputadores o los dispositivos de consumo. Los principios y técnicas de programación han evolucionado gradualmente durante todos estos años. No obstante, el diseño de algoritmos paralelos y la programación paralela siguen considerándose un orden de magnitud más difícil que el diseño de algoritmos secuenciales y el desarrollo de programas secuenciales.


En relación con los tres tipos de paralelismo mencionados anteriormente, existen tres enfoques diferentes de la programación paralela: el modelo de hilos para los sistemas de memoria compartida, el modelo de paso de mensajes para los sistemas distribuidos de memoria compartida, y el modelo basado en flujos para GPUs.



waves.png
Imagen de Pixabay


Si quedastes fascinado con este apasionante tema de la computación y programación en paralelo, no te pierdasd la proxíma publicación sobre este tema, si deseas ampliar más te invito a leer las siguientes referencias:

  • Atallah, M., Blanton, M. (eds.): Algorithms and Theory of Computation Handbook, Chapman and Hall, Boca Raton (2010).
  • Chandra, R., Menon, R., Dagum, L., Kohr, D., Maydan, D., McDonald, J.: Parallel Programming in OpenMP. Morgan Kaufmann, Burlington (2000).
  • Foster, I.: Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering. Addison-Wesley Longman Publishing Co., Inc, Boston (1995).


Hive.png
cervantes.png



0
0
0.000
1 comments