Unified Parallel C
Unified Parallel C (UPC) es una extensión del lenguaje de programación C diseñado para computación de alto rendimiento en máquinas paralelas, incluyendo tanto aquellas con un espacio de memoria global (SMP y NUMA) como aquellas con un espacio de memoria distribuido, como los clusters. El programador observa un único espacio de memoria compartida donde las variables se pueden leer y escribir desde cualquier procesador, pero cada reside físicamente en un único procesador, con el que se dice que tiene afinidad. UPC usa un modelo de computación SPMD (Single Program Multiple Data) donde la cantidad de procesos se puede indicar tanto en tiempo de compilación como al inicio de la ejecución del programa.
Para trabajar con el paralelismo, UPC extiende el ISO C 99 añadiéndole:
- Un modelo de programación explícitamente paralelo.
- Un espacio de memoria compartida.
- Primitivas de sincronización y de consistencia de memoria.
- Primitivas de gestión de memoria.
UPC evolucionó de experiencias con otros tres lenguajes más prematuros que propusieron extendiones paralelas a ISO C 99: AC, Split-C, y Parallel C Preprocessor (PCP). UPC no es un superconjunto de estos tres lenguajes sino un intento de destilar las mejores características de cada uno. UPC combina la facilidad de programación del paradigma de programación en memoria compartida con el control del tráfico de datos y el rendimiento del paradigma de programación de paso de mensajes.
Compiladores
editarUPC ha sido implementado en compiladores comerciales o de investigación, incluyendo:
Véase también
editarEnlaces externos
editar- Página principal de Unified Parallel C Archivado el 8 de julio de 2012 en Wayback Machine.
- UPC Wiki (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última).