NESL - NESL

NESL
Парадигмапараллельно функциональный, множество
РазработчикСКАНДАЛ проект
Впервые появился1993
Стабильный выпуск
3.1 / ноябрь 1995 г.
Лицензияразрешительная лицензия, аналогичная ISC и X11 лицензии

NESL это параллель язык программирования разработан в Университет Карнеги-Меллона проектом SCandAL и выпущен в 1993 году. Он объединяет различные идеи из параллельные алгоритмы, и функциональное программирование и программирование массива языков.

Наиболее важные новые идеи, лежащие в основе NESL:

  • Параллелизм вложенных данных: эта функция предлагает преимущества параллелизма данных, краткого кода, который легко понять и отладить, и в то же время хорошо подходит для нерегулярных алгоритмов, таких как алгоритмы на деревьях, графах или разреженных матрицах.
  • Модель производительности на основе языка: это дает формальный способ рассчитать объем работы и глубину программы. Эти меры могут быть связаны со временем работы на параллельных машинах.

Основным принципом разработки NESL было сделать параллельное программирование простым и переносимым. Алгоритмы в NESL обычно значительно более лаконичны, чем в большинстве других языков параллельного программирования, а код очень напоминает высокоуровневый псевдокод.

NESL поддерживает параллелизм вложенных данных с помощью преобразование сглаживания преобразовать параллелизм вложенных данных в параллелизм плоских данных. Это работает за счет сохранения вложенных векторов как вложенных данных и дескриптора сегмента длины вектора по отдельности.[1]Однако это сглаживающее преобразование может увеличить асимптотическую работу и сложность пространства исходной программы, что приведет к гораздо менее эффективному результату.[2]

Влияния

NESL сильно повлиял на Data Parallel Haskell.[3]

Смотрите также

Рекомендации

  1. ^ Блеллох, Гай (1995). «NESL: вложенный параллельный язык данных». Цитировать журнал требует | журнал = (помощь)
  2. ^ Spoonhower, Дэниел; Харпер; Blelloch; Гиббонс (2008). «Профилирование пространства для параллельных функциональных программ». Цитировать журнал требует | журнал = (помощь)
  3. ^ Джонс, Саймон Пейтон. "Data Parallel Haskell". Получено 6 сентября 2011.

внешняя ссылка