Espacio de direcciones global particionado


En informática , el espacio de direcciones global particionado ( PGAS ) es un paradigma de modelo de programación paralelo . PGAS se caracteriza por operaciones de comunicación que involucran una abstracción de espacio de direcciones de memoria global que está particionada lógicamente, donde una parte es local para cada proceso, subproceso o elemento de procesamiento . [1] [2] La novedad de PGAS es que las porciones del espacio de memoria compartida pueden tener afinidad por un proceso en particular, explotando así la localidad de referencia para mejorar el rendimiento. Un modelo de memoria PGAS se presenta en varios lenguajes de programación paralelos y bibliotecas, que incluyen:Coarray Fortran , Unified Parallel C , Split-C , Fortress , Chapel , X10 , UPC ++ , Coarray C ++ , Global Arrays , DASH y SHMEM . El paradigma PGAS es ahora una parte integrada del lenguaje Fortran , a partir de Fortran 2008 que estandarizó coarrays.

Los diversos lenguajes y bibliotecas que ofrecen un modelo de memoria PGAS difieren ampliamente en otros detalles, como el lenguaje de programación base y los mecanismos utilizados para expresar el paralelismo. Muchos sistemas PGAS combinan las ventajas de un estilo de programación SPMD para sistemas de memoria distribuida (como lo emplea MPI ) con la semántica de referencia de datos de los sistemas de memoria compartida. En contraste con el paso de mensajes, Los modelos de programación PGAS ofrecen con frecuencia operaciones de comunicación unilaterales, como el acceso a memoria remota (RMA), mediante el cual un elemento de procesamiento puede acceder directamente a la memoria con afinidad a un proceso diferente (potencialmente remoto), sin la participación semántica explícita del proceso objetivo pasivo. PGAS ofrece más eficiencia y escalabilidad que los enfoques tradicionales de memoria compartida con un espacio de direcciones plano, porque la localidad de datos específicos del hardware se puede exponer explícitamente en la partición semántica del espacio de direcciones.

Una variante del paradigma PGAS, el espacio de direcciones global particionado asincrónico ( APGAS ) aumenta el modelo de programación con facilidades para la creación de tareas asincrónicas tanto locales como remotas. [3] Dos lenguajes de programación que utilizan este modelo son Chapel y X10 .