NESL es un lenguaje de programación paralela desarrollado en la Universidad Carnegie Mellon por el proyecto SCandAL y lanzado en 1993. Integra diversas ideas de algoritmos paralelos , programación funcional y lenguajes de programación de matrices .
Las ideas nuevas más importantes detrás de NESL son:
- Paralelismo de datos anidado : esta función ofrece las ventajas del paralelismo de datos , un código conciso, fácil de entender y depurar, y resulta muy adecuada para algoritmos irregulares, como algoritmos sobre árboles, grafos o matrices dispersas.
- Un modelo de rendimiento basado en el lenguaje : este modelo proporciona una forma formal de calcular el trabajo y la profundidad de un programa. Estas medidas pueden relacionarse con el tiempo de ejecución en máquinas paralelas.
La principal directriz de diseño de NESL fue facilitar la programación paralela y hacerla portable. Los algoritmos suelen ser mucho más concisos en NESL que en la mayoría de los demás lenguajes de programación paralela, y el código se asemeja mucho al pseudocódigo de alto nivel.
NESL maneja el paralelismo de datos anidados mediante la transformación de aplanamiento , que convierte el paralelismo de datos anidados en paralelismo de datos planos. Esto funciona almacenando los vectores anidados como datos anidados y un descriptor de segmento de longitudes de vector, por separado. [ 1 ] Sin embargo, esta transformación de aplanamiento puede aumentar el trabajo asintótico y la complejidad espacial del programa original, lo que resulta en un resultado mucho menos eficiente. [ 2 ]
Influencias
Véase también
Referencias
- ↑ Blelloch, Guy (1995). "NESL: Un lenguaje de datos paralelos anidados".
{{cite journal}}: Para citar una revista se requiere|journal=( ayuda ) - ↑ Spoonhower, Daniel; Harper; Blelloch; Gibbons (2008). "Análisis del espacio para programas funcionales paralelos".
{{cite journal}}: Para citar una revista se requiere|journal=( ayuda ) - ↑ Jones, Simon Peyton (23 de abril de 2010). "Data Parallel Haskell" . YouTube . Consultado el 6 de septiembre de 2011 .
Enlaces externos
- Página principal de NESL
- lenguajes de programación de matrices
- Lenguajes funcionales
- Lenguajes de programación concurrentes
- Software Common Lisp (lenguaje de programación)
- Temas básicos de lenguajes de programación