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 | |