Skip to content
/ nexussim Public

NexusSim is a cutting-edge simulator designed to assess the performance of applications deployed across the cloud-fog-edge nexus. It empowers researchers and developers to model, analyze, and optimize interactions in distributed systems, uncovering insights into resource usage and application behavior across all layers of the computing continuum.

License

Notifications You must be signed in to change notification settings

TNO/nexussim

Repository files navigation

nexussim

NexusSim is a cutting-edge simulator designed to assess the performance of applications deployed across the cloud-fog-edge nexus. It empowers researchers and developers to model, analyze, and optimize interactions in distributed systems, uncovering insights into resource usage and application behavior across all layers of the computing continuum.

Making Changes & Contributing

External contributors should follow the guidelines in CONTRIBUTING.rst

Requirements

  • Python tested with version 3.10, 3.11, 3.12, 3.13 and 3.14
  • pyDynaa

Installation

After cloning the project, make sure you put the following in place:

  1. Create a python environment within the root of the cloned repository, run:
python -m venv .venv
  1. Install pyDynaa or install from source.

  2. Make your local repository an editable installation of the nexussim package:

python -m pip install --verbose --editable .

Usage examples

The examples folder, contains several examples on how to create and run nexussim models. They are executable python scripts.

Some examples needs extra requirements. For installing all necessary extras, run:

pip install -r ./examples/examples_requirements.txt

Development notes

Influx

The CPU logger has tha ability to write to an influx database. The configuration for the database can be found in influx.ini. To get started first copy 'influx.ini.default' to influx.ini. Alternatively the configuration can be set via environment variables INFLUXDB_V2_URL, INFLUXDB_V2_ORG, INFLUXDB_V2_TOKEN etc. see influxdb-client docs In that case the bucket is defined via the environment variable INFLUXDB_V2_BUCKET.

A simple influx database can be started in docker for example as follows: docker run --name influx2 -p 8086:8086 -e DOCKER_INFLUXDB_INIT_MODE=setup -e DOCKER_INFLUXDB_INIT_USERNAME=admin -e DOCKER_INFLUXDB_INIT_PASSWORD=admin123 -e DOCKER_INFLUXDB_INIT_ORG=TNO -e DOCKER_INFLUXDB_INIT_BUCKET=nexussim -e DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=my-super-secret-token -d influxdb:2.7

The example above workes with the default influx.ini when run on the local machine, Ortherwise url, port and token need to be changed in both influx.ini and docker run command

Ci pipline

There is a ci pipline. It is worth noting that this runs in main development repository in TNO's gitlab and not in the public github mirror. It uses a pydynaa wheel stored in the gitlab package registry.

About

NexusSim is a cutting-edge simulator designed to assess the performance of applications deployed across the cloud-fog-edge nexus. It empowers researchers and developers to model, analyze, and optimize interactions in distributed systems, uncovering insights into resource usage and application behavior across all layers of the computing continuum.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages