auto-fl-fit / pycaret-fl / run.sh
run.sh
Raw
#!/bin/bash
set -e
cd "$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"/

# Set values from arguments with default values
#
NUM_ROUNDS="${1:-10}"
NUM_CLIENT="${2:-3}"
MODEL_NAME="${3:-"rf"}"
PROBLEM_TYPE="${4:-"classification"}"
TARGET_COL="${5:-"-1"}"
EXP_ID="${6:-"0"}"
DATA_PATH="${7:-"../data/train_dataset.csv"}"
MODEL_PATH="${8:-"../models"}"

echo "Starting server"
python server.py --num-clients "${NUM_CLIENT}" --num-rounds "${NUM_ROUNDS}" --model-name "${MODEL_NAME}" --problem-type "${PROBLEM_TYPE}" --data-path "${DATA_PATH}" --target "${TARGET_COL}" --exp-id "${EXP_ID}" --model-path "${MODEL_PATH}" &
sleep 3 # Sleep for 3s to give the server enough time to start

for i in $(seq 0 $((NUM_CLIENT - 2))); do
    echo "Starting client $i"
    python client.py --node-id "${i}" --num-clients "${NUM_CLIENT}" --problem-type "${PROBLEM_TYPE}" --data-path "${DATA_PATH}" --target "${TARGET_COL}" &
done

# This will allow you to use CTRL+C to stop all background processes
trap 'trap - SIGTERM && kill -- -$$' SIGINT SIGTERM
# Wait for all background processes to complete
wait