michie
Distributed high-throughput pythonic framework for multi-agent simulations
Installation
michie
is available on PyPI. To install it
pip install michie
Usage
In michie
each object has its own state and there is one global state
There are three distinct types of operations in michie
:
- GlobalStateMappers
- Can read and write every state
- Can read and wite the global state
- Are executed synchronously from the Master process
- StateMappers
- Can read and write one state
- Can only read the global state
- Are executed asynchronously from the Worker processes
- Transitions
- Can read and write one state
- Cannot read the global state
- Are executed asynchronously from the Worker processes
Distributed Model
michie
executes Transitions
and StateMappers
on remote Workers.
It uses the fastest JSON python serializer orjson to serialize jobs and results.
Before sending the job to the workers it runs the requirements
function to check if all the needed fields are available in the current state and uses the state_map
and global_state_map
(only for StateMappers
) to map the whole state in a smaller mapped_state
to be serialized (reducing the communication overhead to the minimum)
Examples
You can find some examples here
Contributions and license
The code is distributed as Free Software under the GNU/GPLv3 license. It is not only possible, but also encouraged, to copy, adapt, and republish it.
If you have any further questions, please contact me at federico.galatolo@ing.unipi.it or on Telegram @galatolo.