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

Topdown profile shows a high retirement rate with short periods of backend bound. It also shows higher than normal branch misprediction.

AMD metrics show a large number of branches, not much L2 access.

elapsed              371.223
on_cpu               0.896          # 14.33 / 16 cores
utime                5301.865
stime                18.001
nvcsw                10370          # 17.91%
nivcsw               47532          # 82.09%
inblock              0              # 0.00/sec
onblock              493496         # 1329.38/sec
cpu-clock            5320047906701  # 5320.048 seconds
task-clock           5320074769301  # 5320.075 seconds
page faults          5459466        # 1026.201/sec
context switches     57229          # 10.757/sec
cpu migrations       185            # 0.035/sec
major page faults    1439           # 0.270/sec
minor page faults    5458027        # 1025.931/sec
alignment faults     0              # 0.000/sec
emulation faults     0              # 0.000/sec
branches             8454570179881  # 182.276 branches per 1000 inst
branch misses        75411585767    # 0.89% branch miss
conditional          8124558626962  # 175.161 conditional branches per 1000 inst
indirect             8694767325     # 0.187 indirect branches per 1000 inst
cpu-cycles           21192834540990 # 3.63 GHz
instructions         46388803894448 # 2.19 IPC
slots                42385231849734 #
retiring             14329148354545 # 33.8% (56.0%) high
-- ucode             251053747      #     0.0%
-- fastpath          14328897300798 #    33.8%
frontend             2841163137830  #  6.7% (11.1%)
-- latency           1593122069814  #     3.8%
-- bandwidth         1248041068016  #     2.9%
backend              6452022137302  # 15.2% (25.2%)
-- cpu               3524539608501  #     8.3%
-- memory            2927482528801  #     6.9%
speculation          1961676278585  #  4.6% ( 7.7%)
-- branch mispredict 1946164368946  #     4.6%
-- pipeline restart  15511909639    #     0.0%
smt-contention       16801162764112 # 39.6% ( 0.0%)
cpu-cycles           20996638297565 # 3.85 GHz
instructions         46389036286138 # 2.21 IPC
instructions         15458610985360 # 11.978 l2 access per 1000 inst
l2 hit from l1       83102477730    # 6.13% l2 miss
l2 miss from l1      2867022134     #
l2 hit from l2 pf    93572754615    #
l3 hit from l2 pf    4342178823     #
l3 miss from l2 pf   4142145101     #
instructions         15459233449809 # 149.855 float per 1000 inst
float 512            234            # 0.000 AVX-512 per 1000 inst
float 256            16966          # 0.000 AVX-256 per 1000 inst
float 128            2316635779894  # 149.855 AVX-128 per 1000 inst
float MMX            0              # 0.000 MMX per 1000 inst
float scalar         1              # 0.000 scalar per 1000 inst
instructions         46381069755520 #
opcache              6422257727641  # 138.467 opcache per 1000 inst
opcache miss         9631990405     #  0.1% opcache miss rate
l1 dTLB miss         91943963321    # 1.982 L1 dTLB per 1000 inst
l2 dTLB miss         2682643698     # 0.058 L2 dTLB per 1000 inst
instructions         46381020206518 #
icache               17841044731    # 0.385 icache per 1000 inst
icache miss          2571776549     # 14.4% icache miss rate
l1 iTLB miss         161510630      # 0.003 L1 iTLB per 1000 inst
l2 iTLB miss         0              # 0.000 L2 iTLB per 1000 inst
tlb flush            62101          # 0.000 TLB flush per 1000 inst

Process overview shows time predominantly spent in imagick_r_base.

689 processes
	 48 imagick_r_base.       5259.95    13.00
	 71 specperl                 8.46     1.40
	 48 imagevalidate_5          2.04     0.46
	  2 clang                    0.00     0.02
	 11 ps                       0.00     0.01
	  1 lsb_release              0.00     0.01
	224 sh                       0.00     0.00
	 54 specrxp                  0.00     0.00
	 48 bash                     0.00     0.00
	 41 specinvoke               0.00     0.00
	 22 cat                      0.00     0.00
	 21 grep                     0.00     0.00
	 12 uniq                     0.00     0.00
	 11 sort                     0.00     0.00
	 10 expand                   0.00     0.00
	  7 specmake                 0.00     0.00
	  6 pwd                      0.00     0.00
	  5 basename                 0.00     0.00
	  5 systemctl                0.00     0.00
	  4 rm                       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 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 is used to launch separate copies on each logical core

    446774) specinvoke       cpu=13 start=3.67  finish=114.84
      446776) sh               cpu=11 start=3.67  finish=113.30
        446783) bash             cpu=0 start=3.67  finish=113.30
          446806) imagick_r_base.  cpu=0 start=3.67  finish=113.27
      446777) sh               cpu=11 start=3.67  finish=113.58
        446784) bash             cpu=1 start=3.67  finish=113.58
          446808) imagick_r_base.  cpu=1 start=3.67  finish=113.54
      446778) sh               cpu=10 start=3.67  finish=113.03
        446786) bash             cpu=2 start=3.67  finish=113.03
          446807) imagick_r_base.  cpu=2 start=3.67  finish=113.00
      446779) sh               cpu=0 start=3.67  finish=113.98
        446787) bash             cpu=3 start=3.67  finish=113.98
          446812) imagick_r_base.  cpu=3 start=3.67  finish=113.95
      446780) sh               cpu=4 start=3.67  finish=111.56
        446793) bash             cpu=4 start=3.67  finish=111.56
          446813) imagick_r_base.  cpu=4 start=3.67  finish=111.52
      446781) sh               cpu=5 start=3.67  finish=113.57
        446791) bash             cpu=5 start=3.67  finish=113.57
          446815) imagick_r_base.  cpu=5 start=3.67  finish=113.54
      446782) sh               cpu=5 start=3.67  finish=114.78
        446789) bash             cpu=6 start=3.67  finish=114.78
          446811) imagick_r_base.  cpu=6 start=3.67  finish=114.74
      446785) sh               cpu=12 start=3.67  finish=113.72
        446794) bash             cpu=7 start=3.67  finish=113.72
          446814) imagick_r_base.  cpu=7 start=3.67  finish=113.69
      446788) sh               cpu=8 start=3.67  finish=113.11
        446797) bash             cpu=8 start=3.67  finish=113.11
          446817) imagick_r_base.  cpu=8 start=3.67  finish=113.06
      446790) sh               cpu=8 start=3.67  finish=114.36
        446799) bash             cpu=9 start=3.67  finish=114.36
          446816) imagick_r_base.  cpu=9 start=3.67  finish=114.34
      446792) sh               cpu=12 start=3.67  finish=113.03
        446802) bash             cpu=10 start=3.67  finish=113.03
          446818) imagick_r_base.  cpu=10 start=3.67  finish=112.99
      446795) sh               cpu=2 start=3.67  finish=113.16
        446803) bash             cpu=11 start=3.67  finish=113.16
          446823) imagick_r_base.  cpu=11 start=3.67  finish=113.11
      446796) sh               cpu=4 start=3.67  finish=112.97
        446804) bash             cpu=12 start=3.67  finish=112.97
          446819) imagick_r_base.  cpu=12 start=3.67  finish=112.94
      446798) sh               cpu=12 start=3.67  finish=113.33
        446805) bash             cpu=13 start=3.67  finish=113.33
          446822) imagick_r_base.  cpu=13 start=3.67  finish=113.30
      446800) sh               cpu=15 start=3.67  finish=114.84
        446809) bash             cpu=14 start=3.67  finish=114.84
          446821) imagick_r_base.  cpu=14 start=3.67  finish=114.81
      446801) sh               cpu=15 start=3.67  finish=113.91
        446810) bash             cpu=15 start=3.67  finish=113.91
          446820) imagick_r_base.  cpu=15 start=3.67  finish=113.89