Leider lassen sich nicht alle Aufgaben gleich gut parallelisieren. Es kommt eben auch vor, dass ein Thread auf einen anderen warten muss.
Die ersten beiden Schritte lassen sich prinzipiell vollständig parallelisieren, da bei beiden eine große Anzahl gleicher Operationen auf voneinander unabhängige Daten ausgeführt werden muß.