omnetpp is a SPEC CPU(R) benchmark written in C++ and described here. The workload runs on all logical cores.

Topdown profile shows a backend-bound workload.

AMD metrics on 7840 show ~2/3 of time waiting in memory stalls.
elapsed 2024.583
on_cpu 0.990 # 15.83 / 16 cores
utime 32034.007
stime 19.267
nvcsw 42794 # 13.33%
nivcsw 278139 # 86.67%
inblock 0 # 0.00/sec
onblock 1763320 # 870.95/sec
cpu-clock 32055936743326 # 32055.937 seconds
task-clock 32056180818475 # 32056.181 seconds
page faults 3453095 # 107.720/sec
context switches 320372 # 9.994/sec
cpu migrations 193 # 0.006/sec
major page faults 897 # 0.028/sec
minor page faults 3452198 # 107.692/sec
alignment faults 0 # 0.000/sec
emulation faults 0 # 0.000/sec
branches 8305779946694 # 196.963 branches per 1000 inst
branch misses 250499781336 # 3.02% branch miss
conditional 6062522008938 # 143.767 conditional branches per 1000 inst
indirect 496970309851 # 11.785 indirect branches per 1000 inst
cpu-cycles 148966833040595 # 4.58 GHz
instructions 42177169458361 # 0.28 IPC low
slots 297908418460326 #
retiring 14503312646284 # 4.9% ( 5.6%) low
-- ucode 38380239382 # 0.0%
-- fastpath 14464932406902 # 4.9%
frontend 24834374620841 # 8.3% ( 9.6%)
-- latency 13244967852348 # 4.4%
-- bandwidth 11589406768493 # 3.9%
backend 212881726950791 # 71.5% (81.9%) high
-- cpu 14319596152813 # 4.8%
-- memory 198562130797978 # 66.7%
speculation 7684515471591 # 2.6% ( 3.0%)
-- branch mispredict 7390004514273 # 2.5%
-- pipeline restart 294510957318 # 0.1%
smt-contention 38004401958954 # 12.8% ( 0.0%)
cpu-cycles 149229662422972 # 4.57 GHz
instructions 42174841732306 # 0.28 IPC low
instructions 14057642378395 # 72.990 l2 access per 1000 inst
l2 hit from l1 801165822037 # 44.62% l2 miss
l2 miss from l1 305524457589 #
l2 hit from l2 pf 72570092841 #
l3 hit from l2 pf 19197570229 #
l3 miss from l2 pf 133135850187 #
instructions 14058151814347 # 16.375 float per 1000 inst
float 512 266 # 0.000 AVX-512 per 1000 inst
float 256 302723 # 0.000 AVX-256 per 1000 inst
float 128 230203085403 # 16.375 AVX-128 per 1000 inst
float MMX 0 # 0.000 MMX per 1000 inst
float scalar 32 # 0.000 scalar per 1000 inst
instructions 42167979704725 #
opcache 12148761755871 # 288.104 opcache per 1000 inst
opcache miss 283691907486 # 2.3% opcache miss rate
l1 dTLB miss 1871111836272 # 44.373 L1 dTLB per 1000 inst
l2 dTLB miss 236293697504 # 5.604 L2 dTLB per 1000 inst
instructions 42167934060175 #
icache 440419443915 # 10.444 icache per 1000 inst
icache miss 125095740477 # 28.4% icache miss rate
l1 iTLB miss 37916440996 # 0.899 L1 iTLB per 1000 inst
l2 iTLB miss 0 # 0.000 L2 iTLB per 1000 inst
tlb flush 120050 # 0.000 TLB flush per 1000 inst
Process overview shows most time spent in omnetpp_r_base.
581 processes
48 omnetpp_r_base. 31711.38 12.68
69 specperl 174.02 3.59
1 clang++ 0.01 0.01
11 ps 0.00 0.02
1 lsb_release 0.00 0.01
173 sh 0.00 0.00
54 specrxp 0.00 0.00
48 bash 0.00 0.00
41 specinvoke 0.00 0.00
21 grep 0.00 0.00
20 cat 0.00 0.00
12 uniq 0.00 0.00
11 sort 0.00 0.00
10 expand 0.00 0.00
6 pwd 0.00 0.00
5 basename 0.00 0.00
5 specmake 0.00 0.00
5 systemctl 0.00 0.00
4 specpp 0.00 0.00
4 uname 0.00 0.00
3 dirname 0.00 0.00
3 dmidecode 0.00 0.00
3 lscpu 0.00 0.00
2 df 0.00 0.00
2 dpkg 0.00 0.00
2 rm 0.00 0.00
2 runcpu 0.00 0.00
2 specsha512sum 0.00 0.00
2 specxz 0.00 0.00
2 who 0.00 0.00
1 cpupower 0.00 0.00
1 head 0.00 0.00
1 logname 0.00 0.00
1 ls 0.00 0.00
1 numactl 0.00 0.00
1 sysctl 0.00 0.00
1 w 0.00 0.00
1 wc 0.00 0.00
1 which 0.00 0.00
0 processes running
53 maximum processes
specinvoke fires up separate copies on each logical core.
40845) specinvoke cpu=1 start=3.25 finish=667.87
40847) sh cpu=1 start=3.25 finish=664.94
40857) bash cpu=0 start=3.25 finish=664.94
40883) omnetpp_r_base. cpu=0 start=3.26 finish=664.91
40848) sh cpu=1 start=3.25 finish=662.74
40860) bash cpu=1 start=3.25 finish=662.74
40885) omnetpp_r_base. cpu=1 start=3.26 finish=662.72
40849) sh cpu=3 start=3.25 finish=662.84
40861) bash cpu=2 start=3.25 finish=662.84
40880) omnetpp_r_base. cpu=2 start=3.26 finish=662.81
40850) sh cpu=3 start=3.25 finish=662.69
40865) bash cpu=3 start=3.25 finish=662.69
40882) omnetpp_r_base. cpu=3 start=3.26 finish=662.66
40851) sh cpu=10 start=3.25 finish=666.60
40872) bash cpu=4 start=3.26 finish=666.60
40889) omnetpp_r_base. cpu=4 start=3.26 finish=666.58
40852) sh cpu=1 start=3.25 finish=665.06
40873) bash cpu=5 start=3.26 finish=665.06
40887) omnetpp_r_base. cpu=5 start=3.26 finish=665.03
40853) sh cpu=0 start=3.25 finish=667.21
40859) bash cpu=6 start=3.25 finish=667.21
40879) omnetpp_r_base. cpu=6 start=3.26 finish=667.19
40854) sh cpu=0 start=3.25 finish=667.07
40864) bash cpu=7 start=3.25 finish=667.07
40881) omnetpp_r_base. cpu=7 start=3.26 finish=667.04
40855) sh cpu=8 start=3.25 finish=665.72
40867) bash cpu=8 start=3.25 finish=665.72
40884) omnetpp_r_base. cpu=8 start=3.26 finish=665.70
40856) sh cpu=1 start=3.25 finish=663.34
40869) bash cpu=9 start=3.25 finish=663.34
40886) omnetpp_r_base. cpu=9 start=3.26 finish=663.32
40858) sh cpu=9 start=3.25 finish=664.85
40871) bash cpu=10 start=3.26 finish=664.85
40888) omnetpp_r_base. cpu=10 start=3.26 finish=664.83
40862) sh cpu=11 start=3.25 finish=664.09
40874) bash cpu=11 start=3.26 finish=664.09
40891) omnetpp_r_base. cpu=11 start=3.26 finish=664.07
40863) sh cpu=8 start=3.25 finish=665.78
40875) bash cpu=12 start=3.26 finish=665.78
40890) omnetpp_r_base. cpu=12 start=3.26 finish=665.76
40866) sh cpu=9 start=3.25 finish=665.49
40876) bash cpu=13 start=3.26 finish=665.49
40892) omnetpp_r_base. cpu=13 start=3.26 finish=665.47
40868) sh cpu=14 start=3.25 finish=666.85
40877) bash cpu=14 start=3.26 finish=666.85
40893) omnetpp_r_base. cpu=14 start=3.26 finish=666.82
40870) sh cpu=14 start=3.26 finish=667.86
40878) bash cpu=15 start=3.26 finish=667.86
40894) omnetpp_r_base. cpu=15 start=3.26 finish=667.85
