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

Topdown profile shows a backend bound application.

AMD metrics confirm almost 200 L2 accesses per 1000 instructions and over 35% miss rate.

elapsed              2913.604
on_cpu               0.989          # 15.82 / 16 cores
utime                45952.410
stime                146.539
nvcsw                60191          # 11.00%
nivcsw               486901         # 89.00%
inblock              0              # 0.00/sec
onblock              23672          # 8.12/sec
cpu-clock            46110694195743 # 46110.694 seconds
task-clock           46111603372414 # 46111.603 seconds
page faults          27680650       # 600.297/sec
context switches     546536         # 11.852/sec
cpu migrations       206            # 0.004/sec
major page faults    736            # 0.016/sec
minor page faults    27679914       # 600.281/sec
alignment faults     0              # 0.000/sec
emulation faults     0              # 0.000/sec
branches             2529052541972  # 76.566 branches per 1000 inst
branch misses        10962054534    # 0.43% branch miss
conditional          1893553882793  # 57.327 conditional branches per 1000 inst
indirect             220110756070   # 6.664 indirect branches per 1000 inst
cpu-cycles           209575823621539 # 4.45 GHz
instructions         33028652913423 # 0.16 IPC low
slots                419100802566912 #
retiring             11541439578728 #  2.8% ( 2.8%) low
-- ucode             2996339981     #     0.0%
-- fastpath          11538443238747 #     2.8%
frontend             9239383775568  #  2.2% ( 2.3%) low
-- latency           7530373522626  #     1.8%
-- bandwidth         1709010252942  #     0.4%
backend              389455334744808 # 92.9% (94.9%) high
-- cpu               30852021068967 #     7.4%
-- memory            358603313675841 #    85.6%
speculation          311627888135   #  0.1% ( 0.1%) low
-- branch mispredict 194460337886   #     0.0%
-- pipeline restart  117167550249   #     0.0%
smt-contention       8552850550540  #  2.0% ( 0.0%)
cpu-cycles           208979424152334 # 4.46 GHz
instructions         33022374135409 # 0.16 IPC low
instructions         11010464374416 # 196.455 l2 access per 1000 inst
l2 hit from l1       1690964709861  # 36.36% l2 miss
l2 miss from l1      463953169216   #
l2 hit from l2 pf    149577757193   #
l3 hit from l2 pf    137767015603   #
l3 miss from l2 pf   184753487636   #
instructions         11009639724002 # 129.670 float per 1000 inst
float 512            178            # 0.000 AVX-512 per 1000 inst
float 256            9876442032     # 0.897 AVX-256 per 1000 inst
float 128            1417741198942  # 128.773 AVX-128 per 1000 inst
float MMX            0              # 0.000 MMX per 1000 inst
float scalar         1              # 0.000 scalar per 1000 inst
instructions         33019001845309 #
opcache              4407926813123  # 133.497 opcache per 1000 inst
opcache miss         193858813401   #  4.4% opcache miss rate
l1 dTLB miss         1096430967354  # 33.206 L1 dTLB per 1000 inst
l2 dTLB miss         99268449419    # 3.006 L2 dTLB per 1000 inst
instructions         33019153737204 #
icache               248333528124   # 7.521 icache per 1000 inst
icache miss          53829148554    # 21.7% icache miss rate
l1 iTLB miss         421656863      # 0.013 L1 iTLB per 1000 inst
l2 iTLB miss         0              # 0.000 L2 iTLB per 1000 inst
tlb flush            296659         # 0.000 TLB flush per 1000 inst

Process overview shows time spent in roms_r_base.mev

581 processes
	 48 roms_r_base.mev      46122.14   129.71
	 69 specperl                26.28     5.91
	  1 flang                    0.01     0.00
	  1 lsb_release              0.01     0.00
	 11 ps                       0.00     0.02
	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 launches separate copies on each logical core.

    461157) specinvoke       cpu=8 start=3.29  finish=970.82
      461159) sh               cpu=0 start=3.29  finish=963.96
        461164) bash             cpu=0 start=3.29  finish=963.96
          461188) roms_r_base.mev  cpu=0 start=3.29  finish=963.71
      461160) sh               cpu=11 start=3.29  finish=970.82
        461168) bash             cpu=1 start=3.29  finish=970.82
          461194) roms_r_base.mev  cpu=1 start=3.30  finish=970.77
      461161) sh               cpu=5 start=3.29  finish=970.29
        461170) bash             cpu=2 start=3.29  finish=970.29
          461191) roms_r_base.mev  cpu=2 start=3.30  finish=970.22
      461162) sh               cpu=3 start=3.29  finish=967.90
        461172) bash             cpu=3 start=3.29  finish=967.90
          461199) roms_r_base.mev  cpu=3 start=3.30  finish=967.76
      461163) sh               cpu=8 start=3.29  finish=967.84
        461174) bash             cpu=4 start=3.29  finish=967.84
          461196) roms_r_base.mev  cpu=4 start=3.30  finish=967.66
      461165) sh               cpu=15 start=3.29  finish=969.88
        461173) bash             cpu=5 start=3.29  finish=969.88
          461195) roms_r_base.mev  cpu=5 start=3.30  finish=969.75
      461166) sh               cpu=6 start=3.29  finish=969.56
        461171) bash             cpu=6 start=3.29  finish=969.55
          461193) roms_r_base.mev  cpu=6 start=3.30  finish=969.46
      461167) sh               cpu=4 start=3.29  finish=970.25
        461176) bash             cpu=7 start=3.29  finish=970.25
          461197) roms_r_base.mev  cpu=7 start=3.30  finish=970.17
      461169) sh               cpu=0 start=3.29  finish=966.43
        461179) bash             cpu=8 start=3.29  finish=966.43
          461198) roms_r_base.mev  cpu=8 start=3.30  finish=966.27
      461175) sh               cpu=15 start=3.29  finish=970.28
        461182) bash             cpu=9 start=3.29  finish=970.28
          461200) roms_r_base.mev  cpu=9 start=3.30  finish=970.18
      461177) sh               cpu=11 start=3.29  finish=968.03
        461185) bash             cpu=10 start=3.29  finish=968.03
          461201) roms_r_base.mev  cpu=10 start=3.30  finish=967.85
      461178) sh               cpu=0 start=3.29  finish=966.25
        461186) bash             cpu=11 start=3.29  finish=966.25
          461203) roms_r_base.mev  cpu=11 start=3.30  finish=966.01
      461180) sh               cpu=10 start=3.29  finish=968.99
        461187) bash             cpu=12 start=3.29  finish=968.99
          461202) roms_r_base.mev  cpu=12 start=3.30  finish=968.87
      461181) sh               cpu=10 start=3.29  finish=969.91
        461189) bash             cpu=13 start=3.29  finish=969.91
          461204) roms_r_base.mev  cpu=13 start=3.30  finish=969.81
      461183) sh               cpu=8 start=3.29  finish=968.30
        461190) bash             cpu=14 start=3.30  finish=968.30
          461206) roms_r_base.mev  cpu=14 start=3.30  finish=968.15
      461184) sh               cpu=3 start=3.29  finish=969.02
        461192) bash             cpu=15 start=3.30  finish=969.02
          461205) roms_r_base.mev  cpu=15 start=3.30  finish=968.87