- Ryan Showalter
- Jack Twomey
- Bradley Fellstrom
- Zachary Tucker
- Number: 1
- Description: Handles worker registration and accepts jobs from clients. Distributes jobs amongst workers and sends results to the client.
- Number: 1+
- Description: Registers with a supervisor and accepts jobs.
- Number: 1
- Description: Submits jobs to a supervisor and waits for output.
- cd to cmd
- If needed run "go clean" & "go build" in each subdir of cmd
- ./supervisor {supervisor_port}
- ./worker {hostname}:{supervisor_port} {worker_port}
- ./client {optional flags} {hostname}:{supervisor_port} {path to file name}
- {optional flags}: - -args: Command line args for file, for example "-la" when using ls - -range: A range of numbers to distribute work, for example: 1-10 - -runs: Number of times to run the file
- ./simple_test.sh {optional flags}
- -hn {hostname}: specify hostname (Default = 'http://127.0.0.1')
- -sp {supervisor port}: specify the supervisor port (Default = 5001)
- -wc {workers}: specify number of workers (Default = 1)
- -p {panes}: specify number of panes per window (Default = 4)
- -i: only use this when tmux is configured to start numbering windows at 1, instead of default 0. To find if 1 is configured, look for "set-option -g base-index 1" in local tmux.conf file.
- Same as manual use
For now, cleanup is done by using CTRL-C on the workers and the supervisor, then exiting all windows. For the script, you can do CTRL-B + D to detach from the current window. This will fully exit all running code.
A good way to test our program and get an idea of how the work is distributed is to use this script:
#!/usr/bin/env bash
echo $1
The optional arg is a range split amongst workers. For 1-10, the supervisor will create 10 jobs and split it amongst the workers. The output should be the numbers 1-10 printed out in no particular order.
- .java
- .class
- .sh
- .py
- portable executables (with env included in file)
- system programs (ls, hostname, etc.)