XMTC (acrónimo de C con multihilo explícito ) es un lenguaje de programación paralelo de memoria compartida. Es una extensión del lenguaje de programación C que busca facilitar la programación tipo PRAM basada en el paradigma de multihilo explícito . Se desarrolla como parte de la visión XMT PRAM-On-Chip por un equipo de investigación de la Universidad de Maryland, College Park , liderado por el Dr. Uzi Vishkin .
La filosofía de XMTC y de todo el proyecto XMT es que la programación paralela es una tarea intelectual compleja, y el enfoque de construir primero un sistema de hardware y luego programarlo no ha tenido mucho éxito. Por ello, una teoría algorítmica sólida y una abstracción de hardware razonablemente sencilla deberían ser las especificaciones que guíen la construcción de una nueva arquitectura y lenguaje de programación paralelos. Para los algoritmos paralelos, la teoría algorítmica con mayor bibliografía se denomina PRAM ( máquina paralela de acceso aleatorio ). Esto no es casualidad, ya que PRAM es una forma natural de pensar algorítmicamente en paralelo. A principios de la década de 1990, el modelo PRAM se consideró poco realista porque la abstracción de hardware en la que se basaba no podía implementarse (debido al bajo ancho de banda entre chips y la alta latencia). Ahora que se pueden integrar varios procesadores en un solo chip, estas limitaciones ya no existen. La arquitectura XMT aprovecha este espacio adicional en el chip para implementar una abstracción PRAM.
El lenguaje XMTC es una modesta extensión de C y aún está en desarrollo. Su premisa básica es que el programador es responsable de aprovechar todo el paralelismo disponible. Si bien esto suena sencillo y muchos enfoques anteriores comparten este ideal, en la práctica, si el programador define un número excesivo de tareas paralelas y estas son cortas, el programa tendrá un rendimiento muy bajo. La solución consiste en combinar tareas paralelas cortas en una más larga, lo cual suele ser responsabilidad del programador. En XMTC, el lenguaje puede realizar esta operación automáticamente, liberando al programador de esta carga.
Versión de software de XMTC: La programación tipo PRAM permite experimentar con la programación de XMTC en ordenadores estándar.
- Lenguajes de programación concurrentes
- Familia de lenguajes de programación C
- Temas básicos de lenguajes de programación