| 49 | | {{{#!html |
| 50 | | <font size=+7 color=orange> En travaux</font><br><br> |
| 51 | | }}} |
| | 54 | - Faites tourner la simulation, la durée des étapes s'affichent. Que pouvez-vous en conclure ? |
| | 55 | - Essayez de retirer les invalidations du cache (dans harch.c), observez le comportement et expliquer |
| | 56 | - Expliquez l'usage des couples de variables globales (BDBusy et BDLock) et (DMABusy et DMALock) |
| | 57 | |
| | 58 | -- 02_parallel |
| | 59 | |
| | 60 | Dans cette version, les trois étapes sont faites en parallèle sous la forme d'un pipeline avec deux couples de buffer utilisés en altenance. |
| | 61 | |
| | 62 | - Disk->BD->BUFIN[0] |
| | 63 | - Disk->BD->BUFIN[1] & BUFIN[0]->CPU->BUFOUT[O] |
| | 64 | - Disk->BD->BUFIN[0] & BUFIN[1]->CPU->BUFOUT[1] & BUFOUT[0]->DMA->FBF |
| | 65 | - Disk->BD->BUFIN[1] & BUFIN[0]->CPU->BUFOUT[0] & BUFOUT[1]->DMA->FBF |
| | 66 | - Disk->BD->BUFIN[0] & BUFIN[1]->CPU->BUFOUT[1] & BUFOUT[0]->DMA->FBF |
| | 67 | - Disk->BD->BUFIN[1] & BUFIN[0]->CPU->BUFOUT[0] & BUFOUT[1]->DMA->FBF |
| | 68 | - Disk->BD->BUFIN[0] & BUFIN[1]->CPU->BUFOUT[1] & BUFOUT[0]->DMA->FBF |
| | 69 | - Disk->BD->BUFIN[1] & BUFIN[0]->CPU->BUFOUT[0] & BUFOUT[1]->DMA->FBF |
| | 70 | - etc. |
| | 71 | |
| | 72 | Questions |
| | 73 | - Qu'est ce qu'on gagne à procéder ainsi ? |
| | 74 | - Est-ce qu'on peut gagner plus ? |
| | 75 | |
| | 76 | ## 03_multicore |
| | 77 | |
| | 78 | Dans cette version, on utilise plusieurs cores pour faire le calcul en parallèle |
| | 79 | |
| | 80 | - Que peut-on espérer gagner ? |
| | 81 | - Utilisez de 1 à 8 cores et tracer une courbe de speedup ? Qu'en concluez-vous ? (notez que la simulation se fige acutuellement mais je n'ai pas eu le temps de débugger...) |
| | 82 | - Expliquez le rôle de la variable working. |
| | 83 | - Retirez l'invalidation du cache de la fonction compute(), observez et expliquez. |
| | 84 | - Pourquoi certaines parties ne doivent être traitées que par le CPU 0 ? |
| | 85 | |