Institut de Recherche en Communications et Cybernétique de Nantes STORM Simulation TOol for Real-Time Multiprocessor scheduling http://storm.rts-software.org GDR ASR ACTRISS Nancy 7 novembre 2012 Richard Urunuela, Anne-Marie Déplanche, Yvon Trinquet http://www.rts-software.org 1
Contexte du développement initial de STORM Projet ANR PHERMA* (CEA, I3S, IRCCyN, THALES, 2007-2010) Systèmes temps réel embarqués Architectures multiprocesseur Modèle d application complexe Contraintes énergétiques Besoin d un simulateur d ordonnancement * PHERMA : Parallel Heterogeneous Energy efficient Real-time Multiprocessor Architecture Merci à Michel Auguin et son équipe pour leurs contributions. 2
Objectifs initiaux de STORM Prise en compte des architectures multiprocesseur (symétriques) Simulation et caractérisation d ordonnanceurs Prise en compte des caractéristiques énergétiques des processeurs (consommation, modes d endormissement, pénalités temporelles ) Flexibilité vis-à-vis des entités de simulation : ordonnanceurs, types de processeur, types de tâche Indépendance vis-à-vis de la plateforme support ( développement Java) Exploration d architectures 3
Le simulateur et son environnement Les entrées Les sorties 4
Les entrées pour spécifier les composants L architecture matérielle : les processeurs L architecture logicielle : les tâches, l ordonnanceur P = 10 C = 6 O = 0 Prio = 1 T1 T3 P = 10 C = 3 O = 6 Prio = 5 Fixed Priority Preemptive Scheduler T2 P = 10 C = 3 O = 0 Prio = 3 CPUA CPUB 5
Le fichier d entrée : au format xml 2 processeurs de type MPCore <SIMULATION duration="150"> Ordonnanceur FP préemptif <SCHED classname="storm.schedulers.fp_p_scheduler"> </SCHED> <CPUS> <CPU classname="storm.processors.ct11mpcore" name ="CPU A" id="11" > </CPU> <CPU classname="storm.processors.ct11mpcore" name ="CPU B" id="12" > </CPU> </CPUS> <TASKS> <TASK classname="storm.tasks.ptask_nam" name ="T1" id="1" period="10 activationdate="0" WCET="6" priority="1"></task> <TASK classname="storm.tasks.ptask_nam" name ="T2" id="2" period="10 activationdate="0" WCET="3" priority="3"></task> <TASK classname="storm.tasks.ptask_nam" name ="T3" id="3" period= 10 activationdate="6" WCET="3" priority="5"></task> </TASKS> Les tâches de l application <DATAS> <DATA source="1" destination="2" rate="1" size="10"> </DATA> </DATAS> </SIMULATION> Relation de précédence 6
Une interface homme-machine (en ligne de commande) 7
Des résultats : sous forme graphique, sous forme de fichiers 8
Fenêtres graphiques : un exemple plus complet 9
Les modèles utilisables : pour les tâches Tâches périodiques / apériodiques Avec / Sans mémorisation des activations Avec / Sans avortement sur échéance Loi de tir de l AET (Actual Execution Time) Dans [BCET.. WCET], paramétrable et personnalisable Loi de précédence paramétrable et personnalisable (ET / OU / Temporisation ) Les modèles utilisables : pour les ordonnanceurs Ordonnanceurs globaux : RR FIFO FP P FP NP FP Mixte EDF P EDF NP LLF PFair Ordonnanceurs par partitionnement (non publiés dans la V3) 10
Les modèles utilisables : pour les processeurs Un modèle simple avec 2 états (Running / Idle) Un modèle avec DPM et DVFS (dans le cadre de PHERMA, non disponible en V3) Inspiré du processeur Intel XScale PXA270 11
Et si vous n avez pas ce qu il vous faut? Vous n avez qu à le faire!!! 12
Et si vous n avez pas ce qu il vous faut? L ordonnanceur est externe au noyau de simulation Tout ordonnanceur peut être rajouté par écriture d une classe Java conforme à l API noyau L API est documentée et des exemples d écriture d ordonnanceur sont fournis dans la documentation Idem pour créer de nouveaux types de processeur ou de tâche 13
Qu est-ce qui est disponible? La version V3 Sur le site http://storm.rts-software.org Licence «Creative Common» Les binaires (un fichier jar exécutable) Une documentation - Aide à la prise en main - User Guide, Scheduler Designer Guide De nombreux ordonnanceurs (source Java) Une «mailing list» Un service de «bug reporting» 14
La version V4 disponible courant 2013 d autres ordonnanceurs (partitionnés, semi-partitionnés, DP-Fair ) de nouveaux graphismes 15
l exploration d architectures Résultats STORM Fichiers des configurations à simuler STORM_V4 Résultats utilisateur Générateur de configurations Traitement des résultats Support pour le projet ANR RESPECTED (IRCCyN, LAAS, LEAT, See4sys, 2011-2014) Real-Time Executive Support with Scheduling Policies for Thermally-Constrained Multicore Embedded Systems http://anr-respected.laas.fr 16
L exploration d architectures : exemples de données capturées par le noyau (configurable) pour une tâche : - nombre d activations, nombre de dépassements d échéance - nombre de migrations, nombre de préemptions + données statistiques : temps de réponse moyen, min, max, écart-type historique pour un processeur : - puissance / énergie consommée - temps creux pour une configuration : - ordonnançabilité de la configuration - énergie totale consommée et distribution - répartition de l activité sur les processeurs et une interface de configuration de l exploration. 17
Merci de votre attention! 18