https://github.com/pzierahn/omnetpp_offload
A framework to offload OMNeT++ simulations to an edge computing peer-to-peer network using Go, gRPC, and UDP-Holepunching techniques
https://github.com/pzierahn/omnetpp_offload
nat-traversal omnet omnet-simulation omnetpp p2p p2p-network peer-to-peer
Last synced: 5 months ago
JSON representation
A framework to offload OMNeT++ simulations to an edge computing peer-to-peer network using Go, gRPC, and UDP-Holepunching techniques
- Host: GitHub
- URL: https://github.com/pzierahn/omnetpp_offload
- Owner: pzierahn
- Created: 2021-04-19T15:46:58.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2024-02-25T10:40:21.000Z (over 2 years ago)
- Last Synced: 2024-06-20T11:55:54.720Z (almost 2 years ago)
- Topics: nat-traversal, omnet, omnet-simulation, omnetpp, p2p, p2p-network, peer-to-peer
- Language: C++
- Homepage:
- Size: 3.47 MB
- Stars: 6
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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
```shell
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.
```shell
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
```shell
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
```shell
go install cmd/broker/opp_offload_broker.go
nohup opp_offload_broker > opp_offload_broker.log 2>&1 &
```
## Developer Notes
Install protobuf dependencies.
```shell
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
```