Les programmes d'aujourd'hui ne s'exécutent pas sur un seul processeur à la fois, mais plutôt sur des groupes de processeurs ou de machines travaillant de concert.  Assurer l'efficacité et la coopération entre les "threads" d'un programme est un problème profondément subtil, et fascinant. Ce cours vise à fournir les techniques nécessaires pour maîtriser une programmation parallèlele distribuée efficace, en évitant les nombreux pièges qui se présentent lorsque les calculs partagent leurs ressources.