run-experiment.sh 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #!/bin/bash
  2. # Get the IP addresses
  3. p0addr=$(docker inspect --format='{{ .NetworkSettings.IPAddress }}' duoram_p0)
  4. p1addr=$(docker inspect --format='{{ .NetworkSettings.IPAddress }}' duoram_p1)
  5. p2addr=$(docker inspect --format='{{ .NetworkSettings.IPAddress }}' duoram_p2)
  6. # The Duoram mode and size
  7. # mode is read, write, readwrite, or init
  8. phase=online
  9. mode=read
  10. size=20
  11. iters=128
  12. if [ "$1" != "" ]; then
  13. mode="$1"
  14. fi
  15. if [ "$2" != "" ]; then
  16. size="$2"
  17. fi
  18. if [ "$3" != "" ]; then
  19. iters="$3"
  20. fi
  21. if [ "$4" != "" ]; then
  22. port="$4"
  23. fi
  24. items=$((1<<size))
  25. echo ===== Running duoram $mode $size $iters
  26. date "+===== Start %s %F %T"
  27. # Run, saving the output
  28. savefilep2=$$.p2.out
  29. savefilep0=$$.p1.out
  30. savefilep1=$$.p0.out
  31. docker exec -w /root/duoram/duoram-online duoram_p2 bash -c "$DUORAM_NUMA_P2 stdbuf -o 0 ./p2 $p0addr $p1addr $size $iters $iters $iters 1 > $savefilep2 2>&1" &
  32. sleep 4
  33. docker exec -w /root/duoram/duoram-online duoram_p1 bash -c "$DUORAM_NUMA_P1 stdbuf -o 0 ./duoram1 $p0addr $p2addr $size $iters $iters $iters 1 > $savefilep1 2>&1" &
  34. sleep 2
  35. docker exec -w /root/duoram/duoram-online duoram_p0 bash -c "$DUORAM_NUMA_P0 stdbuf -o 0 ./duoram0 $p1addr $p2addr $size $iters $iters $iters 1 > $savefilep0 2>&1" &
  36. wait
  37. echo ===== P0 output
  38. docker exec -w /root/duoram/duoram-online duoram_p0 cat $savefilep0
  39. docker exec -w /root/duoram/duoram-online duoram_p0 rm -f $savefilep0
  40. echo ===== P1 output
  41. docker exec -w /root/duoram/duoram-online duoram_p1 cat $savefilep1
  42. docker exec -w /root/duoram/duoram-online duoram_p1 rm -f $savefilep1
  43. date "+===== End %s %F %T"