https://github.com/epiqc/ScaffCC
Revision 7bec85fe39c61f72472dc5a39942441993a8d0b6 authored by Yipeng Huang on 04 July 2018, 21:34:12 UTC, committed by Yipeng Huang on 04 July 2018, 21:34:12 UTC
Both Scaffold and QX simulator have the input convention of control, control, target
1 parent f74102b
Tip revision: 7bec85fe39c61f72472dc5a39942441993a8d0b6 authored by Yipeng Huang on 04 July 2018, 21:34:12 UTC
Fixing CNOT and Toffoli input ordering for the script that generates QX simulator inputs.
Fixing CNOT and Toffoli input ordering for the script that generates QX simulator inputs.
Tip revision: 7bec85f
parse_results.sh
#!/bin/bash
# usage: $ bash parse_result.sh {benchmark1} {benchmark2}
#compile
#rm -f router && make
# change the desired thresholds below. that's the only change needed.
error_rates=(5)
th_yx=(8)
th_drop=(20)
layout=("" "--opt")
technologies=("sup")
priority_policy=(0 1 2 3 4 5 6)
#run
for bench in $*; do
bench_dir=$(dirname $bench)
bench_name=$(basename $bench)
echo $bench_dir $bench_name
output_simulation=$bench_dir/braid_simulation/$bench_name
output_plot=$bench_dir/braid_simulation/braid_plot/$bench_name
mkdir -p $bench_dir/braid_simulation/braid_plot
for tech in "${technologies[@]}"
do
for p in "${error_rates[@]}"
do
# Excel Sheet 'BraidFlash'
echo -n "" > ${output_plot}.${p}.${tech}.clk
for pri in "${priority_policy[@]}"
do
Ser1=$(grep "SerialCLOCK" ${output_simulation}.p.$p.yx.$th_yx.drop.$th_drop.pri.$pri.$tech.br | awk '{sum+=$2} END {print sum}')
Par1=$(grep "ParallelCLOCK" ${output_simulation}.p.$p.yx.$th_yx.drop.$th_drop.pri.$pri.$tech.br | awk '{sum+=$2} END {print sum}')
Cri1=$(grep "CriticalCLOCK" ${output_simulation}.p.$p.yx.$th_yx.drop.$th_drop.pri.$pri.$tech.br | awk '{sum+=$2} END {print sum}')
tots1=$(grep "total_success" ${output_simulation}.p.$p.yx.$th_yx.drop.$th_drop.pri.$pri.$tech.br | awk '{sum+=$2} END {print sum}')
totc1=$(grep "total_conflict" ${output_simulation}.p.$p.yx.$th_yx.drop.$th_drop.pri.$pri.$tech.br | awk '{sum+=$2} END {print sum}')
unic1=$(grep "unique_conflict" ${output_simulation}.p.$p.yx.$th_yx.drop.$th_drop.pri.$pri.$tech.br | awk '{sum+=$2} END {print sum}')
Ser2=$(grep "SerialCLOCK" ${output_simulation}.p.$p.yx.$th_yx.drop.$th_drop.pri.$pri.$tech.opt.br | awk '{sum+=$2} END {print sum}')
Par2=$(grep "ParallelCLOCK" ${output_simulation}.p.$p.yx.$th_yx.drop.$th_drop.pri.$pri.$tech.opt.br | awk '{sum+=$2} END {print sum}')
Cri2=$(grep "CriticalCLOCK" ${output_simulation}.p.$p.yx.$th_yx.drop.$th_drop.pri.$pri.$tech.opt.br | awk '{sum+=$2} END {print sum}')
tots2=$(grep "total_success" ${output_simulation}.p.$p.yx.$th_yx.drop.$th_drop.pri.$pri.$tech.opt.br | awk '{sum+=$2} END {print sum}')
totc2=$(grep "total_conflict" ${output_simulation}.p.$p.yx.$th_yx.drop.$th_drop.pri.$pri.$tech.opt.br | awk '{sum+=$2} END {print sum}')
unic2=$(grep "unique_conflict" ${output_simulation}.p.$p.yx.$th_yx.drop.$th_drop.pri.$pri.$tech.opt.br | awk '{sum+=$2} END {print sum}')
echo $tots1 $totc1 $unic1 $Ser1 $Par1 $Cri1 >> ${output_plot}.${p}.${tech}.clk
echo $tots2 $totc2 $unic2 $Ser2 $Par2 $Cri2 >> ${output_plot}.${p}.${tech}.clk
done
# Excel Sheet 'DroppedGates'
echo -n "" > ${output_plot}.${p}.${tech}.dropped
echo "TotalDroppedGates" "UniqueDroppedGates"
totd1=$(grep "total_dropped_gates" ${output_simulation}.p.$p.yx.$th_yx.drop.$th_drop.pri.$pri.$tech.br | awk '{sum+=$2} END {print sum}')
unid1=$(grep "unique_dropped_gates" ${output_simulation}.p.$p.yx.$th_yx.drop.$th_drop.pri.$pri.$tech.br | awk '{sum+=$2} END {print sum}')
totd2=$(grep "total_dropped_gates" ${output_simulation}.p.$p.yx.$th_yx.drop.$th_drop.pri.$pri.$tech.opt.br | awk '{sum+=$2} END {print sum}')
unid2=$(grep "unique_dropped_gates" ${output_simulation}.p.$p.yx.$th_yx.drop.$th_drop.pri.$pri.$tech.opt.br | awk '{sum+=$2} END {print sum}')
echo $totd1 $unid1 >> ${output_plot}.${p}.${tech}.dropped
echo $totd2 $unid2 >> ${output_plot}.${p}.${tech}.dropped
# Excel Sheet 'ConflictedAttempts'
echo -n "" > ${output_plot}.${p}.${tech}.attempts
echo "Attempts"
for a in {0..40}
do
att_sum=$(grep "attempt\t$a" ${output_simulation}.p.$p.yx.$th_yx.drop.$th_drop.pri.$pri.$tech.br | awk '{sum+=$3} END {print sum}')
att_sum_opt=$(grep "attempt\t$a" ${output_simulation}.p.$p.yx.$th_yx.drop.$th_drop.pri.$pri.$tech.opt.br | awk '{sum+=$3} END {print sum}')
echo $a $att_sum $att_sum_opt >> ${output_plot}.${p}.${tech}.attempts
done
# Excel Sheet 'ManhattanCost'
echo -n "" > ${output_plot}.${p}.${tech}.mcost
echo "ManhattanCost" "ManhattanCost.Opt"
mcost1=$(grep "mcost:" ${output_simulation}.p.$p.yx.$th_yx.drop.$th_drop.pri.$pri.$tech.opt.br | awk '{print $2}')
mcost2=$(grep "mcost_opt:" ${output_simulation}.p.$p.yx.$th_yx.drop.$th_drop.pri.$pri.$tech.opt.br | awk '{print $2}')
echo $mcost1 $mcost2 >> ${output_plot}.${p}.${tech}.mcost
# Excel Sheet 'Area'
echo -n "" > ${output_plot}.${p}.${tech}.area
echo "CodeDistance" "MaxLogicalQbits" "MaxPhysicalQbits"
d=$(grep "code_distance(d):" ${output_simulation}.p.$p.yx.$th_yx.drop.$th_drop.pri.$pri.$tech.br | awk '{print $2}')
Q=$(grep "num_logical_qubits:" ${output_simulation}.p.$p.yx.$th_yx.drop.$th_drop.pri.$pri.$tech.br | awk '{print $2}')
q=$(grep "num_physical_qubits:" ${output_simulation}.p.$p.yx.$th_yx.drop.$th_drop.pri.$pri.$tech.br | awk '{print $2}')
echo $d $Q $q >> ${output_plot}.${p}.${tech}.area
# Extra Info
echo -n "" > ${output_plot}.${p}.${tech}.ecount
echo "EventCount.CNOT" "EventCount.CNOT+H"
ecount1=$(grep "event_count:" ${output_simulation}.p.$p.yx.$th_yx.drop.$th_drop.pri.$pri.$tech.opt.br | awk '{print $2}')
echo $ecount1 >> ${output_plot}.${p}.${tech}.ecount
done
done
done
Computing file changes ...