Ich hatte Probleme, die komplexitätstheoretische Sichtweise von "effizient gelöst durch parallelen Algorithmus" zu akzeptieren, die von der Klasse NC gegeben wird :
NC ist die Klasse von Problemen, die durch einen parallelen Algorithmus in der Zeit auf Prozessoren mit gelöst werden können .p ( n ) ≤ O ( n k ) c , k ≤ N
Wir können einen PRAM annehmen .
Mein Problem ist, dass dies nicht viel über "echte" Maschinen aussagt, dh Maschinen mit einer begrenzten Anzahl von Prozessoren. Jetzt wird mir gesagt, dass "es bekannt ist", dass wir einen -Prozessoralgorithmus auf -Prozessoren "effizient" simulieren können .p ∈ N
Was heißt hier "effizient"? Gibt es diese Folklore oder gibt es einen strengen Satz, der den durch die Simulation verursachten Overhead quantifiziert?
Was ich befürchte, das passiert, ist, dass ich ein Problem habe, das einen sequentiellen -Algorithmus und auch einen "effizienten" parallelen Algorithmus hat, der, wenn er auf Prozessoren simuliert wird , auch -Zeit benötigt (was) Dies ist alles, was auf dieser Granularitätsstufe der Analyse zu erwarten ist, wenn der sequentielle Algorithmus asymptotisch optimal ist. In diesem Fall gibt es keine Beschleunigung, soweit wir sehen können; Tatsächlich kann der simulierte Parallelalgorithmus langsamer sein als der sequentielle Algorithmus. Das heißt, ich suche wirklich nach Aussagen, die präziser sind als Grenzen (oder nach einer Erklärung, dass solche Ergebnisse fehlen).p O ( n k ) O