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