2. Introducción
• La arquitectura de memoria paralela es un concepto fundamental en el campo de la
informática y la computación de alto rendimiento.
• Hablar de paralelismo o procesamiento paralelo, normalmente se refiere un sistema
multiprocesador, pero esto no es del todo cierto. Existen distintos tipos de paralelismo y
de arquitecturas de procesamiento paralelo junto con su respectiva clasificación.
3. Definición
• La arquitectura de memoria paralela es un enfoque de diseño en sistemas de cómputo
que permite que múltiples procesadores o núcleos de CPU trabajen de manera
simultánea y coordinada para acceder y gestionar la memoria de un sistema. Su principal
objetivo es mejorar el rendimiento al permitir que múltiples unidades de procesamiento
compartan y accedan a datos en paralelo, lo que acelera las operaciones de lectura y
escritura de la memoria.
4. Características
• Acceso Simultáneo. Implica que varios procesadores o núcleos pueden acceder a la memoria de manera simultánea y
coordinada.
• Múltiples Caminos de Acceso. Esto reduce la congestión y la competencia por los recursos de memoria.
• Jerarquía de Memoria. Consta de varios niveles de caché, memoria principal y, en algunos casos, memoria compartida.
Esto equilibra la velocidad y la capacidad de almacenamiento para optimizar el rendimiento.
• Escalabilidad. Significa que es posible agregar más procesadores o núcleos para aumentar la capacidad de
procesamiento de manera efectiva.
• Interconexión. Puede implicar buses compartidos, redes de interconexión u otros métodos.
• División de Bancos de Memoria. Cada banco de memoria es accesible de forma independiente, lo que reduce la congestión y
mejora el acceso a la memoria.
5. Clasificación
La arquitectura de memoria paralela se puede clasificar en varios tipos o categorías según
cómo se organiza y gestiona la memoria en un sistema multiprocesador.
Memoria Compartida
Se refiere a un diseño en el que varios procesadores o núcleos de CPU comparten un
espacio de memoria común. Esto significa que todos los procesadores tienen acceso a la
misma área de memoria y pueden leer y escribir en ella. La memoria compartida permite
que los procesadores compartan datos y se comuniquen entre sí de manera eficiente, lo
que es fundamental en la programación y ejecución de tareas paralelas.
6. • UMA (Uniform Memory Access). En sistemas UMA, todos los procesadores tienen un acceso
uniforme a la memoria principal, lo que significa que el tiempo de acceso a la memoria es
aproximadamente el mismo para todos los procesadores. Los sistemas UMA a menudo se basan
en una topología de interconexión de memoria compartida, donde todos los procesadores están
conectados a una memoria principal centralizada. Esto facilita la comunicación y el acceso a los
datos compartidos, ya que no hay diferencias significativas en la latencia de acceso. Ejemplos de
sistemas UMA incluyen computadoras multiprocesador simétricas (SMP).
• NUMA (Non-Uniform Memory Access). Los procesadores pueden tener tiempos de acceso
a la memoria que varían según su proximidad física a los bancos de memoria. Los sistemas NUMA
utilizan una topología de interconexión que refleja la proximidad física entre los procesadores y
los bancos de memoria. Esto significa que los procesadores tienen un acceso más rápido a la
memoria local en su nodo NUMA y un acceso más lento a la memoria remota en otros nodos
NUMA. Es común en sistemas de servidor de gama alta.
7. Memoria Distribuida.
En este enfoque múltiples procesadores o núcleos de CPU trabajan en conjunto, pero cada uno
tiene su propia memoria local y no comparte memoria con otros procesadores. En lugar de
compartir una memoria común, los procesadores se comunican entre sí mediante la transferencia
explícita de datos a través de la red o una interconexión de alto rendimiento. Los clústeres de
cómputo y las supercomputadoras a menudo utilizan esta arquitectura.
Memoria Global
En esta arquitectura, la memoria se organiza como una única dirección de memoria global que es
accesible desde todos los procesadores. Sin embargo, la latencia de acceso a la memoria global
puede variar según la topología de interconexión y la organización del sistema.
8. Memoria Híbrida
Algunos sistemas utilizan una combinación de los enfoques mencionados anteriormente. Por
ejemplo, una supercomputadora puede tener nodos NUMA que utilizan memoria compartida
localmente y se conectan mediante una red de memoria global.
Caché Compartida
En esta arquitectura, múltiples núcleos de CPU comparten una caché de nivel superior (como una
caché L3) para acelerar el acceso a datos comunes. Esto mejora el rendimiento en tareas que
requieren compartir datos entre núcleos cercanos.
9. A continuación, tenemos algunos de ejemplos donde se usan algunas de estas
arquitecturas
• Memoria Compartida: Base de datos, diseño asistido por computadora
(CAD).
• Memoria distribuida: Simulaciones Científicas, Procesamiento de Grandes
Conjuntos de Datos.
• Memoria Global: Aprendizaje Automático en GPU, Gráficos y
Renderización en Tiempo Real.
• Memoria Híbrida: Investigación en Ciencias de la Computación, Análisis
de Grandes Redes Sociales