В чем разница между параллелизмом и параллелизмом? - PullRequest
897 голосов
/ 26 июня 2009

В чем разница между параллелизмом и параллелизмом?

Примеры приветствуются.

Ответы [ 32 ]

0 голосов
/ 01 января 2019

«Параллельно» делает вещи - что угодно - одновременно. Это могут быть разные вещи или одно и то же. Несмотря на принятый ответ, которого нет, речь идет не о том, чтобы «показаться одновременно». Это действительно в то же время. Вам нужно несколько ядер ЦП, использующих совместно используемую память на одном хосте или распределенную память на разных хостах, для запуска параллельного кода. В качестве примера можно привести конвейеры из 3-х различных задач, которые одновременно выполняются одновременно: Задача-уровень 2 должна ожидать выполнения единиц, завершенных задачей уровня-1, а задача-уровень-3 должна ожидать выполнения единиц работы, завершенных задача уровня-2. Другой пример - параллелизм одного производителя с одним потребителем; или много производителей и 1 потребитель; читатели и писатели; и др.

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

Не только числовой код может быть распараллелен. Файлы слишком часто могут обрабатываться параллельно. В приложении обработки естественного языка для каждого из миллионов файлов документов может потребоваться подсчитать количество токенов в документе. Это параллельно, потому что вы подсчитываете токены, что является одинаковым поведением для каждого файла.

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

Термины, например, включают в себя атомарные инструкции, критические разделы, взаимное исключение, ожидание вращения, семафоры, мониторы, барьеры, передачу сообщений, сокращение карты, сердцебиение, звонок, алгоритмы создания билетов, потоки, MPI, OpenMP.

Работа Грегори Эндрюса является главным учебником по ней: многопоточное, параллельное и распределенное программирование.

0 голосов
/ 19 декабря 2015

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

...