Jump to content

Сглаживающее преобразование

Сглаживающее преобразование — это алгоритм , который преобразует параллелизм вложенных данных в параллелизм плоских данных. Впервые он был разработан Гаем Блеллохом как часть языка программирования NESL . [1] Сглаживающее преобразование также иногда называют векторизацией , но оно совершенно не связано с автоматической векторизацией . Исходный алгоритм выравнивания касался исключительно многомерных массивов первого порядка, содержащих примитивные типы, но был расширен для обработки рекурсивных типов данных более высокого порядка в работе над Data Parallel Haskell . [2]

Сглаживание работает путем подъема функций для работы с массивами, а не с отдельными значениями. Например, функция поднимается до функции . Это означает выражение можно заменить применением поднятой функции: . Интуитивно понятно, что сглаживание работает путем замены всех приложений функций приложениями соответствующей поднятой функции.

После выравнивания массивы представляются как одномерный вектор значений V , содержащий скалярные элементы, а также вспомогательную информацию, записывающую вложенную структуру, обычно в форме вектора логического флага F . Вектор флага указывает для соответствующего элемента вектора значений, является ли он началом нового сегмента . Например, двумерный нерегулярный массив может быть представлен как вектор данных рядом с вектором флага .

Этот вектор флагов необходим для правильного выравнивания вложенного параллелизма. Например, он используется для сведения суммы префикса к сегментированному сканированию .

Сглаживание может увеличить асимптотическую работу и пространственную сложность исходной программы, что приведет к гораздо менее эффективному результату. [3]

Использование

[ редактировать ]

Первоначально выравнивание было разработано для векторных машин, таких как Connection Machine , и часто создает код, который не подходит для современных многоядерных процессоров. [4] Однако принципы, лежащие в основе его более простых случаев, можно найти в таких конструкциях, как vmap в Гугл Джаксе .

  1. ^ Беллох, Гай (1995). «NESL: вложенный язык параллельных данных». {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )
  2. ^ Параллельные данные Haskell: отчет о состоянии
  3. ^ Спунхауэр, Дэниел; Харпер; Блеллох; Гиббонс (2008). «Профилирование пространства для параллельных функциональных программ». {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )
  4. ^ Бергстрем, Ларс; Флейт, Мэтью; Рейни, Майк; Реппи, Джон, «Сглаживание только данных для вложенного параллелизма данных», PPoPP , doi : 10.1145/2442516.2442525 , S2CID   1005665
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 8bc5361e4727ae3af7bb8f5089e9c713__1702153020
URL1:https://arc.ask3.ru/arc/aa/8b/13/8bc5361e4727ae3af7bb8f5089e9c713.html
Заголовок, (Title) документа по адресу, URL1:
Flattening transformation - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)