Domanda

Voglio confrontare PPL VS. OpenMP per quanto riguarda le loro prestazioni, ma non riesco a trovare un'indagine dettagliata sul web.Credo che non ci siano molte persone che sono vissute con PPL.

Sto sviluppando il mio software su Windows, utilizzando Visual Studio 2010 e non voglio portarlo da qualche altra parte a breve termine.

Se la portabilità non è un problema, e solo la preoccupazione è la performance, cosa ne pensi di questi due metodi?

È stato utile?

Soluzione

Probabilmente dipende dal tuo algoritmo, tuttavia questa ricerca indica che PPL potrebbe essere più veloce di OpenMP:

http:// www.codeProject.com/articles/373305/visual-cplusplus-11-beta-benchmark-of-parallel-loo

Serial : 72ms
OpenMP : 16ms
PPL    : 12ms
.

Altri suggerimenti

su msdn c'è un GRANDE CONFRAFFOLO delle proprietà OpenMP e concr (nucleo di PPL):

Il modello OpenMP è una corrispondenza particolarmente buona per un computing ad alte prestazioni, in cui i problemi computazionali molto grandi sono distribuiti attraverso le risorse di elaborazione di un singolo computer. In questo scenario, l'ambiente hardware è noto e lo sviluppatore può ragionevolmente aspettarsi di avere accesso esclusivo alle risorse di calcolo quando l'algoritmo viene eseguito.

Tuttavia, altri ambienti di calcolo meno limitati potrebbero non essere una buona corrispondenza per OpenMP. Ad esempio, i problemi ricorsivi (come l'algoritmo Quicksort o la ricerca di un albero di dati) sono più difficili da implementare utilizzando OpenMP. Il runtime di concorrenza integra le funzionalità di OpenMP fornendo la libreria parallela dei modelli (PPL) e la libreria degli agenti asincroni. A differenza di OpenMP, il runtime di concorrenza fornisce uno schedulatore dinamico che si adatta alle risorse disponibili e regola il grado di parallelismo come carichi di lavoro cambiano.

Allora, Principali svantaggi di OpenMP:

    .
  • Modello di sheduling statico.
  • non contiene il meccanismo di cancellazione (è richiesto un enorme svantaggio, in molte concorrenza è richiesto l'annullamento dell'algoritmo).
  • non contiene un approccio agente di concorrenza.
  • Problemi con eccezioni nel codice Paralelo.

Se la tua unica preoccupazione è la performance, allora i pensa sui due approcci è completamente irrilevante.Questa è una domanda risolta da un approccio empirico, non dall'argomentazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top