Apple ha introdotto Grand Central Dispatch (un pool di thread) in Snow Leopard, ma non è stato spiegato perché dovremmo utilizzarlo su OpenMP, che è multipiattaforma e funziona anche su Leopard. Sono entrambi abbastanza facili da usare e hanno caratteristiche simili. Quindi, qualche idea?Perché dovrei utilizzare Grand Central Dispatch su OpenMP?
risposta
GCD è molto meglio alla valutazione runtime del livello appropriato di risorse da lanciare a un problema - OpenMP decide quanti thread richiamare per un insieme di attività parallele basate su informazioni come le variabili di ambiente. GCD analizza il carico di sistema corrente e il numero di core disponibili e consente l'esecuzione di un numero appropriato di thread: il ridimensionamento in avanti e all'indietro mentre l'utilizzo delle risorse cambia in tempo reale. Ciò significa che un programma GCD dovrebbe ottenere risultati migliori nel caso generale. Naturalmente, se hai acquistato un gruppo di scatole dedicate per eseguire il tuo codice, allora questo è discutibile perché ci sarà poco altro con cui il tuo codice possa entrare in conflitto.
Integrazione livello prestazioni e sistema operativo?
Ora che GCD è stato open source, si tratta di mettere entrambi gli strumenti fianco a fianco e vedere chi vive alla fine.