SPEC(R) CPU2017 Integer Rate Result Dell Inc. PowerEdge R7425 (AMD EPYC 7401, 2.00GHz) CPU2017 License: 55 Test date: Mar-2019 Test sponsor: Dell Inc. Hardware availability: Jan-2019 Tested by: Dell Inc. Software availability: Feb-2019 Base Base Base Peak Peak Peak Benchmarks Copies Run Time Rate Copies Run Time Rate --------------- ------- --------- --------- ------- --------- --------- 500.perlbench_r 96 855 179 S 96 825 185 * 500.perlbench_r 96 863 177 S 96 824 186 S 500.perlbench_r 96 862 177 * 96 830 184 S 502.gcc_r 96 645 211 S 96 553 246 S 502.gcc_r 96 642 212 S 96 553 246 S 502.gcc_r 96 642 212 * 96 553 246 * 505.mcf_r 96 495 313 S 96 495 313 S 505.mcf_r 96 493 315 * 96 493 315 * 505.mcf_r 96 492 315 S 96 492 315 S 520.omnetpp_r 96 980 128 S 96 918 137 S 520.omnetpp_r 96 978 129 * 96 918 137 * 520.omnetpp_r 96 976 129 S 96 921 137 S 523.xalancbmk_r 96 482 210 S 96 414 245 S 523.xalancbmk_r 96 481 211 * 96 414 245 * 523.xalancbmk_r 96 480 211 S 96 417 243 S 525.x264_r 96 317 531 S 96 313 538 S 525.x264_r 96 317 531 * 96 313 537 S 525.x264_r 96 317 530 S 96 313 537 * 531.deepsjeng_r 96 468 235 * 96 465 237 S 531.deepsjeng_r 96 468 235 S 96 467 235 S 531.deepsjeng_r 96 467 236 S 96 466 236 * 541.leela_r 96 784 203 S 96 754 211 * 541.leela_r 96 767 207 * 96 754 211 S 541.leela_r 96 758 210 S 96 754 211 S 548.exchange2_r 96 416 604 S 96 416 604 S 548.exchange2_r 96 425 592 * 96 425 592 * 548.exchange2_r 96 425 591 S 96 425 591 S 557.xz_r 96 666 156 S 96 666 156 S 557.xz_r 96 661 157 S 96 661 157 S 557.xz_r 96 662 157 * 96 662 157 * ================================================================================= 500.perlbench_r 96 862 177 * 96 825 185 * 502.gcc_r 96 642 212 * 96 553 246 * 505.mcf_r 96 493 315 * 96 493 315 * 520.omnetpp_r 96 978 129 * 96 918 137 * 523.xalancbmk_r 96 481 211 * 96 414 245 * 525.x264_r 96 317 531 * 96 313 537 * 531.deepsjeng_r 96 468 235 * 96 466 236 * 541.leela_r 96 767 207 * 96 754 211 * 548.exchange2_r 96 425 592 * 96 425 592 * 557.xz_r 96 662 157 * 96 662 157 * SPECrate2017_int_base 245 SPECrate2017_int_peak 256 HARDWARE -------- CPU Name: AMD EPYC 7401 Max MHz.: 3000 Nominal: 2000 Enabled: 48 cores, 2 chips, 2 threads/core Orderable: 1,2 chips Cache L1: 64 KB I + 32 KB D on chip per core L2: 512 KB I+D on chip per core L3: 64 MB I+D on chip per chip, 8 MB shared / 3 cores Other: None Memory: 1 TB (16 x 64 GB 4Rx4 PC4-2666V-L) Storage: 1 x 120 GB SATA SSD Other: None SOFTWARE -------- OS: Ubuntu 18.04.2 LTS kernel 4.15.0-45-generic 4.15.0-45-generic Compiler: C/C++: Version 1.3.0 of AOCC Fortran: Version 4.8.2 of GCC Parallel: No Firmware: Version 1.7.6 released Jan-2019 File System: ext4 System State: Run level 5 (multi-user) Base Pointers: 64-bit Peak Pointers: 32/64-bit Other: jemalloc: jemalloc memory allocator library V5.1.0 Compiler Notes -------------- The AMD64 AOCC Compiler Suite is available at http://developer.amd.com/amd-aocc/ The AOCC Gold Linker plugin was installed and used for the link stage. The AOCC Fortran Plugin version 1.3.0 was used to leverage AOCC optimizers with gfortran. It is available here: http://developer.amd.com/amd-aocc/ Submit Notes ------------ The config file option 'submit' was used. 'numactl' was used to bind copies to the cores. See the configuration file for details. Operating System Notes ---------------------- 'ulimit -s unlimited' was used to set environment stack size 'ulimit -l 2097152' was used to set environment locked pages in memory limit runspec command invoked through numactl i.e.: numactl --interleave=all runspec Set dirty_ratio=8 to limit dirty cache to 8% of memory Set swappiness=1 to swap only if necessary Set zone_reclaim_mode=1 to free local node memory and avoid remote memory sync then drop_caches=3 to reset caches before invoking runcpu dirty_ratio, swappiness, zone_reclaim_mode and drop_caches were all set using privileged echo (e.g. echo 1 > /proc/sys/vm/swappiness). Transparent huge pages were enabled for this run (OS default) General Notes ------------- Environment variables set by runcpu before the start of the run: LD_LIBRARY_PATH = "/home/cpu2017-1.0.5/amd1812na_rate_revA_lib/64;/home/cpu2017-1.0.5/amd1812na_rate_revA_lib/32:" Binaries were compiled on a system with 2 x AMD EPYC 7601 CPU + 512GB Memory using RHEL 7.6 NA: The test sponsor attests, as of date of publication, that CVE-2017-5754 (Meltdown) is mitigated in the system as tested and documented. Yes: The test sponsor attests, as of date of publication, that CVE-2017-5753 (Spectre variant 1) is mitigated in the system as tested and documented. Yes: The test sponsor attests, as of date of publication, that CVE-2017-5715 (Spectre variant 2) is mitigated in the system as tested and documented. jemalloc: configured and built with GCC v4.8.5 in RHEL v7.2 under default conditions. jemalloc: sources available from jemalloc.net or https://github.com/jemalloc/jemalloc/releases jemalloc uses environment variable MALLOC_CONF with values narenas and lg_chunk: narenas: sets the maximum number of arenas to use for automatic multiplexing of threads and arenas. lg_chunk: set the virtual memory chunk size (log base 2). For example, lg_chunk:21 sets the default chunk size to 2^21 = 2MiB Platform Notes -------------- BIOS settings: Determinism Slider set to Power Determinism Sysinfo program /home/cpu2017-1.0.5/bin/sysinfo Rev: r5974 of 2018-05-19 9bcde8f2999c33d61f64985e45859ea9 running on r7425 Wed Mar 13 13:49:46 2019 SUT (System Under Test) info as seen by some common utilities. For more information on this section, see https://www.spec.org/cpu2017/Docs/config.html#sysinfo From /proc/cpuinfo model name : AMD EPYC 7401 24-Core Processor 2 "physical id"s (chips) 96 "processors" cores, siblings (Caution: counting these is hw and system dependent. The following excerpts from /proc/cpuinfo might not be reliable. Use with caution.) cpu cores : 24 siblings : 48 physical 0: cores 0 1 8 9 10 12 13 14 16 17 18 20 21 22 24 25 26 28 29 30 physical 1: cores 0 1 8 9 10 12 13 14 16 17 18 20 21 22 24 25 26 28 29 30 From lscpu: Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 96 On-line CPU(s) list: 0-95 Thread(s) per core: 2 Core(s) per socket: 24 Socket(s): 2 NUMA node(s): 8 Vendor ID: AuthenticAMD CPU family: 23 Model: 1 Model name: AMD EPYC 7401 24-Core Processor Stepping: 2 CPU MHz: 2402.632 BogoMIPS: 3992.29 Virtualization: AMD-V L1d cache: 32K L1i cache: 64K L2 cache: 512K L3 cache: 8192K NUMA node0 CPU(s): 0,8,16,24,32,40,48,56,64,72,80,88 NUMA node1 CPU(s): 2,10,18,26,34,42,50,58,66,74,82,90 NUMA node2 CPU(s): 4,12,20,28,36,44,52,60,68,76,84,92 NUMA node3 CPU(s): 6,14,22,30,38,46,54,62,70,78,86,94 NUMA node4 CPU(s): 1,9,17,25,33,41,49,57,65,73,81,89 NUMA node5 CPU(s): 3,11,19,27,35,43,51,59,67,75,83,91 NUMA node6 CPU(s): 5,13,21,29,37,45,53,61,69,77,85,93 NUMA node7 CPU(s): 7,15,23,31,39,47,55,63,71,79,87,95 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid amd_dcm aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb hw_pstate sme ssbd ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif overflow_recov succor smca /proc/cpuinfo cache data cache size : 512 KB From numactl --hardware WARNING: a numactl 'node' might or might not correspond to a physical chip. available: 8 nodes (0-7) node 0 cpus: 0 8 16 24 32 40 48 56 64 72 80 88 node 0 size: 128638 MB node 0 free: 128472 MB node 1 cpus: 2 10 18 26 34 42 50 58 66 74 82 90 node 1 size: 128999 MB node 1 free: 128857 MB node 2 cpus: 4 12 20 28 36 44 52 60 68 76 84 92 node 2 size: 129020 MB node 2 free: 128892 MB node 3 cpus: 6 14 22 30 38 46 54 62 70 78 86 94 node 3 size: 129020 MB node 3 free: 128848 MB node 4 cpus: 1 9 17 25 33 41 49 57 65 73 81 89 node 4 size: 129020 MB node 4 free: 128843 MB node 5 cpus: 3 11 19 27 35 43 51 59 67 75 83 91 node 5 size: 129020 MB node 5 free: 128837 MB node 6 cpus: 5 13 21 29 37 45 53 61 69 77 85 93 node 6 size: 129020 MB node 6 free: 128829 MB node 7 cpus: 7 15 23 31 39 47 55 63 71 79 87 95 node 7 size: 124986 MB node 7 free: 124799 MB node distances: node 0 1 2 3 4 5 6 7 0: 10 16 16 16 28 28 22 28 1: 16 10 16 16 28 28 28 22 2: 16 16 10 16 22 28 28 28 3: 16 16 16 10 28 22 28 28 4: 28 28 22 28 10 16 16 16 5: 28 28 28 22 16 10 16 16 6: 22 28 28 28 16 16 10 16 7: 28 22 28 28 16 16 16 10 From /proc/meminfo MemTotal: 1052392344 kB HugePages_Total: 0 Hugepagesize: 2048 kB /usr/bin/lsb_release -d Ubuntu 18.04.2 LTS From /etc/*release* /etc/*version* debian_version: buster/sid os-release: NAME="Ubuntu" VERSION="18.04.2 LTS (Bionic Beaver)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 18.04.2 LTS" VERSION_ID="18.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" uname -a: Linux r7425 4.15.0-45-generic #48-Ubuntu SMP Tue Jan 29 16:28:13 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux Kernel self-reported vulnerability status: CVE-2017-5754 (Meltdown): Not affected CVE-2017-5753 (Spectre variant 1): Mitigation: __user pointer sanitization CVE-2017-5715 (Spectre variant 2): Mitigation: Full AMD retpoline, IBPB run-level 5 Mar 13 13:44 SPEC is set to: /home/cpu2017-1.0.5 Filesystem Type Size Used Avail Use% Mounted on /dev/sda2 ext4 109G 19G 85G 19% / Additional information from dmidecode follows. WARNING: Use caution when you interpret this section. The 'dmidecode' program reads system data which is "intended to allow hardware to be accurately determined", but the intent may not be met, as there are frequent changes to hardware, firmware, and the "DMTF SMBIOS" standard. BIOS Dell Inc. 1.7.6 01/14/2019 Memory: 16x 80CE863280CE M386A8K40BM2-CTD 64 GB 4 rank 2666 16x Not Specified Not Specified (End of data from sysinfo program) Compiler Version Notes ---------------------- ============================================================================== CC 502.gcc_r(peak) ------------------------------------------------------------------------------ AOCC.LLVM.1.3.0.B34.2018_10_22 clang version 7.0.0 (CLANG: Jenkins AOCC_1_3_0_Release-Build#34) (based on LLVM AOCC.LLVM.1.3.0.B34.2018_10_22) Target: i386-unknown-linux-gnu Thread model: posix InstalledDir: /root/work/compilers/aocc1.3.0/AOCC-1.3.0-Compiler/bin ------------------------------------------------------------------------------ ============================================================================== CXXC 523.xalancbmk_r(peak) ------------------------------------------------------------------------------ AOCC.LLVM.1.3.0.B34.2018_10_22 clang version 7.0.0 (CLANG: Jenkins AOCC_1_3_0_Release-Build#34) (based on LLVM AOCC.LLVM.1.3.0.B34.2018_10_22) Target: i386-unknown-linux-gnu Thread model: posix InstalledDir: /root/work/compilers/aocc1.3.0/AOCC-1.3.0-Compiler/bin ------------------------------------------------------------------------------ ============================================================================== CC 500.perlbench_r(base) 502.gcc_r(base) 505.mcf_r(base, peak) 525.x264_r(base) 557.xz_r(base, peak) ------------------------------------------------------------------------------ AOCC.LLVM.1.3.0.B34.2018_10_22 clang version 7.0.0 (CLANG: Jenkins AOCC_1_3_0_Release-Build#34) (based on LLVM AOCC.LLVM.1.3.0.B34.2018_10_22) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /root/work/compilers/aocc1.3.0/AOCC-1.3.0-Compiler/bin ------------------------------------------------------------------------------ ============================================================================== CXXC 520.omnetpp_r(base, peak) 523.xalancbmk_r(base) 531.deepsjeng_r(base, peak) 541.leela_r(base) ------------------------------------------------------------------------------ AOCC.LLVM.1.3.0.B34.2018_10_22 clang version 7.0.0 (CLANG: Jenkins AOCC_1_3_0_Release-Build#34) (based on LLVM AOCC.LLVM.1.3.0.B34.2018_10_22) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /root/work/compilers/aocc1.3.0/AOCC-1.3.0-Compiler/bin ------------------------------------------------------------------------------ ============================================================================== CC 500.perlbench_r(peak) 525.x264_r(peak) ------------------------------------------------------------------------------ AOCC.LLVM.1.3.0.B34.2018_10_22 clang version 7.0.0 (CLANG: Jenkins AOCC_1_3_0_Release-Build#34) (based on LLVM AOCC.LLVM.1.3.0.B34.2018_10_22) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /root/work/compilers/aocc1.3.0/AOCC-1.3.0-Compiler/bin ------------------------------------------------------------------------------ ============================================================================== CXXC 541.leela_r(peak) ------------------------------------------------------------------------------ AOCC.LLVM.1.3.0.B34.2018_10_22 clang version 7.0.0 (CLANG: Jenkins AOCC_1_3_0_Release-Build#34) (based on LLVM AOCC.LLVM.1.3.0.B34.2018_10_22) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /root/work/compilers/aocc1.3.0/AOCC-1.3.0-Compiler/bin ------------------------------------------------------------------------------ ============================================================================== FC 548.exchange2_r(base, peak) ------------------------------------------------------------------------------ GNU Fortran (GCC) 4.8.2 Copyright (C) 2013 Free Software Foundation, Inc. GNU Fortran comes with NO WARRANTY, to the extent permitted by law. You may redistribute copies of GNU Fortran under the terms of the GNU General Public License. For more information about these matters, see the file named COPYING ------------------------------------------------------------------------------ Base Compiler Invocation ------------------------ C benchmarks: clang C++ benchmarks: clang++ Fortran benchmarks: clang gfortran Base Portability Flags ---------------------- 500.perlbench_r: -DSPEC_LINUX_X64 -DSPEC_LP64 502.gcc_r: -DSPEC_LP64 505.mcf_r: -DSPEC_LP64 520.omnetpp_r: -DSPEC_LP64 523.xalancbmk_r: -DSPEC_LINUX -DSPEC_LP64 525.x264_r: -DSPEC_LP64 531.deepsjeng_r: -DSPEC_LP64 541.leela_r: -DSPEC_LP64 548.exchange2_r: -DSPEC_LP64 557.xz_r: -DSPEC_LP64 Base Optimization Flags ----------------------- C benchmarks: 500.perlbench_r: -flto -Wl,-mllvm -Wl,-function-specialize -Wl,-mllvm -Wl,-enable-vectorize-compares -O3 -ffast-math -march=znver1 -mno-avx2 -fstruct-layout=3 -mllvm -unroll-threshold=50 -fremap-arrays -mllvm -inline-threshold=1000 -flv-function-specialization -mllvm -enable-gvn-hoist -mllvm -function-specialize -z muldefs -lamdlibm -lpthread -ldl -ljemalloc 502.gcc_r: Same as 500.perlbench_r 505.mcf_r: Same as 500.perlbench_r 525.x264_r: Same as 500.perlbench_r 557.xz_r: -flto -Wl,-mllvm -Wl,-function-specialize -Wl,-mllvm -Wl,-enable-vectorize-compares -O3 -ffast-math -march=znver1 -mno-avx2 -fstruct-layout=3 -mllvm -unroll-threshold=50 -fremap-arrays -mllvm -inline-threshold=1000 -flv-function-specialization -mllvm -enable-gvn-hoist -mllvm -function-specialize -z muldefs -lpthread -ldl -ljemalloc C++ benchmarks: -flto -Wl,-mllvm -Wl,-function-specialize -Wl,-mllvm -Wl,-enable-vectorize-compares -O3 -march=znver1 -mllvm -unroll-threshold=100 -finline-aggressive -fremap-arrays -mllvm -inline-threshold=1000 -mllvm -enable-vectorize-compares=false -z muldefs -lpthread -ldl -ljemalloc Fortran benchmarks: -Wl,-mllvm -Wl,-inline-recursion=4 -Wl,-mllvm -Wl,-lsr-in-nested-loop -Wl,-mllvm -Wl,-enable-iv-split -Wl,-mllvm -Wl,-merge-constant -Wl,-mllvm -Wl,-unroll-aggressive -Wl,-mllvm -Wl,-unroll-threshold=150 -flto -Wl,-mllvm -Wl,-function-specialize -Wl,-mllvm -Wl,-enable-vectorize-compares -O3(gfortran) -O3(clang) -mavx -madx -funroll-loops -ffast-math -frepack-arrays -z muldefs -fplugin=dragonegg.so -specs=integrated-as.specs -fplugin-arg-dragonegg-llvm-option=-disable-indvar-simplify -fplugin-arg-dragonegg-llvm-option=-unroll-aggressive -fplugin-arg-dragonegg-llvm-option=-unroll-threshold:150 -lpthread -ldl -ljemalloc -lgfortran -lamdlibm Peak Compiler Invocation ------------------------ C benchmarks: clang C++ benchmarks: clang++ Fortran benchmarks: clang gfortran Peak Portability Flags ---------------------- 500.perlbench_r: -DSPEC_LINUX_X64 -DSPEC_LP64 502.gcc_r: -D_FILE_OFFSET_BITS=64 505.mcf_r: -DSPEC_LP64 520.omnetpp_r: -DSPEC_LP64 523.xalancbmk_r: -DSPEC_LINUX -D_FILE_OFFSET_BITS=64 525.x264_r: -DSPEC_LP64 531.deepsjeng_r: -DSPEC_LP64 541.leela_r: -DSPEC_LP64 548.exchange2_r: -DSPEC_LP64 557.xz_r: -DSPEC_LP64 Peak Optimization Flags ----------------------- C benchmarks: 500.perlbench_r: -flto -Wl,-mllvm -Wl,-function-specialize -Wl,-mllvm -Wl,-enable-vectorize-compares -fprofile-instr-generate(pass 1) -fprofile-instr-use(pass 2) -Ofast -march=znver1 -fstruct-layout=3 -mllvm -vectorize-memory-aggressively -mno-avx2 -mllvm -unroll-threshold=100 -fremap-arrays -mllvm -inline-threshold=1000 -lpthread -ldl -ljemalloc 502.gcc_r: -m32 -flto -Wl,-mllvm -Wl,-function-specialize -Wl,-mllvm -Wl,-enable-vectorize-compares -Ofast -march=znver1 -fstruct-layout=3 -mllvm -vectorize-memory-aggressively -mno-avx2 -mllvm -unroll-threshold=100 -fremap-arrays -mllvm -inline-threshold=1000 -fgnu89-inline -lpthread -ldl -L/root/work/lib/jemalloc510/lib32 -ljemalloc 505.mcf_r: basepeak = yes 525.x264_r: -flto -Wl,-mllvm -Wl,-function-specialize -Wl,-mllvm -Wl,-enable-vectorize-compares -fprofile-instr-generate(pass 1) -fprofile-instr-use(pass 2) -Ofast -march=znver1 -mno-avx2 -fstruct-layout=5 -mllvm -vectorize-memory-aggressively -mllvm -unroll-threshold=50 -fremap-arrays -mllvm -inline-threshold=1000 -mllvm -enable-gvn-hoist -flv-function-specialization -lamdlibm -ljemalloc -lpthread -ldl 557.xz_r: basepeak = yes C++ benchmarks: 520.omnetpp_r: -flto -Wl,-mllvm -Wl,-function-specialize -Wl,-mllvm -Wl,-enable-vectorize-compares -Ofast -march=znver1 -finline-aggressive -mllvm -unroll-threshold=100 -fremap-arrays -mllvm -inline-threshold=1000 -lpthread -ldl -ljemalloc 523.xalancbmk_r: -m32 -flto -Wl,-mllvm -Wl,-function-specialize -Wl,-mllvm -Wl,-enable-vectorize-compares -Ofast -march=znver1 -finline-aggressive -mllvm -unroll-threshold=100 -fremap-arrays -mllvm -inline-threshold=1000 -lpthread -ldl -L/root/work/lib/jemalloc510/lib32 -ljemalloc 531.deepsjeng_r: Same as 520.omnetpp_r 541.leela_r: -flto -Wl,-mllvm -Wl,-function-specialize -Wl,-mllvm -Wl,-enable-vectorize-compares -fprofile-instr-generate(pass 1) -fprofile-instr-use(pass 2) -Ofast -march=znver1 -mllvm -unroll-count=8 -mllvm -unroll-threshold=100 -lpthread -ldl -ljemalloc Fortran benchmarks: 548.exchange2_r: basepeak = yes The flags files that were used to format this result can be browsed at http://www.spec.org/cpu2017/flags/gcc.2018-02-16.html http://www.spec.org/cpu2017/flags/aocc130-flags-revA2.html You can also download the XML flags sources by saving the following links: http://www.spec.org/cpu2017/flags/gcc.2018-02-16.xml http://www.spec.org/cpu2017/flags/aocc130-flags-revA2.xml SPEC is a registered trademark of the Standard Performance Evaluation Corporation. All other brand and product names appearing in this result are trademarks or registered trademarks of their respective holders. ---------------------------------------------------------------------------------------------------------------------- For questions about this result, please contact the tester. For other inquiries, please contact info@spec.org. Copyright 2017-2019 Standard Performance Evaluation Corporation Tested with SPEC CPU2017 v1.0.5 on 2019-03-13 09:49:45-0400. Report generated on 2019-04-02 16:54:19 by CPU2017 ASCII formatter v6067. Originally published on 2019-04-02.