Pourquoi les livres sur la programmation simultanée ignorent toujours le parallélisme de données? [fermé]

StackOverflow https://stackoverflow.com/questions/1854054

Question

Il y a eu un changement important vers la programmation parallèle des données via des systèmes comme OpenCL et CUDA au cours des dernières années, et encore des livres publiés même au cours des six derniers mois ne mentionne même pas le sujet de la programmation parallèle des données.

Il est ne convient pas à tous les problèmes, mais il semble qu'il y ait un écart important ici qui ne sont pas pris en compte.

Était-ce utile?

La solution

Tout d'abord, je vais souligner que la programmation concurrente est pas nécessairement synonyme de programmation parallèle. La programmation concurrente est de construire des applications des tâches faiblement couplés. Par exemple, une fenêtre de dialogue pourrait avoir des interactions avec chaque contrôle mis en œuvre comme une tâche distincte. Programmation parallèle, d'autre part, est explicitement de répandre la solution d'une tâche de calcul à travers plus d'une seule pièce de matériel d'exécution, essentiellement toujours pour des raisons de performances de quelque sorte (note: même trop peu de RAM est une raison de performances lorsque l'alternative est la permutation.

Alors, je dois demander en retour: Quels livres parlez-vous? Sont-ils sur la programmation simultanée (j'ai quelques-unes d'entre elles, il y a beaucoup de théorie intéressante là-bas), ou sur la programmation parallèle?

S'ils sont vraiment sur la programmation parallèle, je vais faire quelques observations:

  • CUDA est une cible en mouvement rapide, et a été depuis sa sortie. Un livre écrit à ce sujet aujourd'hui serait la moitié obsolète au moment où il en a fait impression.
  • la norme OpenCL a été libéré il y a moins d'un an. implémentations stables sont sortis au cours des 8 derniers mois environ. Il y a tout simplement pas eu assez de temps pour un livre encore écrit, et encore moins révisé et publié.
  • OpenMP est couvert dans au moins quelques-unes des manuels de programmation parallèle que j'ai utilisé. Jusqu'à la version 2 (v3 vient de sortir), il était essentiellement tout sur les données de programmation parallèle.

Autres conseils

Je pense que ceux qui travaillent avec l'informatique parallèle académique aujourd'hui viennent généralement du champ de calcul du cluster. OpenCL et CUDA utilisent les processeurs graphiques, qui plus ou moins ont évolué par inadvertance dans les processeurs à usage général ainsi que le développement des graphiques plus avancés algorithmes de rendu.

Cependant, les graphiques et les gens des gens de calcul haute performance ont été « découvrir » depuis un certain temps maintenant, et beaucoup ou de recherche est d'être fait en utilisant les GPU pour le calcul d'usage général.

« toujours » est un peu fort; il y a des ressources là-bas ( exemple ) qui portent sur des sujets de parallélisme de données.

Le livre classique "The Connection Machine" par Hillis était le parallélisme de données. Il est l'un de mes favoris

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