NESL es un lenguaje de programación paralelo desarrollado en Carnegie Mellon por el proyecto SCandAL y lanzado en 1993. Integra varias ideas de algoritmos paralelos , programación funcional y lenguajes de programación de matrices .
Paradigma | paralelo, funcional , arsenal |
---|---|
Desarrollador | Proyecto SCandAL |
Apareció por primera vez | 1993 |
Lanzamiento estable | 3.1 / noviembre de 1995 |
Licencia | licencia permisiva similar a las licencias ISC y X11 |
Las nuevas ideas más importantes detrás de NESL son
- Paralelismo de datos anidados : esta función ofrece los beneficios del paralelismo de datos , un código conciso que es fácil de entender y depurar, además de ser adecuado para algoritmos irregulares, como algoritmos en árboles, gráficos o matrices dispersas.
- Un modelo de rendimiento basado en el lenguaje : proporciona una forma formal de calcular el trabajo y la profundidad de un programa. Estas medidas pueden estar relacionadas con el tiempo de ejecución en máquinas paralelas.
La principal pauta de diseño de NESL era hacer que la programación paralela fuera fácil y portátil. Los algoritmos suelen ser significativamente más concisos en NESL que en la mayoría de los otros lenguajes de programación paralelos, y el código se parece mucho al pseudocódigo de alto nivel.
NESL admite el paralelismo de datos anidados mediante el uso de la transformación de aplanamiento para convertir el paralelismo de datos anidados en un paralelismo de datos planos. Esto funciona almacenando 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 lleva a un resultado mucho menos eficiente. [2]
Influencias
Ver también
Referencias
- ^ Blelloch, Guy (1995). "NESL: un lenguaje paralelo de datos anidados". Cite journal requiere
|journal=
( ayuda ) - ^ Spoonhower, Daniel; Harper; Blelloch; Gibbons (2008). "Perfilado de espacios para programas funcionales paralelos". Cite journal requiere
|journal=
( ayuda ) - ^ Jones, Simon Peyton. "Datos paralelos de Haskell" . Consultado el 6 de septiembre de 2011 .