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