INF560 Calcul Parallèle
Cours
Codes du cours
- Compte.java, Compte3.java
-
Banque.java,
CS1.java,
essaimon0.java,
essaimon1.java,
Semaphore.java,
EssaiPV.java,
Essai1.java,
Essai2.java,
Lance.java,
Exemple1.java,
Exemple2.java,
Phil.java,
Dining.java,
EssaiPVsup.java,
EssaiPVsup2.java,
- CUDA: matrix.cu, transpose.cu
TDs
- Sujet TD1 (threads JAVA); vous pouvez utiliser
UnEntier.java, MsgQueue.java, Process.java
correction.
- Sujet TD2 (Threads JAVA et synchronisation);
vous pouvez utiliser CircularList.java,
correction
- Sujet TD3 (RMI);
vous pouvez partir du Hello : Hello.java, HelloInterface.java,
HelloClient.java,
HelloServer.java
correction exo1(version simple),
codes java de la version avec Callback
Compute_FinalRes.java,
Compute_PartialRes.java,
Compute_PartialResServer.java,
WaitingRes.java
- Sujet TD4 (CUDA)
Miniprojets
Au choix:
Pour la synchronisation:
- en passant par le CPU, en lançant successivement des kernels pour chaque étape
- en utilisant des synchronisations inter-blocs:
- voir et comprendre la fonction gpu_sync de l'article; mais attention elle ne marche pas telle quelle (voir point suivant)
- un petit programme basé sur l'idée de l'article et qui synchronise effectivement les blocs synchro.cu
- voir aussi le Programming Guide à ce sujet (en particulier B.2.4 pour les variables volatile, B.5 et B.6 pour les fonctions de
synchronisation, B.10 pour les fonctions atomiques)
La notation du cours se fait sur le projet, sous la forme d'un court rapport (5 pages environ) et d'une soutenance. Dans le rapport, nous n'attendons pas d'introduction générale, que ce soit sur le calcul parallèle ou sur le sujet choisi. Nous attendons une présentation des algorithmes (pas de code), des tests, des performances de votre implémentation, en particulier par rapport à une implémentation séquentielle, avec éventuellement des comparaisons de plusieurs versions successives qui améliorent les précédentes. Dans le cas de binômes, nous attendons également une description de la répartition des tâches entre binômes.
Liens et documentations