В информатике параллелизм - это свойство систем, в которых множественные вычисления могут выполняться в перекрывающиеся периоды времени. Вычисления могут выполняться на нескольких ядрах в одном чипе, преимущественно с разделением по времени потоков на одном процессоре или выполняться на физически разделенных процессорах.

Параллелизм - это свойство систем, в которых несколько вычислений могут выполняться одновременно и потенциально взаимодействовать друг с другом. Вычисления могут выполняться на нескольких ядрах в одном чипе, преимущественно с разделением по времени потоков на одном процессоре или выполняться на физически разделенных процессорах.

Для общих параллельных вычислений был разработан ряд математических моделей, включая сети Петри, исчисление процесса, модель машины с параллельным произвольным доступом, модель актераи Reo Координационный язык.

Вопросы

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

Производительность

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

Примеры, где параллелизм не помогает

  • Затраты на использование нескольких потоков превышают потенциальное улучшение. например У вас очень короткое задание, но его передача (и связанные с ней данные) занимает много времени.
      < Li> например . стоимость блокировки ресурса превышает время, затрачиваемое на защищенную операцию. Однопоточная задача может работать намного лучше (и быть проще)
  • Вы уже используете общий ресурс в максимальной степени. например все ваши процессоры, жесткие диски, сетевое подключение полностью используются. В этом случае накладные расходы могут увеличиваться, уменьшая общую производительность.
  • Вам не нужно повышать производительность, но добавление параллелизма увеличивает сложность вашего приложения. Общий аргумент таков; Вы должны использовать все свои процессоры, потому что они есть (даже если нечего получить и все потерять)

  • Рекомендации