| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- #!/bin/bash
- #
- if [ "${1}" == "dlrho" ] && [ "${#}" != "2" ] ; then
- echo "Usage (dlrho): ${0} dlrho mem_per_computer"
- exit
- elif [ "${1}" == "controller" ] && [ "${#}" != "4" ] ; then
- echo "Usage (controller): ${0} controller mem_per_computer num_dpnodes num_workers"
- exit
- elif [ "${#}" != "2" ] && [ "${#}" != "4" ] ; then
- echo "Usage: ${0} {dlrho, controller} mem_per_computer [num_dpnodes] [num_workers]"
- exit
- fi
- #
- DATA_PATH="/home/sengler/data"
- PORT=42000
- PROBLEMS=(44 46 48 50 52 54 56 58 60 62 64 66 68 70 74 78 82 84 72 76 80 86 88)
- #
- MEM_PER_COMPUTER=${2} # ex: 200
- #
- NUM_DPNODES=${3} # ex: 1
- NUM_WORKERS=${4} # ex: 8
- #
- MEM_PER_DPNODE=$((MEM_PER_COMPUTER/NUM_DPNODES))
- #
- # Make sure to run 'gen_all_N.sh' first to generate the problems.
- #
- for i in ${PROBLEMS[@]} ; do
- echo "Starting ${i}..."
- #
- if [ ! -f "${DATA_PATH}/N_${i}" ]; then
- echo "File ${DATA_PATH}/N_${i} was not found. Skipping..."
- continue
- fi
- #
- if [ "${1}" == "dlrho" ] ; then
- ./dlrho $MEM_PER_COMPUTER < "${DATA_PATH}/N_${i}" > "${DATA_PATH}/dlrho_${i}" 2>&1
- elif [ "${1}" == "controller" ] ; then
- ./controller -p $PORT -n $NUM_DPNODES -m $MEM_PER_DPNODE "${DATA_PATH}/N_${i}" 1 > "${DATA_PATH}/controller_${i}" 2>&1 &
- CONTROLLER_PID=$!
- trap "kill $CONTROLLER_PID ; exit" SIGINT
- #
- sleep 5
- # let the controller have time to start listening
- #
- for (( j=0; j<${NUM_DPNODES}; j++)); do
- ./dpnode 127.0.1.1 $PORT > "${DATA_PATH}/dpnode_${i}_${j}" 2>&1 &
- done
- #
- for (( j=0; j<${NUM_WORKERS}; j++)); do
- ./worker 127.0.1.1 $PORT $j > "${DATA_PATH}/worker_${i}_${j}" 2>&1 &
- done
- #
- wait $CONTROLLER_PID
- else
- echo "Option ${1} not recognized."
- fi
- done
|