Run run_1_thread | Number processes: 1Number nodes: 1Run Command: <executable> kmeans/input/100000000.in 1000 100000000 50 25MPI Command: Dataset: Run Directory: /home/fmusial/KMEANS_BenchmarksOMP_PROC_BIND: closeOMP_WAIT_POLICY: activeOMP_NUM_THREADS: 1OMP_PLACES: cores |
---|---|
Run run_2_threads | Number processes: 1Number nodes: 1Run Command: <executable> kmeans/input/100000000.in 1000 100000000 50 25MPI Command: Dataset: Run Directory: /home/fmusial/KMEANS_BenchmarksOMP_PROC_BIND: closeOMP_NUM_THREADS: 2OMP_PLACES: coresOMP_WAIT_POLICY: active |
Run run_4_threads | Number processes: 1Number nodes: 1Run Command: <executable> kmeans/input/100000000.in 1000 100000000 50 25MPI Command: Dataset: Run Directory: /home/fmusial/KMEANS_BenchmarksOMP_PROC_BIND: closeOMP_NUM_THREADS: 4OMP_PLACES: coresOMP_WAIT_POLICY: active |
Run run_8_threads | Number processes: 1Number nodes: 1Run Command: <executable> kmeans/input/100000000.in 1000 100000000 50 25MPI Command: Dataset: Run Directory: /home/fmusial/KMEANS_BenchmarksOMP_PROC_BIND: closeOMP_NUM_THREADS: 8OMP_PLACES: coresOMP_WAIT_POLICY: active |
Run run_16_threads | Number processes: 1Number nodes: 1Run Command: <executable> kmeans/input/100000000.in 1000 100000000 50 25MPI Command: Dataset: Run Directory: /home/fmusial/KMEANS_BenchmarksOMP_PROC_BIND: closeOMP_NUM_THREADS: 16OMP_PLACES: coresOMP_WAIT_POLICY: active |
Run run_32_threads | Number processes: 1Number nodes: 1Run Command: <executable> kmeans/input/100000000.in 1000 100000000 50 25MPI Command: Dataset: Run Directory: /home/fmusial/KMEANS_BenchmarksOMP_PROC_BIND: closeOMP_NUM_THREADS: 32OMP_PLACES: coresOMP_WAIT_POLICY: active |
Run run_64_threads | Number processes: 1Number nodes: 1Run Command: <executable> kmeans/input/100000000.in 1000 100000000 50 25MPI Command: Dataset: Run Directory: /home/fmusial/KMEANS_BenchmarksOMP_PROC_BIND: closeOMP_NUM_THREADS: 64OMP_PLACES: coresOMP_WAIT_POLICY: active |
Run run_96_threads | Number processes: 1Number nodes: 1Run Command: <executable> kmeans/input/100000000.in 1000 100000000 50 25MPI Command: Dataset: Run Directory: /home/fmusial/KMEANS_BenchmarksOMP_PROC_BIND: closeOMP_NUM_THREADS: 96OMP_PLACES: coresOMP_WAIT_POLICY: active |
Name | Module | Max Thread Time / Walltime run_1_thread (%) | Max Thread Time / Walltime run_2_threads (%) | Max Thread Time / Walltime run_4_threads (%) | Max Thread Time / Walltime run_8_threads (%) | Max Thread Time / Walltime run_16_threads (%) | Max Thread Time / Walltime run_32_threads (%) | Max Thread Time / Walltime run_64_threads (%) | Max Thread Time / Walltime run_96_threads (%) | Coverage run_1_thread (%) | Coverage run_2_threads (%) | Coverage run_4_threads (%) | Coverage run_8_threads (%) | Coverage run_16_threads (%) | Coverage run_32_threads (%) | Coverage run_64_threads (%) | Coverage run_96_threads (%) | Coverage Excluding Loops run_1_thread (%) | Coverage Excluding Loops run_2_threads (%) | Coverage Excluding Loops run_4_threads (%) | Coverage Excluding Loops run_8_threads (%) | Coverage Excluding Loops run_16_threads (%) | Coverage Excluding Loops run_32_threads (%) | Coverage Excluding Loops run_64_threads (%) | Coverage Excluding Loops run_96_threads (%) | Max Inclusive Time Over Threads run_1_thread (s) | Max Inclusive Time Over Threads run_2_threads (s) | Max Inclusive Time Over Threads run_4_threads (s) | Max Inclusive Time Over Threads run_8_threads (s) | Max Inclusive Time Over Threads run_16_threads (s) | Max Inclusive Time Over Threads run_32_threads (s) | Max Inclusive Time Over Threads run_64_threads (s) | Max Inclusive Time Over Threads run_96_threads (s) | Max Exclusive Time Over Threads run_1_thread (s) | Max Exclusive Time Over Threads run_2_threads (s) | Max Exclusive Time Over Threads run_4_threads (s) | Max Exclusive Time Over Threads run_8_threads (s) | Max Exclusive Time Over Threads run_16_threads (s) | Max Exclusive Time Over Threads run_32_threads (s) | Max Exclusive Time Over Threads run_64_threads (s) | Max Exclusive Time Over Threads run_96_threads (s) | Inclusive Time w.r.t. Wall Time run_1_thread (s) | Inclusive Time w.r.t. Wall Time run_2_threads (s) | Inclusive Time w.r.t. Wall Time run_4_threads (s) | Inclusive Time w.r.t. Wall Time run_8_threads (s) | Inclusive Time w.r.t. Wall Time run_16_threads (s) | Inclusive Time w.r.t. Wall Time run_32_threads (s) | Inclusive Time w.r.t. Wall Time run_64_threads (s) | Inclusive Time w.r.t. Wall Time run_96_threads (s) | Exclusive Time w.r.t. Wall Time run_1_thread (s) | Exclusive Time w.r.t. Wall Time run_2_threads (s) | Exclusive Time w.r.t. Wall Time run_4_threads (s) | Exclusive Time w.r.t. Wall Time run_8_threads (s) | Exclusive Time w.r.t. Wall Time run_16_threads (s) | Exclusive Time w.r.t. Wall Time run_32_threads (s) | Exclusive Time w.r.t. Wall Time run_64_threads (s) | Exclusive Time w.r.t. Wall Time run_96_threads (s) | Nb Threads run_1_thread | Nb Threads run_2_threads | Nb Threads run_4_threads | Nb Threads run_8_threads | Nb Threads run_16_threads | Nb Threads run_32_threads | Nb Threads run_64_threads | Nb Threads run_96_threads | Deviation (coverage) run_1_thread | Deviation (coverage) run_2_threads | Deviation (coverage) run_4_threads | Deviation (coverage) run_8_threads | Deviation (coverage) run_16_threads | Deviation (coverage) run_32_threads | Deviation (coverage) run_64_threads | Deviation (coverage) run_96_threads | Deviation (walltime) run_1_thread | Deviation (walltime) run_2_threads | Deviation (walltime) run_4_threads | Deviation (walltime) run_8_threads | Deviation (walltime) run_16_threads | Deviation (walltime) run_32_threads | Deviation (walltime) run_64_threads | Deviation (walltime) run_96_threads | Categories run_1_thread | Categories run_2_threads | Categories run_4_threads | Categories run_8_threads | Categories run_16_threads | Categories run_32_threads | Categories run_64_threads | Categories run_96_threads | GFLOPS run_1_thread | GFLOPS run_2_threads | GFLOPS run_4_threads | GFLOPS run_8_threads | GFLOPS run_16_threads | GFLOPS run_32_threads | GFLOPS run_64_threads | GFLOPS run_96_threads | Compilation Options | (run_1_thread) Efficiency | (run_1_thread) Potential Speed-Up (%) | (run_2_threads) Efficiency | (run_2_threads) Potential Speed-Up (%) | (run_4_threads) Efficiency | (run_4_threads) Potential Speed-Up (%) | (run_8_threads) Efficiency | (run_8_threads) Potential Speed-Up (%) | (run_16_threads) Efficiency | (run_16_threads) Potential Speed-Up (%) | (run_32_threads) Efficiency | (run_32_threads) Potential Speed-Up (%) | (run_64_threads) Efficiency | (run_64_threads) Potential Speed-Up (%) | (run_96_threads) Efficiency | (run_96_threads) Potential Speed-Up (%) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
►k_means(int, point_t*, point_t*, int*, int, int) [clone .omp_outlined] | kmeans-acfl-O2 | 75.98 | 62.48 | 46.45 | 30.87 | 18.44 | 10.92 | 5.12 | 2.60 | 100.00 | 98.65 | 96.14 | 94.32 | 92.84 | 85.91 | 78.35 | 42.21 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 138.78 | 71.14 | 36.27 | 18.51 | 9.42 | 5.04 | 2.23 | 1.13 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 138.78 | 70.18 | 34.93 | 17.58 | 8.86 | 4.41 | 1.86 | 0.64 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 96 | 0.00 | 1.90 | 2.60 | 4.07 | 4.39 | 6.59 | 7.70 | 20.81 | 0.00 | 1.71 | 1.15 | 0.88 | 0.49 | 0.39 | 0.20 | 0.34 | Exe (%): 100.00 | Exe (%): 100.00 | Exe (%): 100.00 | Exe (%): 100.00 | Exe (%): 100.00 | Exe (%): 100.00 | Exe (%): 100.00 | Exe (%): 100.00 | 8.04 | 15.90 | 31.93 | 63.37 | 125.10 | 245.81 | 454.64 | 591.92 | Arm C/C++/Fortran Compiler version 24.10.1 (build number 4) (based on LLVM 19.1.0) /opt/arm/arm-linux-compiler-24.10.1_AmazonLinux-2023/llvm-bin/clang-19 --driver-mode=g++ -I . -MMD -MP -Wall -std=c++14 -g -fno-omit-frame-pointer -fopenmp -O2 -grecord-comm... | 1 | 0 | 0.99 | 1.11 | 0.99 | 0.66 | 0.99 | 1.26 | 0.98 | 1.92 | 0.98 | 1.45 | 1.17 | 0 | 2.25 | 0 |
►Loop 7 - main.cpp:113-122 - kmeans-acfl-O2 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 100.00 | 98.65 | 96.14 | 94.32 | 92.84 | 85.91 | 78.35 | 42.21 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 138.78 | 71.34 | 36.27 | 18.53 | 9.44 | 5.06 | 2.25 | 1.14 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 138.78 | 70.18 | 34.93 | 17.58 | 8.86 | 4.41 | 1.86 | 0.64 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | ||||||||||||||||||||||||||
►Loop 8 - main.cpp:114-122 - kmeans-acfl-O2 | 0.76 | 0.69 | 0.52 | 0.36 | 0.24 | 0.19 | 0.10 | 0.06 | 100.00 | 98.65 | 96.14 | 94.32 | 92.84 | 85.91 | 78.35 | 42.21 | 1.00 | 0.97 | 1.01 | 0.85 | 0.92 | 0.86 | 0.77 | 0.40 | 138.78 | 71.34 | 36.27 | 18.53 | 9.44 | 5.06 | 2.25 | 1.14 | 1.39 | 0.79 | 0.41 | 0.22 | 0.13 | 0.09 | 0.05 | 0.03 | 138.78 | 70.18 | 34.93 | 17.58 | 8.86 | 4.41 | 1.86 | 0.64 | 1.39 | 0.69 | 0.37 | 0.16 | 0.09 | 0.04 | 0.02 | 0.01 | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 95 | 0.00 | 0.20 | 0.16 | 0.17 | 0.26 | 0.34 | 0.43 | 0.38 | 0.00 | 0.14 | 0.06 | 0.03 | 0.02 | 0.02 | 0.01 | 0.01 | 7.44 | 15.33 | 28.53 | 66.49 | 118.91 | 230.28 | 429.80 | 573.54 | 1 | 0 | 1.01 | 0 | 0.95 | 0.05 | 1.09 | 0 | 0.99 | 0.01 | 0.99 | 0.01 | 1.2 | 0 | 2.35 | 0 | ||||||||||
○Loop 9 - main.cpp:116-122 - kmeans-acfl-O2 | 75.22 | 61.97 | 45.92 | 30.54 | 18.21 | 10.78 | 5.05 | 2.58 | 99.00 | 97.68 | 95.13 | 93.47 | 91.92 | 85.06 | 77.58 | 41.81 | 99.00 | 97.68 | 95.13 | 93.47 | 91.92 | 85.06 | 77.58 | 41.81 | 137.39 | 70.55 | 35.86 | 18.32 | 9.31 | 4.97 | 2.21 | 1.12 | 137.39 | 70.55 | 35.86 | 18.32 | 9.31 | 4.97 | 2.21 | 1.12 | 137.39 | 69.49 | 34.57 | 17.42 | 8.77 | 4.37 | 1.84 | 0.64 | 137.39 | 69.49 | 34.57 | 17.42 | 8.77 | 4.37 | 1.84 | 0.64 | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 96 | 0.00 | 2.11 | 2.57 | 3.98 | 4.34 | 6.52 | 7.61 | 20.59 | 0.00 | 1.85 | 1.14 | 0.86 | 0.49 | 0.38 | 0.20 | 0.33 | 8.04 | 15.91 | 31.97 | 63.34 | 125.16 | 245.96 | 454.88 | 592.09 | 1 | 0 | 0.99 | 1.12 | 0.99 | 0.6 | 0.99 | 1.33 | 0.98 | 1.91 | 0.98 | 1.44 | 1.17 | 0 | 2.24 | 0 | ||||||||||
○__kmp_yield | libomp.so | 0.00 | 0.00 | 0.01 | 0.02 | 0.01 | 0.02 | 0.01 | 0.02 | 0.00 | 0.00 | 0.01 | 0.01 | 0.01 | 0.02 | 0.01 | 0.09 | 0.00 | 0.00 | 0.01 | 0.01 | 0.01 | 0.02 | 0.01 | 0.09 | 0.00 | 0.00 | 0.00 | 0.01 | 0.01 | 0.01 | 0.00 | 0.01 | 0.00 | 0.00 | 0.00 | 0.01 | 0.01 | 0.01 | 0.00 | 0.01 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0 | 0 | 2 | 3 | 4 | 5 | 3 | 21 | 0.00 | 0.00 | 0.00 | 0.02 | 0.00 | 0.05 | 0.00 | 0.17 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | NA | NA | OMP (%): 100.00 | OMP (%): 100.00 | OMP (%): 100.00 | OMP (%): 100.00 | OMP (%): 100.00 | OMP (%): 100.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | |||||||||||||||||
○kmp_flag_64<false, true>::wait(kmp_info*, int, void*) | libomp.so | 0.00 | 1.50 | 2.52 | 3.34 | 2.74 | 2.65 | 1.76 | 2.04 | 0.00 | 1.21 | 3.45 | 4.98 | 6.04 | 11.11 | 15.65 | 47.85 | 0.00 | 1.21 | 3.45 | 4.98 | 6.04 | 11.11 | 15.65 | 47.85 | 0.00 | 1.71 | 1.96 | 2.00 | 1.40 | 1.22 | 0.77 | 0.89 | 0.00 | 1.71 | 1.96 | 2.00 | 1.40 | 1.22 | 0.77 | 0.89 | 0.00 | 0.86 | 1.25 | 0.93 | 0.58 | 0.57 | 0.37 | 0.73 | 0.00 | 0.86 | 1.25 | 0.93 | 0.58 | 0.57 | 0.37 | 0.73 | 0 | 1 | 4 | 8 | 16 | 32 | 64 | 96 | 0.00 | 0.00 | 2.35 | 3.74 | 4.04 | 5.59 | 6.93 | 17.74 | 0.00 | 0.00 | 0.84 | 0.68 | 0.37 | 0.27 | 0.15 | 0.13 | NA | OMP (%): 100.00 | OMP (%): 100.00 | OMP (%): 100.00 | OMP (%): 100.00 | OMP (%): 100.00 | OMP (%): 100.00 | OMP (%): 100.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | |
○@plt_start@ | libomp.so | 0.00 | 0.01 | 0.04 | 0.03 | 0.02 | 0.02 | 0.02 | 0.05 | 0.00 | 0.01 | 0.04 | 0.03 | 0.02 | 0.03 | 0.05 | 0.23 | 0.00 | 0.01 | 0.04 | 0.03 | 0.02 | 0.03 | 0.05 | 0.23 | 0.00 | 0.01 | 0.03 | 0.01 | 0.01 | 0.01 | 0.01 | 0.02 | 0.00 | 0.01 | 0.03 | 0.01 | 0.01 | 0.01 | 0.01 | 0.02 | 0.00 | 0.01 | 0.01 | 0.01 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.01 | 0.01 | 0.01 | 0.00 | 0.00 | 0.00 | 0.00 | 0 | 1 | 3 | 5 | 5 | 8 | 13 | 45 | 0.00 | 0.00 | 0.03 | 0.02 | 0.03 | 0.05 | 0.10 | 0.31 | 0.00 | 0.00 | 0.01 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | NA | OMP (%): 100.00 | OMP (%): 100.00 | OMP (%): 100.00 | OMP (%): 100.00 | OMP (%): 100.00 | OMP (%): 100.00 | OMP (%): 100.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | |
○unknown_function | kmeans-acfl-O2 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.01 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | NA | NA | NA | NA | NA | NA | NA | Exe (%): 100.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | |||||||||||||||||
○kmp_flag_native<unsigned long long, (flag_type)1, true>::notdone_check() | libomp.so | 0.00 | 0.08 | 0.13 | 0.18 | 0.15 | 0.18 | 0.13 | 0.20 | 0.00 | 0.06 | 0.16 | 0.31 | 0.35 | 0.68 | 0.97 | 3.31 | 0.00 | 0.06 | 0.16 | 0.31 | 0.35 | 0.68 | 0.97 | 3.31 | 0.00 | 0.09 | 0.10 | 0.11 | 0.07 | 0.08 | 0.05 | 0.09 | 0.00 | 0.09 | 0.10 | 0.11 | 0.07 | 0.08 | 0.05 | 0.09 | 0.00 | 0.05 | 0.06 | 0.06 | 0.03 | 0.04 | 0.02 | 0.05 | 0.00 | 0.05 | 0.06 | 0.06 | 0.03 | 0.04 | 0.02 | 0.05 | 0 | 1 | 3 | 8 | 16 | 31 | 63 | 96 | 0.00 | 0.00 | 0.13 | 0.21 | 0.22 | 0.43 | 0.57 | 1.46 | 0.00 | 0.00 | 0.05 | 0.04 | 0.02 | 0.02 | 0.01 | 0.01 | NA | OMP (%): 100.00 | OMP (%): 100.00 | OMP (%): 100.00 | OMP (%): 100.00 | OMP (%): 100.00 | OMP (%): 100.00 | OMP (%): 100.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | |
○__sched_yield | libc.so.6 | 0.00 | 0.07 | 0.12 | 0.16 | 0.10 | 0.13 | 0.08 | 0.10 | 0.00 | 0.06 | 0.16 | 0.21 | 0.21 | 0.36 | 0.48 | 1.65 | 0.00 | 0.06 | 0.16 | 0.21 | 0.21 | 0.36 | 0.48 | 1.65 | 0.00 | 0.09 | 0.09 | 0.10 | 0.05 | 0.06 | 0.04 | 0.05 | 0.00 | 0.09 | 0.09 | 0.10 | 0.05 | 0.06 | 0.04 | 0.05 | 0.00 | 0.04 | 0.06 | 0.04 | 0.02 | 0.02 | 0.01 | 0.03 | 0.00 | 0.04 | 0.06 | 0.04 | 0.02 | 0.02 | 0.01 | 0.03 | 0 | 1 | 3 | 8 | 15 | 29 | 51 | 95 | 0.00 | 0.00 | 0.05 | 0.18 | 0.14 | 0.26 | 0.36 | 0.96 | 0.00 | 0.00 | 0.02 | 0.03 | 0.01 | 0.01 | 0.01 | 0.01 | NA | OMP (%): 100.00 | OMP (%): 100.00 | OMP (%): 100.00 | OMP (%): 100.00 | OMP (%): 100.00 | OMP (%): 100.00 | OMP (%): 100.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |