Git Product home page Git Product logo

pzierahn / omnetpp_offload Goto Github PK

View Code? Open in Web Editor NEW
5.0 2.0 1.0 3.56 MB

A framework to offload OMNeT++ simulations to an edge computing peer-to-peer network using Go, gRPC, and UDP-Holepunching techniques

Go 34.13% Makefile 1.08% Python 8.86% Perl 12.09% Dockerfile 0.39% Jupyter Notebook 0.07% Shell 0.17% C++ 43.19%
omnetpp omnet omnet-simulation peer-to-peer nat-traversal p2p-network p2p

omnetpp_offload's Introduction

OMNeT++ simulation distributor

A framework to offload OMNeT++ simulations to an edge computing peer-to-peer network using GO, Docker, gRPC, and UDP-Holepunching techniques.

Command line tools and usage

Install

go install cmd/worker/opp_offload_worker.go
go install cmd/run/opp_offload_run.go
go install cmd/config/opp_offload_config.go
go install cmd/broker/opp_offload_broker.go

opp_offload_config

Helps you to create a global and local omnetpp_offload configuration files

Usage of opp_offload_config:
  -broker string
        set broker address
  -jobs int
        set how many jobs should be started (default 8)
  -name string
        set worker name (default "Patricks-MBP")
  -paths
        print paths
  -port int
        set broker port (default 8888)
  -save
        persist config globally
  -stargate int
        set stargate port (default 8889)

opp_offload_broker

The broker connects providers and workers

Usage of opp_offload_broker:
  -broker string
        set broker address
  -port int
        set broker port (default 8888)
  -stargate int
        set stargate port (default 8889)

opp_offload_worker

The worker starts an OMNeT++ work provider for you

Usage of opp_offload_worker:
  -broker string
        set broker address
  -clean
        clean all cache files
  -jobs int
        set how many jobs should be started (default 8)
  -name string
        set worker name (default "Patricks-MBP")
  -port int
        set broker port (default 8888)
  -stargate int
        set stargate port (default 8889)

opp_offload_run

opp_offload_run will offload simulations for you

Usage of opp_offload_run:
  -broker string
        set broker address
  -config string
        set simulation config JSON
  -path string
        set simulation path (default ".")
  -port int
        set broker port (default 8888)
  -stargate int
        set stargate port (default 8889)
  -timeout duration
        set timeout for execution (default 3h0m0s)

Install and run with Docker

  • Get Docker image docker pull pzierahn/omnetpp_offload
  • Start worker docker run --rm --security-opt=seccomp:unconfined pzierahn/omnetpp_offload opp_offload_worker -broker 85.214.35.83 -name `hostname -s`

Build and upload docker images

Build cross-platform images for amd64 and arm64.

docker buildx build \
    --push \
    --platform linux/arm64,linux/amd64 \
    --tag pzierahn/omnetpp_offload:latest .

Build alternative: docker build -t pzierahn/omnetpp_offload .

Run example simulations

go run cmd/run/opp_offload_run.go -path ~/github/TaskletSimulator
go run cmd/run/opp_offload_run.go -path evaluation/tictoc
SCENARIO=test-scenario TRAIL=1 go run cmd/run/opp_offload_run.go -path evaluation/tictoc

Install and run broker

go install cmd/broker/opp_offload_broker.go
nohup opp_offload_broker > opp_offload_broker.log 2>&1 &

Developer Notes

Install protobuf dependencies.

go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest

go get -u google.golang.org/grpc
GOOS=linux GOARCH=amd64 go build cmd/consumer/opp_offload_run.go

omnetpp_offload's People

Contributors

pzierahn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

dergenc

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.