A framework to offload OMNeT++ simulations to an edge computing peer-to-peer network using GO, Docker, gRPC, and UDP-Holepunching techniques.
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
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)
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)
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 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)
- 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 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 .
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
go install cmd/broker/opp_offload_broker.go
nohup opp_offload_broker > opp_offload_broker.log 2>&1 &
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