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