INF560 Calcul Parallèle
Des sujets de stage en lien avec le cours
Cours
- Poly postcript,
pdf,
html
- Introduction, machines parallèles, threads JAVA pdf
- Threads JAVA et synchronisation pdf
- Remote Method Invocation en JAVA (RMI)
pdf
- Introduction à CUDA pdf
- PRAM pdf
- Dépendances et parallélisation pdf
Algorithmique sur réseau en anneau
pdf
Communication et routage hétérogène
pdf
Géométrie des systèmes distribués pdf
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, code Java de la version avec priorité aux rédacteurs LecteursRedacteurs.java
- Sujet TD3 (RMI);
vous pouvez partir du Hello : Hello.java, HelloInterface.java,
HelloClient.java,
HelloServer.java
correction(version simple),
codes java de la version avec Callback
Compute_FinalRes.java,
Compute_PartialRes.java,
Compute_PartialResServer.java,
WaitingRes.java,
- Sujet TD4 (CUDA) - regarder la mise à jour pour le TD5
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