A dynamic microsimulation framework
Project description
neworder
neworder is a microsimulation framework inspired by openm++, MODGEN and, to a lesser extent, the python-based LIAM2 tool, and can be thought of powerful best-of-both-worlds hybrid of MODGEN and LIAM2. Modellers can define their models in a a simple. well-known language, yet benefit from the efficiency of compiled code and parallel execution:
- python module: easy to install and integrate, available on all common platforms
- low barriers to entry: users need only write standard python code, little or no new coding skills required.
- flexibility: models are specified in python code, so can be arbitrarily complex
- data agnosticism: the framework does not impose any constraints on data sources, or outputs.
- reusability: leverage python modules like numpy, pandas and matplotlib.
- speed: the module is written in optimised C++ and provides fast Monte-Carlo, statistical and data manipulation functions.
- compatibility: operate directly on numpy arrays and pandas DataFrames
- scalability: can be run on a desktop or a HPC cluster, supporting parallel execution using MPI.
Documentation
The main documentation is hosted at readthedocs.io
System Requirements
neworder runs in python 3.6 or above on 64-bit linux, OSX or Windows platforms. In order to take advantage of the parallel execution functionality, the following are also required:
- an MPI implementation, such as mpich, open-mpi or ms-mpi
- the mpi4py package that provides python MPI bindings
but the module will work perfectly well in serial mode without these.
Installation
PyPI
Pre-release now available:
pip install neworder
Conda
TODO
Tutorial
To get started first see the detailed documentation here. Then, check out "Hello World" and other examples.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.