Apple hat Grand Central Dispatch (einen Thread-Pool) in Snow Leopard eingeführt, ist aber nicht darauf eingegangen, warum man es gegenüber OpenMP verwenden sollte, das plattformübergreifend ist und auch unter Leopard funktioniert. Sie sind beide ziemlich einfach zu benutzen und sehen von den Fähigkeiten her ähnlich aus. Also, irgendwelche Ideen?
Antworten
Zu viele Anzeigen?OpenMP entscheidet auf der Grundlage von Informationen wie Umgebungsvariablen, wie viele Threads für eine Reihe von parallelen Aufgaben aufgerufen werden sollen. GCD betrachtet die aktuelle Systemauslastung und die Anzahl der verfügbaren Kerne und erlaubt die Ausführung einer angemessenen Anzahl von Threads, wobei die Skalierung nach oben und unten erfolgt, wenn sich die Ressourcennutzung in Echtzeit ändert. Das bedeutet, dass ein GCD-Programm im Allgemeinen bessere Ergebnisse erzielen sollte. Wenn Sie einen Cluster von dedizierten Rechnern gekauft haben, um Ihren Code auszuführen, ist dies natürlich irrelevant, da Ihr Code kaum mit anderen Systemen in Konflikt geraten kann.