Juzzle

Juzzle

Juzzle est une plateforme de développement open source de mise au point et d'exploitation de simulateurs, utilisée depuis de nombreuses années dans les domaines de la simulation scientifique par la communauté industrielle française.

Cet environnement se positionne d'une part comme outil d'interopérabilité, permettant de faire cohabiter des simulateurs de technologies hétérogènes (Matlab, C, scilab, Java, SystemC, etc.), mais aussi en tant qu'environnement de développement collaboratif, et enfin en tant que plateforme d'exploitation orienté grid computing, grâce à sa fonctionnalité intégrée de distribution de calculs sur un réseau hétérogène.

Sommaire

Fonctionnalités

(liste non exhaustive:

  • Définition dapplicatifs de type Federation, offrant la possibilité de définir graphiquement une chaîne de traitement hiérarchisée et hétérogène (chaque module pouvant être développé dans une technologie différente). Plusieurs moteurs dexécutions sont alors disponibles en fonction du domaine dapplication : séquenceur de test pour les bancs dexpérimentation, moteurs de simulation numérique (time driven, data driven, SystemC, etc.).
  • Possibilité dinterfaçage avec des moteurs externes (gratuits ou soumis à licence)
  • Environnement de développement intégré pour des machines Java, C, Fortran, Ada
  • Environnement de développement intégré pour des fédérations Java, C, Fortran, Ada (appel de léditeur syntaxique des codes sources directement depuis léditeur graphique de la fédération, génération de codes dinterfaçage, appel automatique au compilateur et à lédition de lien).
  • Exploitation de toute machine respectant une interface Machine et Node Juzzle,
  • Exécution détudes statistiques réalisées sur toute machine Juzzle,
  • Exécution détudes de cas (variation de paramètres dentrée de la machine par combinaisons déterminées à lavance),
  • Exécution locale, à distance, multi-machine, et différée de toute machine Juzzle,
  • Interfaçage pour le post-processing avec Matlab, scilab, octave, et Excel
  • Possibilité de créer une machine réalisant lenchaînement de plusieurs autres machines Juzzle, avec la définition dun script denchaînement (possibilité dexécuter plusieurs fois une même machine, de faire des tests sur les résultats obtenus, etc.)
  • Interfaçage avec dautres plateformes de développement comme SystemC, ptolemy, SPW, etc.
  • Nombreuses fonctions dimportation/exportations (XML en particulier).

Développement de simulateurs

Parmi les quelques notions fondamentales, la notion demachineest la plus importante. Cest elle qui regroupe tous les simulateurs développés puis exploités.

Un simulateur (une machine) est une entité permettant à lutilisateur de définir :

  • Un ensemble de paramètres
  • Un ensemble de résultats
  • Le traitement permettant dobtenir les résultats en fonction des paramètres

La déclaration des paramètres et résultats est réalisée de manière universelle quel que soit le type de simulateur mis en œuvre. Par contre, la définition du traitement peut être réalisée de différentes manières. Le paragraphe suivant présente les différents moyens mis à disposition de lutilisateur pour développer un nouveau simulateur (un nouvelle machine).

Simulateur basé sur script

Le traitement de ce type de simulateur est décrit par lutilisateur dans un script. JUZZLE permet dutiliser différents langages :

  • C
  • Java
  • Fortran77
  • Ada95

Pour chacun de ces langages, il prend en charge automatiquement la conversion des paramètres spécifiés via les IHM JUZZLE en données compréhensibles par le langage utilisé. Lors de lexécution du simulateur, il génère lexécutable associé au script, en utilisant le compilateur disponible, et lance lexécutable natif obtenu. Après la fin de lexécution, il prend en charge automatiquement la transformation des données produites par le script en données XML compréhensibles par Juzzle.

Ainsi, ce type de simulateur permet de réutiliser des codes algorithmiques existant sans effectuer dopération de portage.

Intégration dun simulateur existant

Il est possible de définir un simulateur en réutilisant des programmes natifs (‘.exe’, ‘dll’…) sans avoir à connaître le code originel du programme.

Comme pour tout simulateur, lutilisateur déclare les paramètres et résultats correspondant aux codes interfacés. Il spécifie alors la méthode dexploitation des programmes natifs sous forme de script de commande système, comme sil utilisait une fenêtre console courante.

Une fois ces opérations effectuées, les opérations dinitialisation et de suivi de lexécution s'effectuent automatiquement.

Ce type de simulateur est essentiel dans un contexte de réutilisation de lexistant. Il permet de réutiliser sans aucune modification les anciens programmes bâtis sur des technologies obsolètes ou dont le code ne peut plus être modifié.

Utilisation dun progiciel externe

Si la déclaration des paramètres et résultats des simulateurs est toujours réalisée sous JUZZLE, lexécution de la simulation peut être déléguée à un outil tiers :

  • Matlab
  • Microsoft Excel
  • Scilab
  • Octave

Cette liste correspond aux produits interfacés dans le cadre de la version freeware de Juzzle, mais Silicom a réalisé de très nombreuses interfaces supplémentaires dans le cadre de projets spécifiques à ses clients (exemple : interfaçage avec un outil de cartographie, avec un outil doptimisation de graphes, avec un outil de calcul dantennes, etc.).

Tout comme pour les autres types de simulateurs, la plateforme prend en charge la migration des paramètres depuis JUZZLE vers le logiciel utilisé et le rapatriement des résultats depuis loutil vers JUZZLE. Dans tous les cas, Lutilisateur définit le traitement à mettre en œuvre en utilisant le formalisme de loutil exploité.

Par exemple, pour utiliser Matlab, lutilisateur définit les scripts Matlab permettant de calculer les résultats en fonction des paramètres. Pour utiliser Excel, lutilisateur définira une feuille Excel il spécifiera les cellules dentrée et les cellules de sortie.

Mise en œuvre par agrégation de modèles unitaires

Contrairement aux simulateurs présentés dans les paragraphes précédents, lentitéFédérationpermet de connecter et paramétrer plusieurs modèles, chacun représentant une partie du système à simuler. Les liens entre les différentes entités représentent les canaux déchanges de données dynamiques entre modèles. Ainsi, la modélisation de chaque entité élémentaire (nœud) est plus simple à la fois en termes de spécification mais aussi de développement et de test.

De nombreux outils commerciaux utilisent déjà cette méthodologie pour la construction de simulateur. La prise en charge de lexécution dune fédération JUZZLE repose sur lutilisation dune entité appeléemoteur de simulation’. il existe plusieurs types de moteurs :

  • Moteur par flux de données
  • Moteur événementiel
  • Moteur SystemC

Cest ce moteur de simulation qui coordonne les traitements, parallèles ou non, des différents modèles élémentaires.

Cette approche, très utilisée, répond à de nombreuses contraintes :

  • Parallélisation des développements. Les modèles élémentaires sont développés et validés unitairement avant dêtre intégrés.
  • Réutilisation de fonctions élémentaires. Par exemple, une fonction de génération de bruit intégrée sous forme de modèle élémentaire peut être réutilisée dans différents autres contextes.
  • Simplicité de la structure en vue dune maintenance aisée.

Services génériques

En plus des outils de simulation basée sur diverses technologies (Matlab, C, Java, Fortran, Excel…), latelier offre un ensemble de services pouvant être utilisés quelle que soit la technologie de simulation employée. Ces services transverses sont appelés : services génériques.

Chaînage de simulation

Le chaînage de simulation est un service permettant à lutilisateur de définir une simulation comme un enchaînement, de simulateurs. Chacun des simulateurs est basé sur une technologie quelconque. Les exécutions sont réalisées de façon séquentielle.

Par ailleurs, des paramètres globaux peuvent être définis aux niveaux supérieurs et être utilisés par chacun des simulateurs. De même, JUZZLE permet de définir des dépendances entre les résultats dun premier simulateur et les paramètres dun deuxième.

Il est ainsi possible pour une simulation complexe, dautomatiser la mise en œuvre de simulation de calibrage préliminaire. Lutilisateur na alors plus besoin dintervenir ce qui, dune part facilite la mise en œuvre de simulation et dautre part minimise le risque derreur de manipulation.

Définition détudes paramétriques/statistiques

Un fois mis au point, tout simulateur est voué à être exploité. Parmi les méthodes dexploitation les plus connues, les études paramétriques et statistiques sont incontournables.

Ces deux services sont proposés de manières générique, cest-à-dire indépendamment des technologies utilisées par le simulateur exploité.

La mise en œuvre dune étude seffectue en deux étapes :

  • Définition de la machine (du simulateur) exploité. Quelle que soit la technologie utilisée, ce simulateur est vu comme un modèle quelconque avec des paramètres, des résultats et une méthode de calcul.

Déclaration des jeux de paramètres. Dans le cas dune étude paramétrique, il sagit de définir exhaustivement les cas de simulation à mettre en œuvre. Dans le cas dune étude statistique, les paramètres sont définis à laide de lois aléatoires (gaussienne, uniforme…)

  • Dans tous les cas, lexécution de létude se traduit par la mise en œuvre deNcas de simulation, chaque cas étant attaché à un jeu de paramètre particulier. Lautomatisation de lenchaînement des cas et la synthèse des résultats de simulations sont automatiquement pris en charge.

Distribution de calculs

Différents services proposés mène à lexécution de plusieurs cas de calcul. Lorsque ces cas sont indépendants, il est possible dexternaliser lexécution des calculs.

Lexécution déportée permet dutiliser un poste de travail distant pour lexécution du calcul dans sa globalité. Ainsi le poste de lutilisateur reste disponible pour soit dautres simulations, soit dautres activitésLexécution distribuée permet de répartir lexécution dencas de calculs indépendants sur plusieurs postes de travail distants, la plate-forme se chargeant de coordonner les échanges de données et la synthèse des résultats.

Dans tous les cas, ces services ont pour but daugmenter la capacité de calcul effective pour un parc informatique donné. En particulier, la mise en œuvre de campagnes de calculs le week-end permet de mettre en œuvre des simulations impossible à mettre en œuvre en semaine.

Lien externe


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Juzzle de Wikipédia en français (auteurs)

Игры ⚽ Поможем решить контрольную работу

Share the article and excerpts

Direct link
https://fr-academic.com/dic.nsf/frwiki/901157 Do a right-click on the link above
and select “Copy Link”