run_timing_experiment.sh 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #!/bin/bash
  2. #
  3. if [ "${1}" == "dlrho" ] && [ "${#}" != "2" ] ; then
  4. echo "Usage (dlrho): ${0} dlrho mem_per_computer"
  5. exit
  6. elif [ "${1}" == "controller" ] && [ "${#}" != "4" ] ; then
  7. echo "Usage (controller): ${0} controller mem_per_computer num_dpnodes num_workers"
  8. exit
  9. elif [ "${#}" != "2" ] && [ "${#}" != "4" ] ; then
  10. echo "Usage: ${0} {dlrho, controller} mem_per_computer [num_dpnodes] [num_workers]"
  11. exit
  12. fi
  13. #
  14. DATA_PATH="/home/sengler/data"
  15. PORT=42000
  16. PROBLEMS=(44 46 48 50 52 54 56 58 60 62 64 66 68 70 74 78 82 84 72 76 80 86 88)
  17. #
  18. MEM_PER_COMPUTER=${2} # ex: 200
  19. #
  20. NUM_DPNODES=${3} # ex: 1
  21. NUM_WORKERS=${4} # ex: 8
  22. #
  23. MEM_PER_DPNODE=$((MEM_PER_COMPUTER/NUM_DPNODES))
  24. #
  25. # Make sure to run 'gen_all_N.sh' first to generate the problems.
  26. #
  27. for i in ${PROBLEMS[@]} ; do
  28. echo "Starting ${i}..."
  29. #
  30. if [ ! -f "${DATA_PATH}/N_${i}" ]; then
  31. echo "File ${DATA_PATH}/N_${i} was not found. Skipping..."
  32. continue
  33. fi
  34. #
  35. if [ "${1}" == "dlrho" ] ; then
  36. ./dlrho $MEM_PER_COMPUTER < "${DATA_PATH}/N_${i}" > "${DATA_PATH}/dlrho_${i}" 2>&1
  37. elif [ "${1}" == "controller" ] ; then
  38. ./controller -p $PORT -n $NUM_DPNODES -m $MEM_PER_DPNODE "${DATA_PATH}/N_${i}" 1 > "${DATA_PATH}/controller_${i}" 2>&1 &
  39. CONTROLLER_PID=$!
  40. trap "kill $CONTROLLER_PID ; exit" SIGINT
  41. #
  42. sleep 5
  43. # let the controller have time to start listening
  44. #
  45. for (( j=0; j<${NUM_DPNODES}; j++)); do
  46. ./dpnode 127.0.1.1 $PORT > "${DATA_PATH}/dpnode_${i}_${j}" 2>&1 &
  47. done
  48. #
  49. for (( j=0; j<${NUM_WORKERS}; j++)); do
  50. ./worker 127.0.1.1 $PORT $j > "${DATA_PATH}/worker_${i}_${j}" 2>&1 &
  51. done
  52. #
  53. wait $CONTROLLER_PID
  54. else
  55. echo "Option ${1} not recognized."
  56. fi
  57. done