Este artículo tiene varios problemas. Ayúdenos a mejorarlo o a discutir estos problemas en la página de discusión . ( Aprenda cómo y cuándo eliminar estos mensajes )
|
Paradigma | paralelo , paso de mensajes , imperativo ( procedimental ), estructurado |
---|---|
Diseñado por | Consorcio UPC |
Versión estable | 2022.10.0/28 de octubre de 2022 ( 28/10/2022 ) |
Disciplina de mecanografía | estático , débil , manifiesto |
Sistema operativo | Multiplataforma |
Sitio web | es:upc-lang.org |
Implementaciones principales | |
Compiladores UPC de Clang, UPC de GNU, UPC de IBM XL, UPC de HP, UPC de Berkeley, MuPC de Michigan Tech, UPC de Cray | |
Influenciado por | |
Preprocesador C , AC, Split-C , C paralelo |
Unified Parallel C ( UPC ) es una extensión del lenguaje de programación C diseñada para 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 ). Al programador se le presenta 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 con un solo procesador. UPC utiliza un modelo de computación de programa único, datos múltiples ( SPMD ) en el que la cantidad de paralelismo se fija en el momento de inicio del programa, normalmente con un solo hilo de ejecución por procesador.
Para expresar paralelismo, UPC extiende ISO C 99 con las siguientes construcciones:
shared
calificador de almacenamiento) con partes locales del hilo (variables normales)El lenguaje UPC evolucionó a partir de experiencias con otros tres lenguajes anteriores que propusieron extensiones paralelas a ISO C 99: AC, Split-C y Parallel C preprocessor (PCP). UPC no es un superconjunto de estos tres lenguajes, sino más bien un intento de destilar las mejores características de cada uno. UPC combina las ventajas de programabilidad del paradigma de programación de memoria compartida y el control sobre el diseño de datos y el rendimiento del paradigma de programación de paso de mensajes .