Komplexitätsberechnungen werden immer anhand gewisser Rechnermodelle
gemacht, typischerweise die detereministische Turingmaschine (=
1-Kern-Prozessor), die nichtdeterministische Turingmaschine (=
Prozessor, der alle Rechenwege gleichzeitig ausprobiert bzw. sich immer
für den richtigen Rechenweg entscheidet) und dann noch Netzwerkmodelle,
wo eine Anzahl Knoten über eine klar definierte Kommunikation (Message
Passing oder Shared Memory) das Problem lösen. Die Theorie ist auch für
Multiprozessorsysteme weitgehend untersucht und bekannt.
Theoretisch gesehen bringt ein Multiprozessorsystem bestenfalls einen
Speed-up von n bei n Prozessoren, die Komplexität ändert sich also vom
Ein- zum n-Kernsystem bestenfalls von O(x) nach O(x/n).
Tatsächlich verringert sich der Speed-up noch stark, da die Prozessoren
kommunizieren und aufeinander warten müssen und gewisse Berechnungen
nicht parallelisiert werden können.