parest 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 with several transition periods.

AMD metrics for 7840 processor confirm topdown memory bound workload. Approximately 100 L2 accesses but a 35% L2 miss rate.

elapsed              4550.517
on_cpu               0.987          # 15.80 / 16 cores
utime                71807.447
stime                70.527
nvcsw                97192          # 12.30%
nivcsw               693175         # 87.70%
inblock              0              # 0.00/sec
onblock              76808          # 16.88/sec
cpu-clock            71894556471080 # 71894.556 seconds
task-clock           71895682964243 # 71895.683 seconds
page faults          15322746       # 213.125/sec
context switches     788968         # 10.974/sec
cpu migrations       575            # 0.008/sec
major page faults    3608           # 0.050/sec
minor page faults    15319138       # 213.075/sec
alignment faults     0              # 0.000/sec
emulation faults     0              # 0.000/sec
branches             9946444006569  # 106.362 branches per 1000 inst
branch misses        158093543610   # 1.59% branch miss
conditional          8506498396961  # 90.964 conditional branches per 1000 inst
indirect             303832503081   # 3.249 indirect branches per 1000 inst
cpu-cycles           323469504283127 # 4.41 GHz
instructions         93523365819643 # 0.29 IPC low
slots                646833742714674 #
retiring             31158742609143 #  4.8% ( 5.8%) low
-- ucode             44362326367    #     0.0%
-- fastpath          31114380282776 #     4.8%
frontend             22505474246514 #  3.5% ( 4.2%) low
-- latency           12087807418272 #     1.9%
-- bandwidth         10417666828242 #     1.6%
backend              479910375744452 # 74.2% (89.7%) high
-- cpu               44026151893931 #     6.8%
-- memory            435884223850521 #    67.4%
speculation          1582705091260  #  0.2% ( 0.3%) low
-- branch mispredict 1526293395642  #     0.2%
-- pipeline restart  56411695618    #     0.0%
smt-contention       111676232212003 # 17.3% ( 0.0%)
cpu-cycles           322909243440924 # 4.41 GHz
instructions         93529964190307 # 0.29 IPC low
instructions         31187453335685 # 93.116 l2 access per 1000 inst
l2 hit from l1       2031473661222  # 34.77% l2 miss
l2 miss from l1      363444129199   #
l2 hit from l2 pf    226198887767   #
l3 hit from l2 pf    141275266043   #
l3 miss from l2 pf   505093333915   #
instructions         31162917306696 # 338.504 float per 1000 inst
float 512            465            # 0.000 AVX-512 per 1000 inst
float 256            6475912        # 0.000 AVX-256 per 1000 inst
float 128            10548758414246 # 338.504 AVX-128 per 1000 inst
float MMX            0              # 0.000 MMX per 1000 inst
float scalar         0              # 0.000 scalar per 1000 inst
instructions         93509220691832 #
opcache              12838123147590 # 137.293 opcache per 1000 inst
opcache miss         185854581876   #  1.4% opcache miss rate
l1 dTLB miss         94458089967    # 1.010 L1 dTLB per 1000 inst
l2 dTLB miss         7505584655     # 0.080 L2 dTLB per 1000 inst
instructions         93521241174553 #
icache               277631017236   # 2.969 icache per 1000 inst
icache miss          64769736080    # 23.3% icache miss rate
l1 iTLB miss         2459809558     # 0.026 L1 iTLB per 1000 inst
l2 iTLB miss         0              # 0.000 L2 iTLB per 1000 inst
tlb flush            1618639        # 0.000 TLB flush per 1000 inst

The process overview shows parest_r_base.m as the primary process.

1064 processes
	 32 parest_r_base.m      47764.64    29.12
	334 specperl                43.05     7.08
	 10 ps                       0.01     0.01
	  1 lsb_release              0.01     0.00
	 33 specinvoke               0.00     0.05
	  1 clang++                  0.00     0.01
	428 sh                       0.00     0.00
	 32 bash                     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 specrxp                  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
53 processes running
53 maximum processes

specinvoke fires up separate processes on each core.

    392467) specinvoke       cpu=2 start=3.38  finish=1513.77
      392469) sh               cpu=10 start=3.38  finish=1507.68
        392476) bash             cpu=0 start=3.38  finish=1507.68
          392502) parest_r_base.m  cpu=0 start=3.38  finish=1507.65
      392470) sh               cpu=0 start=3.38  finish=1511.12
        392481) bash             cpu=1 start=3.38  finish=1511.12
          392507) parest_r_base.m  cpu=1 start=3.38  finish=1511.09
      392471) sh               cpu=12 start=3.38  finish=1477.99
        392479) bash             cpu=2 start=3.38  finish=1477.99
          392505) parest_r_base.m  cpu=2 start=3.38  finish=1477.94
      392472) sh               cpu=0 start=3.38  finish=1512.29
        392478) bash             cpu=3 start=3.38  finish=1512.29
          392501) parest_r_base.m  cpu=3 start=3.38  finish=1512.26
      392473) sh               cpu=12 start=3.38  finish=1476.53
        392483) bash             cpu=4 start=3.38  finish=1476.53
          392503) parest_r_base.m  cpu=4 start=3.38  finish=1476.48
      392474) sh               cpu=0 start=3.38  finish=1513.76
        392485) bash             cpu=5 start=3.38  finish=1513.76
          392504) parest_r_base.m  cpu=5 start=3.38  finish=1513.74
      392475) sh               cpu=4 start=3.38  finish=1492.40
        392486) bash             cpu=6 start=3.38  finish=1492.40
          392506) parest_r_base.m  cpu=6 start=3.38  finish=1492.36
      392477) sh               cpu=10 start=3.38  finish=1504.26
        392488) bash             cpu=7 start=3.38  finish=1504.26
          392508) parest_r_base.m  cpu=7 start=3.38  finish=1504.23
      392480) sh               cpu=6 start=3.38  finish=1507.65
        392491) bash             cpu=8 start=3.38  finish=1507.65
          392509) parest_r_base.m  cpu=8 start=3.38  finish=1507.62
      392482) sh               cpu=14 start=3.38  finish=1511.41
        392494) bash             cpu=9 start=3.38  finish=1511.41
          392515) parest_r_base.m  cpu=9 start=3.39  finish=1511.39
      392484) sh               cpu=10 start=3.38  finish=1479.81
        392495) bash             cpu=10 start=3.38  finish=1479.81
          392510) parest_r_base.m  cpu=10 start=3.39  finish=1479.77
      392487) sh               cpu=9 start=3.38  finish=1512.24
        392496) bash             cpu=11 start=3.38  finish=1512.24
          392511) parest_r_base.m  cpu=11 start=3.39  finish=1512.21
      392489) sh               cpu=12 start=3.38  finish=1474.79
        392497) bash             cpu=12 start=3.38  finish=1474.79
          392512) parest_r_base.m  cpu=12 start=3.39  finish=1474.73
      392490) sh               cpu=15 start=3.38  finish=1513.68
        392498) bash             cpu=13 start=3.38  finish=1513.68
          392513) parest_r_base.m  cpu=13 start=3.39  finish=1513.65
      392492) sh               cpu=10 start=3.38  finish=1486.93
        392499) bash             cpu=14 start=3.38  finish=1486.93
          392514) parest_r_base.m  cpu=14 start=3.39  finish=1486.88
      392493) sh               cpu=10 start=3.38  finish=1502.00
        392500) bash             cpu=15 start=3.38  finish=1502.00
          392516) parest_r_base.m  cpu=15 start=3.39  finish=1501.95