|
Revision 28, 1.0 kB
(checked in by jean, 7 months ago)
|
multicore, la question du gain de temps
|
| Line | |
|---|
| 1 |
comment optimiser un programme pour le multicore |
|---|
| 2 |
************************************************ |
|---|
| 3 |
|
|---|
| 4 |
|
|---|
| 5 |
Attention au nouveaux multicore, il n'est pas si facile de faire un programme rentable. |
|---|
| 6 |
|
|---|
| 7 |
Prenons un exemple |
|---|
| 8 |
|
|---|
| 9 |
Voici une chaîne : |
|---|
| 10 |
abcdefgh |
|---|
| 11 |
|
|---|
| 12 |
Voici un tâche simple: |
|---|
| 13 |
Mettre les lettres en majuscules |
|---|
| 14 |
|
|---|
| 15 |
Voici la façon classique de faire: |
|---|
| 16 |
1) charger la chaine en mémoire |
|---|
| 17 |
2) parcourir la chaine et mettre les caractères en majuscule les uns aprés les autres |
|---|
| 18 |
|
|---|
| 19 |
Voici une façon en programmation parallèle ( il y en a d'autres ) |
|---|
| 20 |
1) charger la chaine en mémoire |
|---|
| 21 |
2) découper la chaine en caractères ( c'est le grain le plus fin d'une chaîne ) |
|---|
| 22 |
3) mettre les caractères en majuscules |
|---|
| 23 |
4) recomposer la nouvelle chaine |
|---|
| 24 |
|
|---|
| 25 |
|
|---|
| 26 |
Pour que le programme parallèle soit rentable il faut que : |
|---|
| 27 |
le temps d'éxécution de l'exemple1 > le temps nécessaire à découper en grains + le temps d'éxécution de la tâche parallèle + le temps d'éxécution de la recomposition ou synchronisation |
|---|
| 28 |
|
|---|
| 29 |
Bonne chance avec vos programmes parallèles. |
|---|
| 30 |
|
|---|