2021-03-28 17:40:17 +02:00
# Gem-graph Architecture
2021-03-28 21:04:11 +02:00
- Le [serveur ](https://gitlab.os-k.eu/gem-graph-team/gem-graph-server ) est la partie dont l'exécution est rythmée par le calcul du modèle. Il comporte:
2021-03-28 17:40:17 +02:00
2021-03-28 21:17:00 +02:00
- l'interface cli (command line interface) qui gère le serveur sur la machine où il est exécuté, ou à distance via le client (prévoir les traductions, la gestion du vocabulaire)
2021-03-28 21:04:11 +02:00
2021-03-28 22:31:29 +02:00
- le [scheduler ](server/scheduler.md ) qui coordonne le calcul du modèle en initiant et terminant le superviseur et les threads de calcul
2021-03-28 21:00:36 +02:00
2021-03-28 22:31:29 +02:00
- le [superviseur ](server/supervisor.md ) qui:
2021-03-28 21:00:36 +02:00
2021-03-28 21:13:40 +02:00
- maintient l'historique et effectue des mesures
2021-03-28 21:00:36 +02:00
2021-03-28 21:07:30 +02:00
- effectue un test d'intégrité et renvoie son résultat au scheduler
(pour détecter des états chaotiques, boucles infinies, répartitions déséquilibrées entre threads de calcul,...)
2021-03-28 21:09:39 +02:00
2021-03-28 22:31:29 +02:00
- les [threads de calcul ](server/worker_thread.md )
2021-03-28 21:00:36 +02:00
2021-03-28 21:04:11 +02:00
- Le [client ](https://gitlab.os-k.eu/gem-graph-team/gem-graph-client ) est la partie dont l'exécution est rythmée par l'utilisateur:
2021-03-28 17:40:17 +02:00
- les entrées / sorties / contrôles d'erreurs associés
2021-03-28 21:19:51 +02:00
- le contrôle par l'utilisateur du déroulement du calcul effectué par le serveur
2021-03-28 17:40:17 +02:00
2021-06-08 13:45:16 +02:00
- soumission / initiation / terminaison du calcul au serveur
2021-03-28 21:00:36 +02:00
- interface serveur > user (quel est l'état du modèle ? comment fonctionne l'automate ?)
2021-03-28 17:40:17 +02:00
2021-03-28 21:00:36 +02:00
- user > interface serveur (stop, slow / speed, undo / redo, modify the nb of threads or the algorithm...)
2021-03-28 17:40:17 +02:00
- la gestion des vues (conformité à une view_type)
- les éditions
- des états
- des règles de transition
- des arbres de règles
2021-03-28 21:00:36 +02:00
- interprétation des mesures des états du modèle et de son histoire
2021-03-28 17:40:17 +02:00
- les traductions, la gestion du vocabulaire
2021-03-28 21:00:36 +02:00
- des aides/facilités/présentation (textes, vues, liens) vers :
2021-03-28 17:40:17 +02:00
- le contexte théorique, la bibliographie
- principes / justifications / limites du modèle
- licence, droits, auteurs, informations pratiques
- outils de présentation
---
2021-03-28 22:31:29 +02:00
Le nombre de calculs pouvant être effectués en parallèle dépend donc:
2021-03-28 17:40:17 +02:00
- du rapport entre l'étendue de l'espace local et celui de l'espace global
- du temps de parcours moyen des règles
(si l'on néglige les opérations d'initiation et de terminaison des threads de calcul
et les opérations de communication de la boucle principale avec son environnement)
2021-03-28 22:31:29 +02:00
Note : l'interface ligne de commande doit également intercepter les demandes des utilisateurs et les déléguer a des threads ou processus dédiés