Сложность параллельного выполнения зависимых процессов может заключаться в следующих аспектах:
- Невозможность разделения данных на независимые фрагменты. 1 Если данные не удаётся легко разделить на равные части, это может спровоцировать перерасход ресурсов и лишить всех преимуществ параллельного выполнения рабочих процессов. 1
- Необходимость взаимодействия параллельных процессов. 2 Обычно в это вовлечено несколько уровней программного обеспечения, что увеличивает сложность и количество служебных данных, обеспечивающих синхронизацию. 2
- Подверженность взаимоблокировке. 2 Это происходит, когда два или более действия вовлечены в дурной цикл ожидания друг друга. 2
- Отсутствие явного общего состояния системы. 2 Состояние параллельной системы — это совокупность состояний её компонентов. 2
- Необходимость сохранения порядка обработки элементов. 1 Если нужно сохранять порядок получения элементов, возможности распараллеливания окажутся ограничены. 1
- Отсутствие стандартов в области создания и отладки программ для параллельных систем. 34
Иногда каждый шаг зависит от результата выполнения предыдущего шага, и такую взаимозависимость невозможно разорвать. 1 В таких задачах параллельный подход будет бессмысленным. 1