U.A.E.Méx_Ingeniería [PROGRAMACIÓ P Y D] UNIDAD 2 Mapa Conceptual y Cuadro Descriptivo. SISTEMAS DE ARQUITECTURA (SMP, MPP, COW, DSM) SISTEMAS DE ARQUITECTURA SMP SISTEMAS DE ARQUITECTURA MPP En general una arquitectura SMP tiene un equivalente en uniprocesador, y naturalmente un sistema SMP puede ejecutar simultáneamente varios programas o aplicaciones, que normalmente podrían ejecutarse en el sistema uniprocesador, de manera independiente. Sin embargo, para el uso de aplicaciones que aprovechen los múltiples procesadores para expeditar la realización de cálculos, nos interesa que dichos procesos no sean totalmente independientes, buscando entonces que cuenten con manera de comunicarse para distribuirse información, compartir y consolidar resultados. Ya que el problema es el hecho de contar con memoria compartida y sus limitaciones, se propuso un esquema de una máquina paralela que consta de varias unidades de procesamiento básicamente independientes. En efecto cada una de estas unidades, conocida como ``nodo'', es prácticamente una computadora en sí misma, contando con su propio procesador, memoria no compartida, y que se comunica con las demás unidades de procesamiento a través de un canal provisto exclusivamente para este propósito. Este tipo de máquinas se conocen como computadoras masivamente paralelas o máquinas MPP (Massively Parallel Processing, procesamiento masivamente paralelo) Ya que un sistema SMP los procesadores comparten todos los periféricos y recursos, el esquema más obvio para comunicarse en una arquitectura SMP es el uso de memoria compartida. Como el nombre lo indica, en este esquema los procesadores tienen acceso a un espacio de direcciones común; esto puede ser todo el espacio de direcciones o únicamente un área designada para memoria compartida, permitiendo a cada proceso contar con un área exclusiva para sus requerimientos. SISTEMAS DE ARQUITECTURA DSM En computación, la Distributed Shared Memory (DSM, o memoria distribuida compartida) es un tipo de implementación hardware y software, en la que cada nodo de un cluster tiene acceso a una amplia memoria compartida que se añade a la memoria limitada privada, no compartida, propia de cada nodo. Los sistemas de software DSM pueden ser implementados bajo un sistema operativo (SO), o como una biblioteca de programación. Los sistemas de software DSM implementados en el SO pueden concebirse como extensiones de la arquitectura de memoria virtual subyacente. Estos sistemas son transparentes al desarrollador, lo que significa que la memoria distribuida subyacente está completamente oculta para los usuarios. En contraste, los sistemas de software DSM implementados en una biblioteca no son transparentes y los desarrolladores tienen que programarlos separadamente. Sin embargo, estos últimos sistemas ofrecen mejores características de portabilidad en la implementación de sistemas DSM. Los sistemas de software DSM también tienen capacidad para organizar la región de memoria compartida de manera flexible. Las aproximaciones basadas en páginas organizan la memoria compartida en páginas de tamaño fijo. Por su parte, las aproximaciones basadas en objetos organizan la región como un espacio abstracto en el que se pueden almacenar objetos compartidos de tamaño variable. La arquitectura de memoria compartida puede suponer la separación de la memoria en partes compartidas distribuidas entre los nodos y la memoria principal; o la distribución de toda la memoria en los distintos nodos. Un protocolo de coherencia, escogido de acuerdo a un modo de consistencia, se encarga de mantener la coherencia de la memoria. UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO CENTRO UNIVERSITARIO UAEM ATLACOMULCO PROGRAMACIÓN PARAELA Y DISTRIBUIDA 1 INGENIERÍA EN COMPUTACIÓN. JESUS BECERRIL PACHECO. U.A.E.Méx_Ingeniería [PROGRAMACIÓ P Y D] UNIDAD 2 Mapa Conceptual y Cuadro Descriptivo. CUADRO DESCRIPTIVO Modelos de acceso a memoria (UMA, NUMA, COMA). Uniform Memory Access (UMA) Non uniform Memory Access (NUMA) Cache-only Memory Architecture (COMA) En sistemas con uniform memory access (acceso a memoria uniforme), cada procesador tiene acceso directo a una sola memoria compartida. Todas las ubicaciones de la memoria son equidistantes (en cuanto a tiempos de acceso) a cada procesador. La mayoría de los sistemas UMA incorpora caché para eliminar las disputas de la memoria pero este mecanismo no se ve desde las aplicaciones. Sistemas con nonuniform memory access (acceso a memoria no uniforme) tienen una memoria física compartida distribuida . Cada partición de esta memoria se ata directamente a un nodo pero se puede acceder a ella por procesadores en otro nodos via la red de interconexión. Así, los tiempos de acceso a la memoria difieren dependiendo de si la ubicación requerida es local al nodo o remota a este. Este nivel de complejidad agregado puede ser escondido del software de aplicación pero hacer esto lleva a un desempeño suboptimo. Para hacer mejor uso del hardware, el programador debe tomar la arquitectura en consideración. El cache se usa entre procesadores y memoria local asi como entre nodos. Máquinas con caché coherente a nivel del hardware se llaman ccNUMA. Sistemas con cache only memory access (acceso a memoria solo en caches) no tiene memoria compartida física, pero el cache solo constituye la memoria de las máquinas. Se provee un solo espacio físico de direcciones pero los tiempos de acceso varían dependientemente si la ubicación de la memoria requerida está en el caché local o en uno remoto. El software de aplicación ignoraría la arquitectura del sistema ya que la máquina se comporta en forma muy parecida a una máquina UMA con caché. UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO CENTRO UNIVERSITARIO UAEM ATLACOMULCO PROGRAMACIÓN PARAELA Y DISTRIBUIDA 2 INGENIERÍA EN COMPUTACIÓN. JESUS BECERRIL PACHECO.