~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 01BA859304E64EB6CEC2BD5CE20C8865__1644508740 ✰
Заголовок документа оригинал.:
✰ Task parallelism - Wikipedia ✰
Заголовок документа перевод.:
✰ Параллелизм задач — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Task_parallelism ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/01/65/01ba859304e64eb6cec2bd5ce20c8865.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/01/65/01ba859304e64eb6cec2bd5ce20c8865__translat.html ✰
Дата и время сохранения документа:
✰ 20.06.2024 18:25:00 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 10 February 2022, at 18:59 (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

Параллелизм задач

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

Параллелизм задач (также известный как параллелизм функций и параллелизм управления ) — это форма распараллеливания компьютерного кода на нескольких процессорах в параллельных вычислительных средах. Параллелизм задач фокусируется на распределении задач , одновременно выполняемых процессами или потоками , между разными процессорами. В отличие от параллелизма данных , который предполагает выполнение одной и той же задачи над разными компонентами данных, параллелизм задач отличается одновременным выполнением множества разных задач над одними и теми же данными. [1] Распространенным типом параллелизма задач является конвейерная обработка , которая заключается в перемещении одного набора данных через серию отдельных задач, где каждая задача может выполняться независимо от других.

Описание [ править ]

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

В качестве простого примера: если система выполняет код на двухпроцессорной системе ( процессоры «a» и «b») в параллельной среде, и мы хотим выполнить задачи «A» и «B», можно сказать ЦП «a» для выполнения задачи «А» и ЦП «b» для одновременного выполнения задачи «Б», тем самым сокращая время выполнения. Задачи можно назначать с помощью условных операторов , как описано ниже.

Параллелизм задач подчеркивает распределенный (параллельный) характер обработки (т. е. потоков), в отличие от данных ( параллелизм данных ). Большинство реальных программ находятся где-то на континууме между параллелизмом задач и параллелизмом данных. [3]

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

Использование параллелизма на уровне потоков также начало проникать на рынок настольных компьютеров с появлением многоядерных микропроцессоров. Это произошло потому, что по разным причинам становится все более непрактичным увеличивать тактовую частоту или количество команд за такт одного ядра. Если эта тенденция сохранится, новые приложения придется разрабатывать с учетом использования нескольких потоков, чтобы получить выгоду от увеличения потенциальной вычислительной мощности. Это контрастирует с предыдущими инновациями в области микропроцессоров, в которых существующий код автоматически ускорялся за счет его запуска на более новом/более быстром компьютере.

Пример [ править ]

Псевдокод ниже иллюстрирует параллелизм задач:

программа:
 ...
 если ЦП = "а", то
     выполнить задание «А»
 иначе, если CPU="b" тогда
     выполнить задание «Б»
 конец, если
 ...
 завершить программу
 

Цель программы — выполнить некоторую общую задачу («A+B»). Если мы напишем код, как указано выше, и запустим его в двухпроцессорной системе, то среда выполнения выполнит его следующим образом.

  • В системе SPMD (одна программа, несколько данных) оба процессора будут выполнять код.
  • В параллельной среде оба будут иметь доступ к одним и тем же данным.
  • Предложение «if» различает процессоры. ЦП «a» будет читать true в «if», а CPU «b» будет читать true в «иначе, если», таким образом, имея свою собственную задачу.
  • Теперь оба процессора одновременно выполняют отдельные блоки кода, одновременно выполняя разные задачи.

Код, выполняемый процессором «a»:

программа:
 ...
 выполнить задание «А»
 ...
 завершить программу
 

Код, выполняемый процессором «b»:

программа:
 ...
 выполнить задание «Б»
 ...
 завершить программу
 

Теперь эту концепцию можно обобщить на любое количество процессоров.

Языковая поддержка [ править ]

Параллелизм задач может поддерживаться в языках общего назначения либо встроенными средствами, либо библиотеками. Яркие примеры включают:

Примеры детальных языков параллельного выполнения задач можно найти в области языков описания оборудования, таких как Verilog и VHDL .

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

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

  1. ^ Рейндерс, Джеймс (10 сентября 2007 г.). «Понимание параллелизма задач и данных | ZDNet» . ЗДНет . Проверено 8 мая 2017 г.
  2. ^ Куинн, Майкл Дж. (2007). Параллельное программирование на C с использованием MPI и openMP (изд. Таты МакГроу-Хилл). Нью-Дели: паб Tata McGraw-Hill. ISBN  978-0070582019 .
  3. ^ Хикс, Майкл. «Основы параллелизма» (PDF) . Университет Мэриленда: факультет компьютерных наук . Проверено 8 мая 2017 г.
Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 01BA859304E64EB6CEC2BD5CE20C8865__1644508740
URL1:https://en.wikipedia.org/wiki/Task_parallelism
Заголовок, (Title) документа по адресу, URL1:
Task parallelism - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)