wiki:smc4

Version 6 (modified by franck, 4 years ago) (diff)

--

Création d'un nouveau processus

Création de l'environnement de travail

Vous allez devoir recréer l'environnement de travail sur les nouvelles machines en vous référant au premier TP sur ALMOS-MKH. En résumé :

#copie des sources
cd /dsk/l1/misc
scp schmitt:/dsk/l1/misc/almos-mkh_tsar.tbz2 .
tar xvjf almos-mkh_tsar.tbz2

# definition des variables d'environnement
cd /dsk/l1/misc/almos-mkh_tsar
source env.sh

# compilation du noyau, des applications et generation du disque de tsar
cd /dsk/l1/misc/almos-mkh_tsar/almos-mkh
make

# compilation du prelaoder 
cd /dsk/l1/misc/almos-mkh_tsar/tsar/softs/tsar_boot/
make

# compilation du simulateur
cd /dsk/l1/misc/almos-mkh_tsar/tsar/platforms/tsar_generic_iob/
make

# execution du simulateur
./simul.x

Dans la fenêtre term1 du simuteur, lorsque le prompt du schell [ksh] apparait, vous pouvez exécuter l'application hello.elf

load /bin/user/hello.elf

Désormais le moteur de simulation est systemcass qui profite de la structuration des composants SoCLib. 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. 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. Dans le cas de TSAR, cela permet un gain en vitesse de 400% environ.

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. Le modèle SystemC de TSAR contient déjà les directives de parallélisation. Le grain de parallélisation est le cluster, c'est-à-dire qu'un thread d'OpenMP peut exécuter un nombre entier de clusters. Ainsi, on ne peut bénéficier de la parallélisation que pour les architectures de TSAR multi-clusters.

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 cores par cluster), après voir compilez, vous écriez :

cd /dsk/l1/misc/almos-mkh/tsar/plateforms/tsar_generic_iob/
./simul.x -THREADS 4

A titre indicatif, le simulateur de tsar_generic_iob s'exécute à environ 200KHz pour 1 cluster à 1 core sur un core du PC et à environ 100KHz pour 4 clusters à 4 cores (16 cores) en tout sur 4 cores du PC.

Questions