Pthreads vs OpenMP

Je suis de la création d'une application multi-thread en C à l'aide de Linux.

Je ne suis pas sûr si je dois utiliser les threads POSIX de l'API ou de l'API OpenMP.

Quels sont les avantages & les inconvénients de l'utilisation soit?

Edit:

Quelqu'un pourrait-il préciser si les deux Api créer au niveau du noyau ou au niveau de l'utilisateur fils?

  • Re: votre édition (du noyau ou du niveau de l'utilisateur?) - il dépend de la mise en œuvre! Une API est juste que - une interface. OpenMP est pas la mise en œuvre - mais ce sont des implémentations. (Il y a un peu d'info en cet article de Wikipédia, trop).
  • Fondamentalement, si vous pouvez faire ce que vous avez besoin dans OpenMP, vous devriez le faire en OpenMP.
  • OpenMP doit être utilisé pour les boucles qui doivent être calculées sur tous les cœurs. PThread pouvez le faire aussi mais c'est beaucoup de travail et il est très difficile à maintenir, vous utilisez PThread d'habitude, si vous avez besoin pour démarrer un processus séparé ce qui ne devrait pas bloquer le thread principal. Par exemple: vous avez un serveur, les clients se connectent et de garder la connexion avec le serveur et de parler avec elle, vous créer un thread par client et de travailler avec le client dans ce thread sans bloquer le thread principal. C'est comme si vous créez une nouvelle application et de le laisser s'exécuter sur le Système d'Exploitation, sans se soucier de l'application principale.
  • double de stackoverflow.com/questions/935467/...
InformationsquelleAutor | 2010-10-16