Considérations de parallélisme et de concurrence

Pour des raisons historiques, vous trouverez aussi des articles sur des sujets connexes dans la section sur les systèmes client/ serveur de ce site.

Vous trouverez dans cette section du site quelques articles portant sur des thématiques en lien avec le parallélisme et la programmation concurrente.

Si vous avez des questions, vous pouvez évidemment me contacter (mes coordonnées sont sur la page où se trouve mon horaire); je fais toujours de mon mieux pour répondre dans des délais raisonnables.

Conditions du parallélisme

Voir Bernstein, A. J. (Oct. 1966). Analysis of Programs for Parallel Processing. IEEE Transactions on Electronic Computers. EC-15 (5): 757–763 pour le texte original.

En 1966, A. J. Bernstein, a mis de l'avant un certain nombre de conditions devant s'avérer pour que deux « segments de programme » puissent s'exécuter correctement en parallèle. Les conditions de Bernstein, comme on les appelle, sont :

Aujourd'hui, on privilégie les continuations pour réduire le blocage même en situation de dépendance de données; on fait ainsi une « lecture créative » des résultats classiques. Cela dit, on constate ici que les conditions de Bernstein rejoignent l'acception du parallélisme tel que mis de l'avant par plusieurs experts.

À propos du mot « parallélisable »

En général, j'utiliserai le néologisme « parallélisable » pour « qui est susceptible d'être traité en parallèle ». Le mot me semble bien formé, mais n'existe malheureusement pas en français et je n'y vois pas d'équivalent évident (je suis ouvert aux suggestions si vous en avez!)

Lectures complémentaires

Comment Leslie Lamport percevait les problèmes fondamentaux de la programmation concurrente, en 1983 (même si le texte a été publié en 1984) : http://research.microsoft.com/en-us/um/people/lamport/pubs/solved-and-unsolved.pdf

Je ne suis pas très porté sur les vidéos, faute de temps, mais http://www.infoq.com/presentations/Thinking-Parallel-Programming par Guy Steele est vraiment intéressant. De même, cette conversation entre Bjarne Stroustrup, Carl Hewitt et David Ungar est fort instructive : http://channel9.msdn.com/Blogs/Charles/A-Conversation-with-Bjarne-Stroustrup-Carl-Hewitt-and-Dave-Ungar

Discussions d'idées générales sur l'immuabilité :

Discussions d'idées générales sur le parallélisme :

Discussions d'idées générales sur la concurrence :

Quelques problèmes fondamentaux de la synchronisation :

Quelques articles de Herb Sutter :

Quelques articles de 2005 par Larry Osterman, programmeurs système pour la plateforme Microsoft Windows :

Réflexions de Bartosz Milewski sur le futur de la programmation concurrente :

Pourquoi la programmation concurrente est-elle difficile? Réflexion de Stefan Marr en 2014 : http://www.stefan-marr.de/2014/07/why-is-concurrent-programming-hard/

Quelques présentations d'Anthony Williams :


Valid XHTML 1.0 Transitional

CSS Valide !