Update architecture.en.md

This commit is contained in:
Jean Sirmai 2021-04-02 15:09:19 +00:00
parent 9d1507e21a
commit 0070bf875b
1 changed files with 64 additions and 0 deletions

64
architecture.en.md Normal file
View File

@ -0,0 +1,64 @@
# Gem-graph Architecture
- The [server](https://gitlab.os-k.eu/gem-graph-team/gem-graph-server) is the part whose execution is punctuated by the model calculation. It includes:
- the cli interface (command line interface) which manages the server on the machine where it is executed, or remotely via the client (provide translations, vocabulary management)
- the [scheduler](server/scheduler.md) which coordinates the calculation of the model by initiating and terminating the supervisor and the calculation threads
- the [supervisor](server/supervisor.md) which:
- maintains the history and performs measurements
- performs an integrity test and returns its result to the scheduler
(to detect chaotic states, infinite loops, unbalanced distributions between computation threads,...)
- the [calculation threads](server/worker_thread.md)
- The [client](https://gitlab.os-k.eu/gem-graph-team/gem-graph-client) is the part whose execution is timed by the user:
- initiation / termination / OS interface
- the associated inputs / outputs / error checks
- the user control of the computation performed by the server
- server interface > user (what is the state of the model ? how does the automaton work ?)
- user > server interface (stop, slow / speed, undo / redo, modify the nb of threads or the algorithm...)
- view management (conformity to a view_type)
- the editions
- states
- transition rules
- rule trees
- interpretation of model state measures and model history
- translations, vocabulary management
- aids/facilities/presentation (texts, views, links) to :
- theoretical background, bibliography
- principles / justifications / limits of the model
- license, rights, authors, practical information
- presentation tools
---
The number of calculations that can be performed in parallel depends on
- the ratio between the size of the local space and the global space
- the average running time of the rules
(if we neglect the initiation and termination operations of the calculation threads and the
and the communication operations of the main loop with its environment)
Note: the command line interface must also intercept user requests and delegate them to dedicated threads or processes