Я считаю, что этот ответ является более правильным, чем существующие ответы, и их редактирование изменило бы их суть. Я пытался ссылаться на различные источники или страницы википедии, чтобы другие могли подтвердить правильность.
Параллельность: свойство системы, позволяющее выполнять элементы программы, алгоритма или задачи не по порядку или по частям, не влияя на конечный результат 1 2 .
Простой пример этого - последовательные добавления:
0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 = 45
Из-за коммутативного свойства сложения их порядок может быть переставлен без ущерба для корректности; следующая договоренность приведет к тому же ответу:
(1 + 9) + (2 + 8) + (3 + 7) + (4 + 6) + 5 + 0 = 45
Здесь я сгруппировал числа в пары, которые составят 10, чтобы мне было легче найти правильный ответ в моей голове.
Параллельные вычисления: тип вычислений, при котором множество вычислений или выполнение процессов выполняются одновременно 3 4 . Таким образом, параллельные вычисления используют свойство параллелизма для одновременного выполнения нескольких модулей программы, алгоритма или задачи.
Продолжая пример последовательных дополнений, мы можем выполнить разные части суммы параллельно:
Execution unit 1: 0 + 1 + 2 + 3 + 4 = 10
Execution unit 2: 5 + 6 + 7 + 8 + 9 = 35
Затем в конце мы суммируем результаты от каждого работника, чтобы получить 10 + 35 = 45
.
Опять же, этот параллелизм был возможен только потому, что последовательные добавления имеют свойство параллелизма.
Параллельность может быть усилена не только параллелизмом. Подумайте об упреждении в одноядерной системе: в течение некоторого времени система может прогрессировать в нескольких запущенных процессах без завершения какого-либо из них. Действительно, ваш пример асинхронного ввода-вывода является распространенным примером параллелизма, который не требует параллелизма.
неразбериха
Вышеуказанное относительно просто. Я подозреваю, что люди путаются, потому что определения словаря не обязательно соответствуют тому, что было изложено выше:
- Одновременный: происходящий или существующий одновременно или рядом 5 .
- Параллелизм: факт двух или более событий или обстоятельств, происходящих или существующих одновременно. От поиска в Google: "define: параллелизм" .
Словарь определяет «параллелизм» как факт возникновения, в то время как определение в вычислительном языке является скрытым свойством программы, свойства или системы. Хотя связаны эти вещи не то же самое.
Личные рекомендации
Я рекомендую использовать термин «параллельный», когда одновременное выполнение гарантировано или ожидается, и использовать термин «параллельный», когда он неопределен или не имеет значения, если будет использоваться одновременное выполнение.
Поэтому я бы описал моделирование реактивного двигателя на нескольких ядрах как параллельное.
Я бы описал Makefiles как пример параллелизма. Makefiles устанавливают зависимости каждой цели. Когда цели зависят от других целей, это создает частичное упорядочение. Когда отношения и рецепты определены всесторонне и правильно, это устанавливает свойство параллелизма: существует частичный порядок, такой, что порядок определенных задач может быть переупорядочен без влияния на результат. Опять же, этот параллелизм может быть использован для одновременного построения нескольких правил, но параллелизм является свойством Makefile независимо от того, используется параллелизм или нет.