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