Articulo de referencia

Paralelo Unificado C

Unified Parallel C ( UPC ) es una extensión del lenguaje de programación C diseñada para la computación de alto rendimiento en máquinas paralelas a gran escala , incluidas aquel...

Unified Parallel C ( UPC ) es una extensión del lenguaje de programación C diseñada para la computación de alto rendimiento en máquinas paralelas a gran escala , incluidas aquellas con un espacio de direcciones global común ( SMP y NUMA ) y aquellas con memoria distribuida (por ejemplo, clústeres ). El programador dispone de un único espacio de direcciones global particionado , donde las variables compartidas pueden ser leídas y escritas directamente por cualquier procesador , pero cada variable está asociada físicamente a un único procesador. UPC utiliza un modelo de computación de programa único, datos múltiples ( SPMD ) en el que la cantidad de paralelismo se fija al inicio del programa, normalmente con un único hilo de ejecución por procesador.

Para expresar el paralelismo, la UPC extiende la norma ISO C  99 con las siguientes construcciones:

  • Un modelo de ejecución explícitamente paralelo
  • Un espacio de direcciones compartido ( sharedcalificador de almacenamiento) con partes locales de subprocesos (variables normales).
  • Primitivas de sincronización y un modelo de consistencia de memoria
  • Primitivas de comunicación explícitas, por ejemploupc_memput
  • Primitivas de gestión de memoria

El lenguaje UPC evolucionó a partir de la experiencia con otros tres lenguajes anteriores que proponían extensiones paralelas a ISO C  99: AC, Split-C y el preprocesador Parallel C (PCP). UPC no es un superconjunto de estos tres lenguajes, sino un intento de extraer las mejores características de cada uno. UPC combina las ventajas de programabilidad del paradigma de programación de memoria compartida con el control sobre la disposición de los datos y el rendimiento del paradigma de programación de paso de mensajes .

Véase también

  • Sitio web oficial
  • UPC en LBNL
  • UPC en GWU Archivado el 08/07/2012 en Wayback Machine
  • GNU UPC
  • Tutorial de UPC (2003)