|
| 1 | +#!/bin/zsh |
| 2 | + |
| 3 | +# Parse command line arguments |
| 4 | +SEQUENTIAL=false |
| 5 | +num_services=3 # Default value |
| 6 | + |
| 7 | +while [[ $# -gt 0 ]]; do |
| 8 | + case $1 in |
| 9 | + --sequential) |
| 10 | + SEQUENTIAL=true |
| 11 | + shift |
| 12 | + ;; |
| 13 | + --num-services) |
| 14 | + num_services="$2" |
| 15 | + shift 2 |
| 16 | + ;; |
| 17 | + *) |
| 18 | + echo "Unknown option: $1" |
| 19 | + echo "Usage: $0 [--sequential] [--num-services <number>]" |
| 20 | + exit 1 |
| 21 | + ;; |
| 22 | + esac |
| 23 | +done |
| 24 | +dkt enclave rm parallel-enclave --force |
| 25 | + |
| 26 | +dkt enclave add --api-container-version $(get-devc-img "tag") --name parallel-enclave |
| 27 | + |
| 28 | +dkt run ~/craft/ethereum-package/ --enclave parallel-enclave --args-file ~/craft/ethereum-package/args.yml --non-blocking-tasks |
| 29 | +# kt run ~/craft/ethereum-package/ --enclave parallel-enclave --args-file ~/craft/ethereum-package/args.yml --parallelism 1 --non-blocking-tasks # runs sequentially |
| 30 | + |
| 31 | +# if [ "$SEQUENTIAL" = true ]; then |
| 32 | +# echo "Running in sequential mode..." |
| 33 | +# dkt run /Users/tewodrosmitiku/craft/sandbox/tests/ --enclave parallel-enclave --parallelism 1 --non-blocking-tasks |
| 34 | +# else |
| 35 | +# echo "Running in parallel mode..." |
| 36 | +# dkt run /Users/tewodrosmitiku/craft/sandbox/tests/ --enclave parallel-enclave --non-blocking-tasks |
| 37 | +# fi |
| 38 | + |
| 39 | +# use docker to find the container id of the api container for parallel enclave |
| 40 | +# then docker the file /tmp/dependency.dot on that containres to ~/Users/tewodrosmitiku/craft/graphs/dependency.dot |
| 41 | +docker cp $(docker ps -q --filter "name=kurtosis-api--" | head -n 1):/tmp/dependency.dot ~/craft/graphs/dependency.dot |
| 42 | +docker cp $(docker ps -q --filter "name=kurtosis-api--" | head -n 1):/tmp/execution.txt ~/craft/graphs/execution.txt |
| 43 | +docker cp $(docker ps -q --filter "name=kurtosis-api--" | head -n 1):/tmp/instruction_durations.json ~/craft/graphs/instruction_durations.json |
| 44 | +docker cp $(docker ps -q --filter "name=kurtosis-api--" | head -n 1):/tmp/run_starlark_package_cpu.prof ~/craft/sandbox/optimizations/run_starlark_package_cpu.prof |
| 45 | +docker cp $(docker ps -q --filter "name=kurtosis-api--" | head -n 1):/tmp/run_starlark_package_block.prof ~/craft/sandbox/optimizations/run_starlark_package_block.prof |
| 46 | +docker cp $(docker ps -q --filter "name=kurtosis-api--" | head -n 1):/tmp/run_starlark_package_mutex.prof ~/craft/sandbox/optimizations/run_starlark_package_mutex.prof |
| 47 | + |
| 48 | + |
| 49 | +dot -Tpng ~/craft/graphs/dependency.dot -o ~/craft/graphs/graph.png |
| 50 | + |
| 51 | +# Get API container logs |
| 52 | +# save logs to a file with the current date and time |
| 53 | +filename=$(date +%Y-%m-%d_%H-%M-%S) |
| 54 | + |
| 55 | +if [ "$SEQUENTIAL" = true ]; then |
| 56 | + docker logs $(docker ps -q --filter "name=kurtosis-api--" | head -n 1) &> /Users/tewodrosmitiku/craft/kurtosis/${filename}-sequential-apilogs.txt |
| 57 | +else |
| 58 | + docker logs $(docker ps -q --filter "name=kurtosis-api--" | head -n 1) &> /Users/tewodrosmitiku/craft/kurtosis/${filename}-parallel-apilogs.txt |
| 59 | +fi |
| 60 | + |
| 61 | +# Get service IDs from container names |
| 62 | +# read_genesis_id=$(docker ps --format '{{.Names}}' | grep "read-genesis-validators-root" | sed 's/.*--\(.*\)/\1/') |
| 63 | +# read_osaka_id=$(docker ps --format '{{.Names}}' | grep "read-osaka-time" | sed 's/.*--\(.*\)/\1/') |
| 64 | +# check_if_osaka_id=$(docker ps --format '{{.Names}}' | grep "check-osaka-enabled" | sed 's/.*--\(.*\)/\1/') |
| 65 | + |
| 66 | +# if [ "$SEQUENTIAL" = true ]; then |
| 67 | +# echo "read_genesis_id: ${read_genesis_id:0:10}" > /Users/tewodrosmitiku/craft/kurtosis/${filename}-sequential-times.txt |
| 68 | +# echo "read_osaka_id: ${read_osaka_id:0:10}" >> /Users/tewodrosmitiku/craft/kurtosis/${filename}-sequential-times.txt |
| 69 | +# echo "check_if_osaka_id: ${check_if_osaka_id:0:10}" >> /Users/tewodrosmitiku/craft/kurtosis/${filename}-sequential-times.txt |
| 70 | +# else |
| 71 | +# echo "read_genesis_id: ${read_genesis_id:0:10}" > /Users/tewodrosmitiku/craft/kurtosis/${filename}-parallel-times.txt |
| 72 | +# echo "read_osaka_id: ${read_osaka_id:0:10}" >> /Users/tewodrosmitiku/craft/kurtosis/${filename}-parallel-times.txt |
| 73 | +# echo "check_if_osaka_id: ${check_if_osaka_id:0:10}" >> /Users/tewodrosmitiku/craft/kurtosis/${filename}-parallel-times.txt |
| 74 | +# fi |
| 75 | + |
| 76 | +# # # Extract timing metrics from API logs |
| 77 | +# if [ "$SEQUENTIAL" = true ]; then |
| 78 | +# source /Users/tewodrosmitiku/craft/kurtosis-parallelism-debugging/extract-times.sh /Users/tewodrosmitiku/craft/kurtosis/${filename}-sequential-apilogs.txt "${read_genesis_id}" "${read_osaka_id}" "${check_if_osaka_id}" &>> /Users/tewodrosmitiku/craft/kurtosis/${filename}-sequential-times.txt |
| 79 | +# else |
| 80 | +# source /Users/tewodrosmitiku/craft/kurtosis-parallelism-debugging/extract-times.sh /Users/tewodrosmitiku/craft/kurtosis/${filename}-parallel-apilogs.txt "${read_genesis_id}" "${read_osaka_id}" "${check_if_osaka_id}" &>> /Users/tewodrosmitiku/craft/kurtosis/${filename}-parallel-times.txt |
| 81 | +# fi |
| 82 | + |
| 83 | +if [ "$SEQUENTIAL" = true ]; then |
| 84 | + source /Users/tewodrosmitiku/craft/kurtosis-parallelism-debugging/extract-times.sh /Users/tewodrosmitiku/craft/kurtosis/${filename}-sequential-apilogs.txt ${num_services} "sequential" |
| 85 | +else |
| 86 | + source /Users/tewodrosmitiku/craft/kurtosis-parallelism-debugging/extract-times.sh /Users/tewodrosmitiku/craft/kurtosis/${filename}-parallel-apilogs.txt ${num_services} "parallel" |
| 87 | +fi |
0 commit comments