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
