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

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

Много математических моделей были разработаны для общего параллельного вычисления включая сети Петри, вычислений процесса, модели Parallel Random Access Machine, модели Actor и Языка Координации Reo.

Проблемы

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

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

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

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

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

Ссылки