66 lines
2.5 KiB
Markdown
66 lines
2.5 KiB
Markdown
# Gem-graph Architecture
|
|
|
|
- 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:
|
|
|
|
- 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)
|
|
|
|
- le [scheduler](server/scheduler.md) qui coordonne le calcul du modèle en initiant et terminant le superviseur et les threads de calcul
|
|
|
|
- le [superviseur](server/supervisor.md) qui:
|
|
|
|
- maintient l'historique et effectue des mesures
|
|
|
|
- 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,...)
|
|
|
|
- les [threads de calcul](server/worker_thread.md)
|
|
|
|
- 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:
|
|
|
|
|
|
- les entrées / sorties / contrôles d'erreurs associés
|
|
|
|
- le contrôle par l'utilisateur du déroulement du calcul effectué par le serveur
|
|
|
|
- soumission / initiation / terminaison du calcul au serveur
|
|
|
|
- interface serveur > user (quel est l'état du modèle ? comment fonctionne l'automate ?)
|
|
|
|
- user > interface serveur (stop, slow / speed, undo / redo, modify the nb of threads or the algorithm...)
|
|
|
|
- la gestion des vues (conformité à une view_type)
|
|
|
|
- les éditions
|
|
|
|
- des états
|
|
|
|
- des règles de transition
|
|
|
|
- des arbres de règles
|
|
|
|
- interprétation des mesures des états du modèle et de son histoire
|
|
|
|
- les traductions, la gestion du vocabulaire
|
|
|
|
- des aides/facilités/présentation (textes, vues, liens) vers :
|
|
|
|
- le contexte théorique, la bibliographie
|
|
|
|
- principes / justifications / limites du modèle
|
|
|
|
- licence, droits, auteurs, informations pratiques
|
|
|
|
- outils de présentation
|
|
|
|
---
|
|
|
|
Le nombre de calculs pouvant être effectués en parallèle dépend donc:
|
|
|
|
- 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)
|
|
|
|
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
|