Il existe plusieurs formes différentes de calcul parallèle : le niveau binaire, le niveau d'instruction, les données et le parallélisme des tâches.
Cependant, la communication et la synchronisation entre les différentes sous-tâches constituent l'une des plus grandes difficultés tout en réalisant une bonne performance parallèle au programme.