Question

Je veux comparer PPL vs OpenMP concernant leurs performances, mais je ne trouve pas une enquête détaillée sur le Web.Je crois qu'il n'y a pas beaucoup de gens expérimentés avec PPL.

Je développe mon logiciel sur Windows à l'aide de Visual Studio 2010 et je ne veux pas le porter quelque part ailleurs à court terme.

Si la portabilité n'est pas un problème et que seule la pertinence est la performance, que pensez-vous de ces deux méthodes?

Était-ce utile?

La solution

Cela dépend probablement de votre algorithme, mais cette recherche indique que la PPL peut être plus rapide que OpenMP:

http:// www.codeproject.com/articles/373305/visual-cplusplus-11-beta-benchmark-of-parallelooo

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

Autres conseils

sur msdn Il y a un Grande comparaison des propriétés Openmp et concert (noyau de PPL):

Le modèle OpenMP est une correspondance particulièrement bonne pour l'informatique hautes performances, où de très gros problèmes de calcul sont répartis sur les ressources de traitement d'un seul ordinateur. Dans ce scénario, l'environnement matériel est connu et le développeur peut raisonnablement s'attendre à avoir un accès exclusif aux ressources informatiques lorsque l'algorithme est exécuté.

Cependant, d'autres environnements informatiques moins contraignants peuvent ne pas être une bonne correspondance pour OpenMP. Par exemple, des problèmes récursifs (tels que l'algorithme QuicksTort ou la recherche d'un arbre de données) sont plus difficiles à mettre en œuvre à l'aide d'OpenMP. Le temps d'exécution de la concurrence complète les capacités de OpenMP en fournissant la bibliothèque de modèles parallèles (PPL) et la bibliothèque d'agents asynchrones. Contrairement à OpenMP, l'exécution de la concurrence fournit un planificateur dynamique qui s'adapte aux ressources disponibles et ajuste le degré de parallélisme à mesure que les charges de travail changent.

Ainsi, les principaux inconvénients de OpenMP:

  • Modèle Solduling statique.
  • ne contient pas de mécanisme d'annulation (très énorme désavantage, dans de nombreuses annuelles d'algorithme d'assentiment est requise).
  • ne contient pas l'approche de l'agent de concurrence.
  • problèmes avec des exceptions au code de paralel.

Si votre seule préoccupation est la performance, ce que je pense sur les deux approches est totalement non pertinente.C'est une question résolvable par une approche empirique, pas par l'argumentation.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top