| 1 | = Création d'un nouveau processus |
| 2 | |
| 3 | == Création de l'environnement de travail |
| 4 | |
| 5 | Vous allez devoir recréer l'environnement de travail sur les nouvelles machines en vous référant au [https://www-soc.lip6.fr/trac/sesi-soclib/wiki/smc1 premier TP sur ALMOS-MKH]. En résumé : |
| 6 | |
| 7 | {{{ |
| 8 | #copie des sources |
| 9 | cd /dsk/l1/misc |
| 10 | scp schmitt:/dsk/l1/misc/almos-mkh_tsar.tbz2 . |
| 11 | tar xvjf almos-mkh_tsar.tbz2 |
| 12 | |
| 13 | # definition des variables d'environnement |
| 14 | cd /dsk/l1/misc/almos-mkh_tsar |
| 15 | source env.sh |
| 16 | |
| 17 | # compilation du noyau, des applications et generation du disque de tsar |
| 18 | cd /dsk/l1/misc/almos-mkh_tsar/almos-mkh |
| 19 | make |
| 20 | |
| 21 | # compilation du prelaoder |
| 22 | cd /dsk/l1/misc/almos-mkh_tsar/tsar/softs/tsar_boot/ |
| 23 | make |
| 24 | |
| 25 | # compilation du simulateur |
| 26 | cd /dsk/l1/misc/almos-mkh_tsar/tsar/platforms/tsar_generic_iob/ |
| 27 | make |
| 28 | |
| 29 | # execution du simulateur |
| 30 | ./simul.x |
| 31 | }}} |
| 32 | |
| 33 | Désormais le moteur de simulation est systemcass qui profite de la structuration des composants SoCLib. |
| 34 | Un composant SoCLib sépare explicitement les fonctions de transition, de génération de Moore et de génération de Mealy dans ses automates. |
| 35 | Sans entrer dans les détails, cela permet à systemcass de n'exécuter qu'une seule fois par cycle les fonctions de transition et de génération de Moore et limiter la simulation par relaxation aux fonctions de Mealy. |
| 36 | Dans le cas de TSAR, cela permet un gain en vitesse de 400% environ. |
| 37 | |
| 38 | En outre, systemcass permet de produire simulateur parallèle (s'exécutant en parallèle sur un ordinateur multi-core) gràce à l'API OpenMP. |
| 39 | Le modèle SystemC de TSAR contient déjà les directives de parallélisation. |
| 40 | Le grain de parallélisation est le cluster, c'est-à-dire qu'un thread d'OpenMP peut exécuter un nombre entier de clusters. |
| 41 | Ainsi, on ne peut bénéficier de la parallélisation que pour les architectures de TSAR multi-clusters. |
| 42 | |
| 43 | Pour demander la parallélisation, il suffit de lancer le simulateur avec le paramètre `-THREADS x`, où x est le nombre de threads OpenMP demandé (qui doit être au plus égal au nombre de cores, ici 6). Par exemple, pour une plateforme TSAR à 4 clusters (quel que soit le nombre de core par cluster), après voir compilez, vous écriez : |
| 44 | {{{ |
| 45 | cd /dsk/l1/misc/almos-mkh/tsar/plateforms/tsar_generic_iob/ |
| 46 | ./simul.x -THREADS 4 |
| 47 | }}} |
| 48 | |
| 49 | |
| 50 | |
| 51 | |