Nombre: Richard Andrés Montero Ogando
Matricula: 2022-2146
Asignatura: programación paralela
Marco Histórico
1960s:
• Surgimiento de los primeros sistemas multiprocesadores.
• Desarrollo de la arquitectura de memoria compartida.
• Ejemplos: CDC 6600, ILLIAC IV.
1970s:
• Avances en la tecnología de microprocesadores.
• Crecimiento de la popularidad de los sistemas multiprocesadores.
• Desarrollo de la arquitectura de memoria distribuida.
• Ejemplos: Cray X-MP, Denelcor HEP.
1980s:
• Aumento de la investigación en sistemas multiprocesadores.
• Desarrollo de nuevas técnicas de programación paralela.
• Ejemplos: BBN Butterfly, Intel iPSC.
1990s:
• Crecimiento del uso de sistemas multiprocesadores en aplicaciones comerciales.
• Desarrollo de sistemas multiprocesadores de alto rendimiento.
• Ejemplos: Cray T3E, SGI Origin.
2000s:
• Aumento de la popularidad de los sistemas multiprocesadores en los servidores.
• Desarrollo de sistemas multiprocesadores de bajo costo.
• Ejemplos: AMD Opteron, Intel Xeon.
2010s:
• Aumento de la investigación en sistemas multiprocesadores de muchos núcleos.
• Desarrollo de nuevas arquitecturas multiprocesador.
• Ejemplos: IBM Blue Gene/Q, Intel Xeon Phi.
2020s:
• Los sistemas multiprocesadores son omnipresentes en servidores, centros de datos y
dispositivos móviles.
• Desarrollo de nuevas tecnologías para la gestión y programación de sistemas
multiprocesadores.
Clasificaciones
Clasificación de Flynn
• SISD (Single Instruction, Single Data): Un solo procesador ejecuta una sola instrucción a la
vez sobre un solo conjunto de datos.
• SIMD (Single Instruction, Multiple Data): Un solo procesador ejecuta una sola instrucción
a la vez sobre múltiples conjuntos de datos.
• MISD (Multiple Instruction, Single Data): Múltiples procesadores ejecutan diferentes
instrucciones a la vez sobre un solo conjunto de datos.
• MIMD (Multiple Instruction, Multiple Data): Múltiples procesadores ejecutan diferentes
instrucciones a la vez sobre diferentes conjuntos de datos.
Modelo basado en la organización de la Memoria
• Memoria compartida: Todos los procesadores comparten la misma memoria principal.
• Memoria distribuida: Cada procesador tiene su propia memoria principal privada.
Modelo basado en la Coordinación
Centralizada: Un solo procesador controla la ejecución de todos los demás procesadores.
Descentralizada: Todos los procesadores tienen la misma capacidad de control.
Comunicación
Pase de Mensajes
• Los procesadores se comunican enviándose mensajes entre sí.
• Es un método de comunicación flexible y escalable.
Exclusión Mutua
• Mecanismo para garantizar que solo un procesador pueda acceder a un recurso
compartido a la vez.
• Es importante para evitar la corrupción de datos.
Redes de Interconexión para Máquinas a Memoria Compartida
Bus: Un solo canal de comunicación que conecta todos los procesadores a la memoria principal.
Crossbar: Una matriz de conmutadores que conecta cada procesador a cada módulo de memoria
principal.
Red de interconexión: Una red de nodos que conecta los procesadores a la memoria principal.
Redes de Interconexión para Máquinas a Memoria Distribuida
• Red Ethernet: Red de área local estándar que se puede usar para conectar máquinas a
memoria distribuida.
• InfiniBand: Red de alta velocidad diseñada específicamente para interconexiones de
memoria distribuida.
• Myrinet: Red de bajo costo y alta latencia diseñada para interconexiones de memoria
distribuida.