PyBench is a benchmark suite for python. The test is single-threaded and have very high retirement rate and IPC. It is also short and quick.

Topdown profile shows a consistent high retirement rate.

AMD metrics show very little floating point or L2 access. Both frontend and backend stalls are low.
elapsed 63.702
on_cpu 0.049 # 0.78 / 16 cores
utime 48.990
stime 0.793
nvcsw 1986 # 81.90%
nivcsw 439 # 18.10%
inblock 0 # 0.00/sec
onblock 12648 # 198.55/sec
cpu-clock 49805588772 # 49.806 seconds
task-clock 49808093050 # 49.808 seconds
page faults 160691 # 3226.203/sec
context switches 2564 # 51.478/sec
cpu migrations 270 # 5.421/sec
major page faults 2 # 0.040/sec
minor page faults 160689 # 3226.162/sec
alignment faults 0 # 0.000/sec
emulation faults 0 # 0.000/sec
branches 194912652988 # 186.412 branches per 1000 inst
branch misses 270411164 # 0.14% branch miss
conditional 154479730117 # 147.743 conditional branches per 1000 inst
indirect 18920311748 # 18.095 indirect branches per 1000 inst
cpu-cycles 374557890559 # 0.22 GHz
instructions 1734702413427 # 4.63 IPC high
slots 752332043412 #
retiring 561257349214 # 74.6% (74.6%) high
-- ucode 1483477360 # 0.2%
-- fastpath 559773871854 # 74.4%
frontend 77108360889 # 10.2% (10.3%)
-- latency 34005993816 # 4.5%
-- bandwidth 43102367073 # 5.7%
backend 97631998057 # 13.0% (13.0%) low
-- cpu 20007069354 # 2.7%
-- memory 77624928703 # 10.3%
speculation 16192947256 # 2.2% ( 2.2%)
-- branch mispredict 13204745243 # 1.8%
-- pipeline restart 2988202013 # 0.4%
smt-contention 141103425 # 0.0% ( 0.0%)
cpu-cycles 225789349951 # 0.22 GHz
instructions 1039703315363 # 4.60 IPC high
instructions 348255417695 # 1.063 l2 access per 1000 inst
l2 hit from l1 345411754 # 5.98% l2 miss
l2 miss from l1 13213404 #
l2 hit from l2 pf 15775251 #
l3 hit from l2 pf 4367477 #
l3 miss from l2 pf 4560360 #
instructions 347971571386 # 7.418 float per 1000 inst
float 512 52 # 0.000 AVX-512 per 1000 inst
float 256 580 # 0.000 AVX-256 per 1000 inst
float 128 2581105775 # 7.418 AVX-128 per 1000 inst
float MMX 0 # 0.000 MMX per 1000 inst
float scalar 13 # 0.000 scalar per 1000 inst
Intel metrics
elapsed 63.672
on_cpu 0.049 # 0.78 / 16 cores
utime 49.601
stime 0.357
nvcsw 1946 # 86.07%
nivcsw 315 # 13.93%
inblock 688 # 10.81/sec
onblock 1368 # 21.49/sec
cpu-clock 49970397576 # 49.970 seconds
task-clock 49972774658 # 49.973 seconds
page faults 149794 # 2997.512/sec
context switches 2408 # 48.186/sec
cpu migrations 202 # 4.042/sec
major page faults 1 # 0.020/sec
minor page faults 149793 # 2997.492/sec
alignment faults 0 # 0.000/sec
emulation faults 0 # 0.000/sec
branches 194468472774 # 185.970 branches per 1000 inst
branch misses 96408844 # 0.05% branch miss
conditional 194468484966 # 185.970 conditional branches per 1000 inst
indirect 18922715964 # 18.096 indirect branches per 1000 inst
slots 1132078905056 #
retiring 991835993221 # 87.6% (87.6%) high
-- ucode 47158698511 # 4.2%
-- fastpath 944677294710 # 83.4%
frontend 32564331849 # 2.9% ( 2.9%) low
-- latency 7632247901 # 0.7%
-- bandwidth 24932083948 # 2.2%
backend 61583929109 # 5.4% ( 5.4%) low
-- cpu 45713589376 # 4.0%
-- memory 15870339733 # 1.4%
speculation 31665658842 # 2.8% ( 2.8%)
-- branch mispredict 9823086021 # 0.9%
-- pipeline restart 21842572821 # 1.9%
smt-contention 0 # 0.0% ( 0.0%)
cpu-cycles 188457635434 # 0.18 GHz
instructions 1043848855562 # 5.54 IPC high
l2 access 693102729 # 0.664 l2 access per 1000 inst
l2 miss 98568390 # 14.22% l2 miss
Process overview shows standard test overhead and four invocations of python
361 processes
4 python3 48.35 0.02
68 clinfo 18.20 4.66
38 vulkaninfo 0.95 1.34
6 glxinfo:gdrv0 0.12 0.07
6 glxinfo:gl0 0.12 0.07
4 vulkani:disk$0 0.10 0.15
6 php 0.07 0.07
2 glxinfo 0.06 0.03
2 glxinfo:cs0 0.06 0.03
2 glxinfo:disk$0 0.06 0.03
2 glxinfo:sh0 0.06 0.03
2 glxinfo:shlo0 0.06 0.03
2 llvmpipe-0 0.05 0.08
2 llvmpipe-1 0.05 0.08
2 llvmpipe-10 0.05 0.08
2 llvmpipe-11 0.05 0.08
2 llvmpipe-12 0.05 0.08
2 llvmpipe-13 0.05 0.08
2 llvmpipe-14 0.05 0.08
2 llvmpipe-15 0.05 0.08
2 llvmpipe-2 0.05 0.08
2 llvmpipe-3 0.05 0.08
2 llvmpipe-4 0.05 0.08
2 llvmpipe-5 0.05 0.08
2 llvmpipe-6 0.05 0.08
2 llvmpipe-7 0.05 0.08
2 llvmpipe-8 0.05 0.08
2 llvmpipe-9 0.05 0.08
6 clang 0.03 0.09
3 rocminfo 0.03 0.00
1 lspci 0.00 0.01
1 ps 0.00 0.01
83 sh 0.00 0.00
12 gcc 0.00 0.00
8 gsettings 0.00 0.00
8 stat 0.00 0.00
8 systemd-detect- 0.00 0.00
6 llvm-link 0.00 0.00
5 gmain 0.00 0.00
5 phoronix-test-s 0.00 0.00
5 uname 0.00 0.00
3 dconf worker 0.00 0.00
3 file 0.00 0.00
3 pybench 0.00 0.00
2 lscpu 0.00 0.00
2 which 0.00 0.00
2 xset 0.00 0.00
1 cc 0.00 0.00
1 date 0.00 0.00
1 dirname 0.00 0.00
1 dmesg 0.00 0.00
1 dmidecode 0.00 0.00
1 grep 0.00 0.00
1 ifconfig 0.00 0.00
1 ip 0.00 0.00
1 lsmod 0.00 0.00
1 mktemp 0.00 0.00
1 python 0.00 0.00
1 qdbus 0.00 0.00
1 readlink 0.00 0.00
1 realpath 0.00 0.00
1 sed 0.00 0.00
1 sort 0.00 0.00
1 stty 0.00 0.00
1 systemctl 0.00 0.00
1 template.sh 0.00 0.00
1 wc 0.00 0.00
1 xrandr 0.00 0.00
0 processes running
47 maximum processes
Computation section
1622774) pybench cpu=7 start=5.46 finish=21.52
1622775) python3 cpu=2 start=5.46 finish=21.52
1622776) file cpu=11 start=5.49 finish=5.49
1622777) uname cpu=6 start=5.49 finish=5.49
1622780) pybench cpu=5 start=25.52 finish=41.88
1622781) python3 cpu=6 start=25.52 finish=41.88
1622782) file cpu=15 start=25.55 finish=25.55
1622783) uname cpu=15 start=25.55 finish=25.55
1622787) pybench cpu=5 start=45.89 finish=61.89
1622788) python3 cpu=6 start=45.89 finish=61.88
1622789) file cpu=15 start=45.92 finish=45.92
1622790) uname cpu=15 start=45.92 finish=45.92
