~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 62482914495BE1D2E2DA6FFD0FC29BC8__1718351460 ✰
Заголовок документа оригинал.:
✰ Structured concurrency - Wikipedia ✰
Заголовок документа перевод.:
✰ Структурированный параллелизм — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Structured_concurrency ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/62/c8/62482914495be1d2e2da6ffd0fc29bc8.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/62/c8/62482914495be1d2e2da6ffd0fc29bc8__translat.html ✰
Дата и время сохранения документа:
✰ 16.06.2024 10:28:53 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 14 June 2024, at 10:51 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Структурированный параллелизм — Википедия Jump to content

Структурированный параллелизм

Из Википедии, бесплатной энциклопедии

Структурированный параллелизм — это парадигма программирования, направленная на повышение ясности, качества и сокращения времени разработки компьютерной программы за счет использования структурированного подхода к параллельному программированию .

Основная концепция заключается в инкапсуляции параллельных потоков выполнения (здесь они включают в себя потоки и процессы ядра и пользовательской области) посредством конструкций потока управления, которые имеют четкие точки входа и выхода и которые гарантируют, что все порожденные потоки завершатся перед выходом. Такая инкапсуляция позволяет ошибкам в параллельных потоках распространяться в родительскую область структуры управления и управляться с помощью собственных механизмов обработки ошибок каждого конкретного компьютерного языка. Это позволяет потоку управления оставаться очевидным по структуре исходного кода, несмотря на наличие параллелизма. Чтобы быть эффективной, эта модель должна применяться последовательно на всех уровнях программы — в противном случае параллельные потоки могут просачиваться, становиться бесхозными или не обеспечивать правильное распространение ошибок времени выполнения.

Структурированный параллелизм аналогичен структурированному программированию , в котором используются конструкции потока управления, инкапсулирующие последовательные операторы и подпрограммы.

История [ править ]

Модель разветвления-объединения 1960-х годов, воплощенная в инструментах многопроцессорной обработки, таких как OpenMP , является ранним примером системы, гарантирующей завершение всех потоков перед завершением. Однако Смит утверждает, что эта модель не является истинно структурированным параллелизмом, поскольку язык программирования не знает о поведении соединения и, следовательно, не может обеспечить безопасность. [1]

Концепция была сформулирована в 2016 году Мартином Сустриком (разработчиком ZeroMQ ) с его библиотекой C libdill и горутинами в качестве отправной точки. [2] В 2017 году он был усовершенствован Натаниэлем Дж. Смитом, который представил «детский шаблон» в своей реализации Python под названием Trio. [3] Тем временем Роман Елизаров независимо пришел к тем же идеям при разработке экспериментальной библиотеки сопрограмм для языка Kotlin , [4] [5] которая позже стала стандартной библиотекой. [6]

В 2021 году Swift внедрил структурированный параллелизм. [7] Позже в том же году был опубликован проект предложения по добавлению структурированного параллелизма в Java . [8]

Вариации [ править ]

Основным отличием является то, как обрабатывается ошибка в одном элементе дерева параллельных потоков. Простые реализации будут просто ждать, пока дочерние и одноуровневые элементы сбойного потока не завершатся, прежде чем распространять ошибку в родительскую область. Однако это может занять неопределенное количество времени. Альтернативой является использование общего механизма отмены (обычно кооперативной схемы, позволяющей учитывать инварианты программы) для целесообразного завершения дочерних и одноуровневых потоков.

См. также [ править ]

Ссылки [ править ]

  1. ^ Смит, Натаниэль Дж. (25 апреля 2018 г.). «Заметки о структурированном параллелизме, или: оператор Go считается вредным» . Проверено 1 августа 2019 г.
  2. ^ Сюстрик, Мартин (7 февраля 2016 г.). «Структурированный параллелизм» . Проверено 1 августа 2019 г.
  3. ^ Смит, Натаниэль Дж. (10 марта 2017 г.). «Анонсирующее трио» . Проверено 23 сентября 2022 г.
  4. ^ Елизаров Роман (12 сентября 2018 г.). «Структурированный параллелизм» . Проверено 21 сентября 2019 г.
  5. ^ Елизаров Роман (11 июля 2019 г.). Структурированный параллелизм (Видео). Конференция Hydra по распределенным вычислениям. 42 минута . Проверено 21 сентября 2019 г. Нам нужно было имя, и нам нужно было завершить всю эту концепцию [...] и мы наткнулись на этот пост в блоге [...] Натаниэля Дж. Смита.
  6. ^ «Основы сопрограмм: структурированный параллелизм» . Котлин . ДжетБрэйнс . Проверено 3 марта 2022 г.
  7. ^ МакКолл, Джон; Грофф, Джо; Грегор, Дуг; Малавский, Конрад. «Предложение по быстрому структурированному параллелизму» . Репозиторий Apple Swift Evolution . Гитхаб . Проверено 3 марта 2022 г.
  8. ^ Пресслер, Рон. «Проект JEP: Структурированный параллелизм (инкубатор)» . OpenJDK . Оракул . Проверено 3 марта 2022 г.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 62482914495BE1D2E2DA6FFD0FC29BC8__1718351460
URL1:https://en.wikipedia.org/wiki/Structured_concurrency
Заголовок, (Title) документа по адресу, URL1:
Structured concurrency - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)