Что мы имеем в виду, когда используем термины параллелизм и параллелизм? В чем разница и как они связаны?
Проще говоря, параллелизм предназначен для работы с большим количеством вещей одновременно, а параллелизм заключается в том, чтобы выполнять множество операций одновременно .
В большинстве статей и книг вы могли бы прочитать, что параллелизм касается работы с параллельными устройствами и параллельного взаимодействия, но параллелизм - это еще не все. Параллелизм не имеет ничего общего с параллелизмом, эти два понятия имеют разные концепции.
Итак, давайте сначала разберемся, что такое параллелизм и что такое параллелизм.
Что такое параллелизм?
Видите ли вы, как мир с пошаговым движением выполняет одно действие за раз (Последовательный процесс), или вы видите сложный мир взаимодействующих, независимо ведущих себя частей (Параллельный процесс)?
Все вещи в мире происходят одновременно, от самого низкого уровня, такого как многоядерные машины, до сетей, планет, вселенной… .. Мы живем в параллельном мире, а не в последовательном, но мы используем последовательные компьютеры для написания программ. Наши компьютеры не выражают этого мировоззрения. Это похоже на некое несоответствие, мы можем решить это двумя способами:
- Сделайте мир последовательным
- Сделайте программное обеспечение параллельным
Мы всегда будем использовать второй подход.
Сделайте мир одновременным !!
а в компьютерных системах понятие параллелизма происходит от двух понятий:
- Как компьютер выполняет процесс. У исполняемого процесса есть счетчик программ (ПК) и стек.
- Каково текущее состояние программы? Вы можете представить состояние программы как (ПК, стек)
Таким образом, вы можете рассматривать параллельную программу как просто имеющую множество (ПК, стек) вместе, а в параллельной программе состояние как линейную коллекцию (ПК, стек). Теперь он выглядит более мощным и понятным.
Можно сказать, что параллелизм - это композиция независимо выполняющихся процессов.
Это способ структурировать программное обеспечение и написать чистый код, который может хорошо взаимодействовать с реальным миром.
На изображении выше кролик хочет положить всю морковь в ведро. У одного кролика будет слишком много времени, чтобы положить всю морковь в ведро, чтобы ускорить процесс, мы можем увеличить количество кроликов.
Что такое параллелизм?
Представьте, что вы готовите рецепт и разговариваете с мамой о рецепте. Возможно, вы не знаете, но вы выполняете обе работы параллельно, и это называется параллелизмом.
Параллелизм - это одновременное выполнение двух или более вещей, а не просто выполнение двух или более вещей.
На компьютерном языке параллелизм заключается в одновременном выполнении нескольких вычислений.
Пример:
- Параллелизм: на вашем компьютере вы используете операционную систему (ОС), она может иметь драйвер мыши, драйвер клавиатуры, драйвер дисплея и т. д. Всем этим занимается ОС как самостоятельная вещь. Это параллельные вещи, они не обязательно должны быть параллельны. Если есть один процессор, то одновременно будут работать только они.
- Параллелизм: параллельные объекты могут быть чем-то вроде векторного скалярного произведения, которое можно разбить на микроскопические операции, которые можно выполнять параллельно.
Параллелизм - это структура для эффективного совместного использования ресурсов. Ресурсы могут быть чем угодно, например, переменной, базой данных, ЦП или сетевым подключением. Параллелизм - это количество общих ресурсов, а параллелизм - это то, как общие ресурсы. Оба переплетены.
Как связаны параллелизм и параллелизм?
Если есть слово «параллелизм», большинство людей начинают думать о параллелизме, даже когда Google объявляет о go (который является параллельным языком, а параллельный - наиболее характерная особенность go), программисты говорят, что теперь мы можем запускать разные вещи параллельно. Эти два слова связаны, но имеют разные концепции.
Параллелизм - это не параллелизм, даже если он позволяет параллелизм. Если у вас выполняется единственный процесс, ваша программа является параллельной, но не параллельной. Параллельная программа может эффективно выполняться параллельно на многопроцессоре.
В программировании параллелизм - это композиция независимо выполняющихся процессов, а параллелизм - это одновременное выполнение нескольких вещей (возможно, связанных).
Параллелизм - это эффективная структура, а параллелизм - это выполнение. Но оба важны, параллелизм - это способ структурировать вещи, чтобы вы могли использовать параллелизм для улучшения работы.
Создание эффективной параллельной структуры - это не сокращение объема работы, даже если выполнение большего объема работы, а ее ускорение, потому что параллельная композиция из более управляемых частей может выполняться быстрее, а параллелизм исходит из лучшего параллельного выражения проблемы.
Мы можем улучшить производительность программы, добавив один или несколько параллельных процессов в существующий дизайн / структуру. Мы добавляем больше вещей, но все стало быстрее.
Параллелизм против параллелизма
- Приложение может быть параллельным, но не параллельным, что означает, что оно обрабатывает более одной задачи одновременно, но никакие две задачи не выполняются одновременно.
- Приложение может быть параллельным, но не одновременным, что означает, что оно одновременно обрабатывает несколько подзадач задачи в многоядерном ЦП.
- Приложение не может быть ни параллельным, ни параллельным, что означает, что оно обрабатывает все задачи по очереди, последовательно.
- Приложение может быть как параллельным, так и параллельным, что означает, что оно одновременно обрабатывает несколько задач в многоядерном процессоре.
Теперь, если вы задумались, неужели параллелизм лучше, чем параллелизм? Это было бы похоже на то, что яблоки лучше апельсинов? Не стоит сравнивать две разные вещи.