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