run-experiment 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. #!/bin/bash
  2. # Get the IP addresses
  3. p0addr=$(docker inspect --format='{{ .NetworkSettings.IPAddress }}' prac_p0)
  4. p1addr=$(docker inspect --format='{{ .NetworkSettings.IPAddress }}' prac_p1)
  5. # Gather options and arguments
  6. opts=""
  7. while getopts paot:ex arg; do
  8. opts+=" -${arg} ${OPTARG}"
  9. done
  10. shift $((OPTIND-1))
  11. echo ===== Running prac $opts -- $*
  12. date "+===== Start %s %F %T"
  13. # Run, saving the output
  14. savefile0=$$.p0.out
  15. savefile1=$$.p1.out
  16. savefile2=$$.p2.out
  17. docker exec -w /root/prac prac_p0 bash -c "$PRAC_NUMA_P0 stdbuf -o 0 ./prac $opts 0 $* > $savefile0" &
  18. docker exec -w /root/prac prac_p1 bash -c "$PRAC_NUMA_P1 stdbuf -o 0 ./prac $opts 1 $p0addr $* > $savefile1" &
  19. docker exec -w /root/prac prac_p2 bash -c "$PRAC_NUMA_P2 stdbuf -o 0 ./prac $opts 2 $p0addr $p1addr $* > $savefile2" &
  20. wait
  21. echo ===== P0 output
  22. docker exec -w /root/prac prac_p0 cat $savefile0
  23. docker exec -w /root/prac prac_p0 rm -f $savefile0
  24. echo ===== P1 output
  25. docker exec -w /root/prac prac_p1 cat $savefile1
  26. docker exec -w /root/prac prac_p1 rm -f $savefile1
  27. echo ===== P2 output
  28. docker exec -w /root/prac prac_p2 cat $savefile2
  29. docker exec -w /root/prac prac_p2 rm -f $savefile2
  30. date "+===== End %s %F %T"