Skip to content

🍀 P2P Distributed Evolutionary Algorithms on Ephemeral Infrastructure for Neural Network Optimization.

License

Notifications You must be signed in to change notification settings

salvacorts/Gocey

Repository files navigation

Build Status

Bachelor Thesis: Gocey. Distributed Evolutionary Algorithms on Ephemeral Infrastructure

Author: Salvador Corts Sánchez

Supervisor: Juan Julián Merelo Guervós

Thesis Document: https://github.com/salvacorts/TFG-Thesis


Requirements

Go dependecies

go get github.com/salvacorts/TFG-Parasitic-Metaheuristics
cd $GOPATH/src/github.com/salvacorts/TFG-Parasitic-Metaheuristics/mlp-ea-decentralized/native
go get ./...

Run

All the following paths are relative to $GOPATH/src/github.com/salvacorts/TFG-Parasitic-Metaheuristics/mlp-ea-decentralized directory.

Island

cd native/server
go run -grpcPort <port> -clusterPort <port> -metricsPort <port> -clusterBoostrap <boostrap node addr:port> -datasetPath <path to dataset> -webPath <path to web> -webPort <port>
# e.g. go run server.go -grpcPort 2006 -clusterPort 4003 -metricsPort 5003 -clusterBoostrap 127.0.0.1:4001 -datasetPath ../../../datasets/glass.csv -webpath ../../web/src/ -webPort 8080

Evaluator

Native
cd native/client
go run client.go -server <island addr:port>
# e.g. go run client.go -server 127.0.0.1:2006
Browser (WebAssembly)

Open a new tab in yout browser and enter an island IP and its webPort port. E.g. if an island is running at 127.0.0.1, and its webPort parameter is 8080, go to 127.0.0.1:8080.

Modifying Go Browser Client Source: You will need to rebuild the webassembly file

cd web/src/go
GOOS=js GOARCH=wasm go build -o wasm/main.wasm