1 # SALSA - Scalable Adaptive Large Structures Analysis
3 The goal of the project is to develop framework, that will distribute large job between workers and process it in parallel.
4 Framework should be able to adapt to different conditions in order to analyse data as effectively as possible.
6 # Run via docker/podman
8 > Note: One can subsitute command `podman` by `docker`
10 ## Simple cluster using UDP discovery
15 podman run -it --rm --net=host -e SALSA_PUB_URL=
">tcp://localhost:5555" registry.openbrain.sk/salsa/salsa
18 ### Start monitoring (optional)
21 podman run -it --rm --net=host --entrypoint salsa-mon registry.openbrain.sk/salsa/salsa -u
"tcp://*:5555"
27 podman run -it --rm --net=host --entrypoint salsa-feeder registry.openbrain.sk/salsa/salsa -u tcp:
30 ## Simple cluster using GOSSIP discovery
35 podman run -it --rm --net=host registry.openbrain.sk/salsa/salsa -c /etc/salsa/gossip.yaml -n disovery
41 podman run -it --rm --net=host registry.openbrain.sk/salsa/salsa -c /etc/salsa/gossip.yaml -n rdr
47 podman run -it --rm --net=host registry.openbrain.sk/salsa/salsa -c /etc/salsa/gossip.yaml -n wk
53 podman run -it --rm --net=host --entrypoint salsa-feeder registry.openbrain.sk/salsa/salsa -u tcp:
56 ### Redirector and worker
59 podman run -it --rm --net=host registry.openbrain.sk/salsa/salsa -c /etc/salsa/gossip.yaml -n rdr+wk
62 ### Only redirector with debug message and publisher set
65 podman run -it --rm --net=host -e SALSA_PUB_URL=
">tcp://localhost:5555" registry.openbrain.sk/salsa/salsa -c /etc/salsa/gossip.yaml -n rdr --debug
68 ## Extra option as cmd parameter
71 podman run -it --rm --net=host registry.openbrain.sk/salsa/salsa -c /etc/salsa/gossip.yaml -n rdr{ip:192.168.1.20,port:35000}
74 # Installation via yum/dnf
76 Install `OpenBrain` repository
79 yum install yum-plugin-copr -y
80 yum copr enable obl/stable -y
91 ## Install all dependencies
94 yum install redhat-lsb cmake gcc-c++ zyre-devel spdlog-devel protobuf-devel jsoncpp-devel yaml-cpp-devel doxygen ncurses-devel ndm-devel help2man
104 ### scripts/make.sh options
106 | Option | Description |
107 | :-------- | :------------------------------------------------------------------------------------------- |
108 | `install` | Install after compilation. |
109 | `clean` | Destroy build folder before building. |
110 | `clang` | Use Clang compiler instead of system default. |
111 | `strict` | Enable all warnings (requires `clang`). Not `-Werror`! |
112 | `ninja` | Use Ninja build system instead of system default. |
113 | `doc` | Build documentation (via Doxygen) |
114 | `release` | Build as release. (This is used in pipeline.) Infers `doc` and `strict`. Warnings as errors. |
116 `strict` option was created for development purposes, so you can compile with all warnings, while not failing build (no `-Werror`).
117 If you are contributing, make sure that you pass compilation with at least `release` option. Even better if you pass with `release clang` (thanks to Clang's `-Weverything`).
119 ## Example running master-worker arch from developemnt
122 $SALSA_ROOT/build/src/salsa -c $SALSA_ROOT/etc/config.json -n rdr,wk --debug # Runs redirector and 1 worker. Beware! Every worker gets all cores of machine!
123 $SALSA_ROOT/build/src/salsa-feeder -u <submitter-url> -f <path/to/list> # Command list is one command per line. (<submitter-url> : tcp:
124 $SALSA_ROOT/build/src/salsa-feeder -u <submitter-url> -t "cmd arg1 arg2:N" # Using template switch executable is "cmd arg1 arg2" and it is done "N" times
127 ## Publishing info about jobs
132 export SALSA_PUB_URL=">tcp:
135 ## Kill job with specific JOB ID
139 Next command will work for `JOB_ID= E25633E7362F43FF8DFE32E3C525E223`