65 lines
2.3 KiB
Markdown
65 lines
2.3 KiB
Markdown
|
# 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
|