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

Topdown profile shows a higher retirement rate with some frontend stalls.

AMD metrics on 7840 confirm a high frontend stalls. Almost no L2 access and a higher amount of floating point for a specint benchmark. Also many conditional branches.
elapsed 557.819
on_cpu 0.985 # 15.77 / 16 cores
utime 8791.937
stime 3.393
nvcsw 13463 # 14.26%
nivcsw 80950 # 85.74%
inblock 0 # 0.00/sec
onblock 13256 # 23.76/sec
cpu-clock 8795402064565 # 8795.402 seconds
task-clock 8795445283596 # 8795.445 seconds
page faults 624893 # 71.047/sec
context switches 93851 # 10.670/sec
cpu migrations 147 # 0.017/sec
major page faults 1009 # 0.115/sec
minor page faults 623884 # 70.933/sec
alignment faults 0 # 0.000/sec
emulation faults 0 # 0.000/sec
branches 11217717609323 # 165.361 branches per 1000 inst
branch misses 145504068187 # 1.30% branch miss
conditional 10697240158366 # 157.689 conditional branches per 1000 inst
indirect 69326381734 # 1.022 indirect branches per 1000 inst
cpu-cycles 35854583839515 # 3.99 GHz
instructions 67837522004252 # 1.89 IPC
slots 71717533143000 #
retiring 23163952966436 # 32.3% (46.4%)
-- ucode 259468890 # 0.0%
-- fastpath 23163693497546 # 32.3%
frontend 18418772344064 # 25.7% (36.9%)
-- latency 8637724239246 # 12.0%
-- bandwidth 9781048104818 # 13.6%
backend 7099767779884 # 9.9% (14.2%) low
-- cpu 3272086047054 # 4.6%
-- memory 3827681732830 # 5.3%
speculation 1281839646420 # 1.8% ( 2.6%)
-- branch mispredict 1276995326057 # 1.8%
-- pipeline restart 4844320363 # 0.0%
smt-contention 21753082387430 # 30.3% ( 0.0%)
cpu-cycles 35884277065587 # 4.00 GHz
instructions 67837542981099 # 1.89 IPC
instructions 22616818444610 # 0.827 l2 access per 1000 inst
l2 hit from l1 18636602936 # 0.76% l2 miss
l2 miss from l1 110746788 #
l2 hit from l2 pf 33961066 #
l3 hit from l2 pf 19084265 #
l3 miss from l2 pf 12431161 #
instructions 22610660127757 # 126.182 float per 1000 inst
float 512 193 # 0.000 AVX-512 per 1000 inst
float 256 7254 # 0.000 AVX-256 per 1000 inst
float 128 2853049989985 # 126.182 AVX-128 per 1000 inst
float MMX 0 # 0.000 MMX per 1000 inst
float scalar 31 # 0.000 scalar per 1000 inst
instructions 67837487855656 #
opcache 13230204734504 # 195.028 opcache per 1000 inst
opcache miss 207974013352 # 1.6% opcache miss rate
l1 dTLB miss 580068533 # 0.009 L1 dTLB per 1000 inst
l2 dTLB miss 26646136 # 0.000 L2 dTLB per 1000 inst
instructions 67837507613280 #
icache 289194679273 # 4.263 icache per 1000 inst
icache miss 51247209309 # 17.7% icache miss rate
l1 iTLB miss 884245096 # 0.013 L1 iTLB per 1000 inst
l2 iTLB miss 0 # 0.000 L2 iTLB per 1000 inst
tlb flush 57707 # 0.000 TLB flush per 1000 inst
Process summary shows time spent in exchange2_r_bas
581 processes
48 exchange2_r_bas 8758.33 0.49
69 specperl 7.61 1.29
1 flang 0.01 0.00
1 lsb_release 0.01 0.00
11 ps 0.00 0.03
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 processor
63700) specinvoke cpu=13 start=3.09 finish=186.40
63702) sh cpu=10 start=3.10 finish=185.68
63708) bash cpu=0 start=3.10 finish=185.68
63737) exchange2_r_bas cpu=0 start=3.10 finish=185.68
63703) sh cpu=1 start=3.10 finish=185.77
63710) bash cpu=1 start=3.10 finish=185.77
63734) exchange2_r_bas cpu=1 start=3.10 finish=185.77
63704) sh cpu=2 start=3.10 finish=185.21
63716) bash cpu=2 start=3.10 finish=185.21
63735) exchange2_r_bas cpu=2 start=3.10 finish=185.21
63705) sh cpu=3 start=3.10 finish=185.40
63719) bash cpu=3 start=3.10 finish=185.40
63738) exchange2_r_bas cpu=3 start=3.10 finish=185.40
63706) sh cpu=6 start=3.10 finish=185.58
63720) bash cpu=4 start=3.10 finish=185.58
63742) exchange2_r_bas cpu=4 start=3.10 finish=185.57
63707) sh cpu=6 start=3.10 finish=185.31
63715) bash cpu=5 start=3.10 finish=185.31
63740) exchange2_r_bas cpu=5 start=3.10 finish=185.31
63709) sh cpu=12 start=3.10 finish=185.05
63722) bash cpu=6 start=3.10 finish=185.05
63739) exchange2_r_bas cpu=6 start=3.10 finish=185.05
63711) sh cpu=2 start=3.10 finish=185.41
63718) bash cpu=7 start=3.10 finish=185.41
63736) exchange2_r_bas cpu=7 start=3.10 finish=185.41
63712) sh cpu=12 start=3.10 finish=185.21
63726) bash cpu=8 start=3.10 finish=185.21
63747) exchange2_r_bas cpu=8 start=3.10 finish=185.21
63713) sh cpu=15 start=3.10 finish=186.40
63725) bash cpu=9 start=3.10 finish=186.40
63741) exchange2_r_bas cpu=9 start=3.10 finish=186.40
63714) sh cpu=13 start=3.10 finish=185.39
63728) bash cpu=10 start=3.10 finish=185.39
63744) exchange2_r_bas cpu=10 start=3.10 finish=185.39
63717) sh cpu=10 start=3.10 finish=185.51
63729) bash cpu=11 start=3.10 finish=185.51
63743) exchange2_r_bas cpu=11 start=3.10 finish=185.51
63721) sh cpu=12 start=3.10 finish=185.02
63730) bash cpu=12 start=3.10 finish=185.02
63745) exchange2_r_bas cpu=12 start=3.10 finish=185.02
63723) sh cpu=8 start=3.10 finish=185.28
63731) bash cpu=13 start=3.10 finish=185.28
63749) exchange2_r_bas cpu=13 start=3.10 finish=185.28
63724) sh cpu=13 start=3.10 finish=185.44
63732) bash cpu=14 start=3.10 finish=185.44
63746) exchange2_r_bas cpu=14 start=3.10 finish=185.44
63727) sh cpu=15 start=3.10 finish=185.38
63733) bash cpu=15 start=3.10 finish=185.38
63748) exchange2_r_bas cpu=15 start=3.10 finish=185.38
