SPEC(R) CPU2017 Floating Point Rate Result Supermicro A+ Server 1113S-WN10RT (H11SSW-NT , AMD EPYC 7281) CPU2017 License: 001176 Test date: Nov-2018 Test sponsor: Supermicro Hardware availability: Sep-2018 Tested by: Supermicro Software availability: Feb-2018 Base Base Base Peak Peak Peak Benchmarks Copies Run Time Rate Copies Run Time Rate --------------- ------- --------- --------- ------- --------- --------- 503.bwaves_r 32 1033 311 S 32 1036 310 S 503.bwaves_r 32 1036 310 S 32 1032 311 * 503.bwaves_r 32 1036 310 * 32 1030 312 S 507.cactuBSSN_r 32 539 75.2 S 32 539 75.2 S 507.cactuBSSN_r 32 538 75.3 * 32 538 75.3 * 507.cactuBSSN_r 32 538 75.3 S 32 538 75.3 S 508.namd_r 32 529 57.4 S 32 485 62.7 S 508.namd_r 32 529 57.4 * 32 482 63.1 S 508.namd_r 32 529 57.5 S 32 483 63.0 * 510.parest_r 32 1292 64.8 S 32 1292 64.8 S 510.parest_r 32 1292 64.8 * 32 1292 64.8 * 510.parest_r 32 1292 64.8 S 32 1292 64.8 S 511.povray_r 32 1031 72.5 S 32 981 76.2 S 511.povray_r 32 1015 73.6 S 32 994 75.2 S 511.povray_r 32 1016 73.5 * 32 992 75.3 * 519.lbm_r 32 548 61.6 S 32 490 68.9 S 519.lbm_r 32 550 61.3 S 32 488 69.1 S 519.lbm_r 32 550 61.4 * 32 489 68.9 * 521.wrf_r 32 870 82.4 S 32 870 82.4 S 521.wrf_r 32 808 88.8 S 32 808 88.8 S 521.wrf_r 32 829 86.5 * 32 829 86.5 * 526.blender_r 32 594 82.1 S 32 594 82.1 S 526.blender_r 32 596 81.8 S 32 596 81.8 S 526.blender_r 32 595 81.9 * 32 595 81.9 * 527.cam4_r 32 781 71.7 * 32 781 71.7 * 527.cam4_r 32 782 71.6 S 32 782 71.6 S 527.cam4_r 32 777 72.0 S 32 777 72.0 S 538.imagick_r 32 725 110 * 32 716 111 S 538.imagick_r 32 727 110 S 32 716 111 * 538.imagick_r 32 725 110 S 32 725 110 S 544.nab_r 32 578 93.2 S 32 578 93.2 S 544.nab_r 32 578 93.2 * 32 578 93.2 * 544.nab_r 32 579 93.0 S 32 579 93.0 S 549.fotonik3d_r 32 1406 88.7 S 32 1410 88.4 S 549.fotonik3d_r 32 1409 88.5 S 32 1391 89.6 S 549.fotonik3d_r 32 1409 88.5 * 32 1409 88.5 * 554.roms_r 32 1094 46.5 * 32 1094 46.5 * 554.roms_r 32 1095 46.4 S 32 1091 46.6 S 554.roms_r 32 1091 46.6 S 32 1105 46.0 S ================================================================================= 503.bwaves_r 32 1036 310 * 32 1032 311 * 507.cactuBSSN_r 32 538 75.3 * 32 538 75.3 * 508.namd_r 32 529 57.4 * 32 483 63.0 * 510.parest_r 32 1292 64.8 * 32 1292 64.8 * 511.povray_r 32 1016 73.5 * 32 992 75.3 * 519.lbm_r 32 550 61.4 * 32 489 68.9 * 521.wrf_r 32 829 86.5 * 32 829 86.5 * 526.blender_r 32 595 81.9 * 32 595 81.9 * 527.cam4_r 32 781 71.7 * 32 781 71.7 * 538.imagick_r 32 725 110 * 32 716 111 * 544.nab_r 32 578 93.2 * 32 578 93.2 * 549.fotonik3d_r 32 1409 88.5 * 32 1409 88.5 * 554.roms_r 32 1094 46.5 * 32 1094 46.5 * SPECrate2017_fp_base 82.6 SPECrate2017_fp_peak 84.2 HARDWARE -------- CPU Name: AMD EPYC 7281 Max MHz.: 2700 Nominal: 2100 Enabled: 16 cores, 1 chip, 2 threads/core Orderable: 1 chip Cache L1: 64 KB I + 32 KB D on chip per core L2: 512 KB I+D on chip per core L3: 32 MB I+D on chip per chip, 4 MB shared / 2 cores Other: None Memory: 512 GB (8 x 64 GB 4Rx4 PC4-2666V-L) Storage: 1 x 200 GB SATAIII SSD Other: None SOFTWARE -------- OS: SUSE Linux Enterprise Server 12 SP3 (x86_64) kernel 4.4.114-94.11-default Compiler: C/C++: Version 1.0.0 of AOCC Fortran: Version 4.8.2 of GCC Parallel: No Firmware: Supermicro BIOS version 1.0 released Sep-2018 File System: xfs System State: Run level 3 (multi-user) Base Pointers: 64-bit Peak Pointers: 64-bit Other: jemalloc general purpose malloc implementation V4.5.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.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/amd1704-rate-libs-revD/64;/home/cpu2017/amd1704-rate-libs-revD/32:" MALLOC_CONF = "lg_chunk:28" Binaries were compiled on a system with 2x AMD EPYC 7601 CPU + 512GB Memory using RHEL 7.4 jemalloc, a general purpose malloc implementation, was obtained at https://github.com/jemalloc/jemalloc/releases/download/4.5.0/jemalloc-4.5.0.tar.bz2 jemalloc was built with GCC v4.8.5 in RHEL v7.2 under default conditions. 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. 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. Platform Notes -------------- BIOS Settings: Determinism Slider = Power Sysinfo program /home/cpu2017/bin/sysinfo Rev: r5974 of 2018-05-19 9bcde8f2999c33d61f64985e45859ea9 running on linux-pm02 Sat Nov 24 04:59:21 2018 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 7281 16-Core Processor 1 "physical id"s (chips) 32 "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 : 16 siblings : 32 physical 0: cores 0 1 4 5 8 9 12 13 16 17 20 21 24 25 28 29 From lscpu: Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 32 On-line CPU(s) list: 0-31 Thread(s) per core: 2 Core(s) per socket: 16 Socket(s): 1 NUMA node(s): 4 Vendor ID: AuthenticAMD CPU family: 23 Model: 1 Model name: AMD EPYC 7281 16-Core Processor Stepping: 2 CPU MHz: 2100.000 CPU max MHz: 2100.0000 CPU min MHz: 1200.0000 BogoMIPS: 4200.16 Virtualization: AMD-V L1d cache: 32K L1i cache: 64K L2 cache: 512K L3 cache: 4096K NUMA node0 CPU(s): 0-3,16-19 NUMA node1 CPU(s): 4-7,20-23 NUMA node2 CPU(s): 8-11,24-27 NUMA node3 CPU(s): 12-15,28-31 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 extd_apicid amd_dcm aperfmperf eagerfpu 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_l2 mwaitx arat cpb hw_pstate retpoline retpoline_amd npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold vmmcall avic fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 clzero irperf ibpb 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: 4 nodes (0-3) node 0 cpus: 0 1 2 3 16 17 18 19 node 0 size: 128826 MB node 0 free: 128655 MB node 1 cpus: 4 5 6 7 20 21 22 23 node 1 size: 129022 MB node 1 free: 128875 MB node 2 cpus: 8 9 10 11 24 25 26 27 node 2 size: 129022 MB node 2 free: 128871 MB node 3 cpus: 12 13 14 15 28 29 30 31 node 3 size: 129021 MB node 3 free: 128876 MB node distances: node 0 1 2 3 0: 10 16 16 16 1: 16 10 16 16 2: 16 16 10 16 3: 16 16 16 10 From /proc/meminfo MemTotal: 528274456 kB HugePages_Total: 0 Hugepagesize: 2048 kB From /etc/*release* /etc/*version* SuSE-release: SUSE Linux Enterprise Server 12 (x86_64) VERSION = 12 PATCHLEVEL = 3 # This file is deprecated and will be removed in a future service pack or release. # Please check /etc/os-release for details about this release. os-release: NAME="SLES" VERSION="12-SP3" VERSION_ID="12.3" PRETTY_NAME="SUSE Linux Enterprise Server 12 SP3" ID="sles" ANSI_COLOR="0;32" CPE_NAME="cpe:/o:suse:sles:12:sp3" uname -a: Linux linux-pm02 4.4.114-94.11-default #1 SMP Thu Feb 1 19:28:26 UTC 2018 (4309ff9) 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: Barriers CVE-2017-5715 (Spectre variant 2): Mitigation: Full AMD retpoline + IBPB run-level 3 Nov 23 14:06 SPEC is set to: /home/cpu2017 Filesystem Type Size Used Avail Use% Mounted on /dev/sda4 xfs 145G 5.7G 139G 4% /home 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 American Megatrends Inc. 1.0 09/04/2018 Memory: 8x NO DIMM NO DIMM 8x Samsung M386A8K40BM2-CTD 64 GB 4 rank 2667 (End of data from sysinfo program) Compiler Version Notes ---------------------- ============================================================================== CC 519.lbm_r(base, peak) 538.imagick_r(base, peak) 544.nab_r(base, peak) ------------------------------------------------------------------------------ AOCC.LLVM.4.0.0.B35.2017_04_26 clang version 4.0.0 (CLANG:) (based on LLVM AOCC.LLVM.4.0.0.B35.2017_04_26) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /root/work/compilers/AOCC-1.0-Compiler/bin ------------------------------------------------------------------------------ ============================================================================== CXXC 508.namd_r(base, peak) 510.parest_r(base, peak) ------------------------------------------------------------------------------ AOCC.LLVM.4.0.0.B35.2017_04_26 clang version 4.0.0 (CLANG:) (based on LLVM AOCC.LLVM.4.0.0.B35.2017_04_26) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /root/work/compilers/AOCC-1.0-Compiler/bin ------------------------------------------------------------------------------ ============================================================================== CC 511.povray_r(base, peak) 526.blender_r(base, peak) ------------------------------------------------------------------------------ AOCC.LLVM.4.0.0.B35.2017_04_26 clang version 4.0.0 (CLANG:) (based on LLVM AOCC.LLVM.4.0.0.B35.2017_04_26) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /root/work/compilers/AOCC-1.0-Compiler/bin AOCC.LLVM.4.0.0.B35.2017_04_26 clang version 4.0.0 (CLANG:) (based on LLVM AOCC.LLVM.4.0.0.B35.2017_04_26) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /root/work/compilers/AOCC-1.0-Compiler/bin ------------------------------------------------------------------------------ ============================================================================== FC 507.cactuBSSN_r(base, peak) ------------------------------------------------------------------------------ AOCC.LLVM.4.0.0.B35.2017_04_26 clang version 4.0.0 (CLANG:) (based on LLVM AOCC.LLVM.4.0.0.B35.2017_04_26) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /root/work/compilers/AOCC-1.0-Compiler/bin AOCC.LLVM.4.0.0.B35.2017_04_26 clang version 4.0.0 (CLANG:) (based on LLVM AOCC.LLVM.4.0.0.B35.2017_04_26) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /root/work/compilers/AOCC-1.0-Compiler/bin 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 ------------------------------------------------------------------------------ ============================================================================== FC 503.bwaves_r(base, peak) 549.fotonik3d_r(base, peak) 554.roms_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 ------------------------------------------------------------------------------ ============================================================================== CC 521.wrf_r(base, peak) 527.cam4_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 AOCC.LLVM.4.0.0.B35.2017_04_26 clang version 4.0.0 (CLANG:) (based on LLVM AOCC.LLVM.4.0.0.B35.2017_04_26) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /root/work/compilers/AOCC-1.0-Compiler/bin ------------------------------------------------------------------------------ Base Compiler Invocation ------------------------ C benchmarks: clang C++ benchmarks: clang++ Fortran benchmarks: clang gfortran Benchmarks using both Fortran and C: clang gfortran Benchmarks using both C and C++: clang++ clang Benchmarks using Fortran, C, and C++: clang++ clang gfortran Base Portability Flags ---------------------- 503.bwaves_r: -DSPEC_LP64 507.cactuBSSN_r: -DSPEC_LP64 508.namd_r: -DSPEC_LP64 510.parest_r: -DSPEC_LP64 511.povray_r: -DSPEC_LP64 519.lbm_r: -DSPEC_LP64 521.wrf_r: -DSPEC_CASE_FLAG -fconvert=big-endian -DSPEC_LP64 526.blender_r: -funsigned-char -D__BOOL_DEFINED -DSPEC_LP64 527.cam4_r: -DSPEC_CASE_FLAG -DSPEC_LP64 538.imagick_r: -DSPEC_LP64 544.nab_r: -DSPEC_LP64 549.fotonik3d_r: -DSPEC_LP64 554.roms_r: -DSPEC_LP64 Base Optimization Flags ----------------------- C benchmarks: -flto -Wl,-plugin-opt=-merge-constant -Wl,-plugin-opt=-lsr-in-nested-loop -Wl,-plugin-opt=-disable-vect-cmp -O3 -ffast-math -march=znver1 -fstruct-layout=2 -mllvm -unroll-threshold=100 -fremap-arrays -mno-avx2 -mllvm -inline-threshold=1000 -mllvm -disable-vect-cmp -z muldefs -ljemalloc C++ benchmarks: -flto -Wl,-plugin-opt=-merge-constant -Wl,-plugin-opt=-lsr-in-nested-loop -Wl,-plugin-opt=-disable-vect-cmp -O3 -march=znver1 -mllvm -unroll-threshold=100 -finline-aggressive -fremap-arrays -mllvm -inline-threshold=1000 -mllvm -disable-vect-cmp -z muldefs -ljemalloc Fortran benchmarks: -flto -Wl,-plugin-opt=-merge-constant -Wl,-plugin-opt=-lsr-in-nested-loop -Wl,-plugin-opt=-disable-vect-cmp -O3 -mavx -madx -funroll-loops -ffast-math -z muldefs -fplugin=dragonegg.so -fplugin-arg-dragonegg-llvm-option=-merge-constant -fplugin-arg-dragonegg-llvm-option=-disable-vect-cmp -ljemalloc -lgfortran -lamdlibm Benchmarks using both Fortran and C: -flto -Wl,-plugin-opt=-merge-constant -Wl,-plugin-opt=-lsr-in-nested-loop -Wl,-plugin-opt=-disable-vect-cmp -O3 -ffast-math -march=znver1 -fstruct-layout=2 -mllvm -unroll-threshold=100 -fremap-arrays -mno-avx2 -mllvm -inline-threshold=1000 -mllvm -disable-vect-cmp -mavx -madx -funroll-loops -z muldefs -fplugin=dragonegg.so -fplugin-arg-dragonegg-llvm-option=-merge-constant -fplugin-arg-dragonegg-llvm-option=-disable-vect-cmp -ljemalloc -lgfortran -lamdlibm Benchmarks using both C and C++: -flto -Wl,-plugin-opt=-merge-constant -Wl,-plugin-opt=-lsr-in-nested-loop -Wl,-plugin-opt=-disable-vect-cmp -O3 -ffast-math -march=znver1 -fstruct-layout=2 -mllvm -unroll-threshold=100 -fremap-arrays -mno-avx2 -mllvm -inline-threshold=1000 -mllvm -disable-vect-cmp -finline-aggressive -z muldefs -ljemalloc Benchmarks using Fortran, C, and C++: -flto -Wl,-plugin-opt=-merge-constant -Wl,-plugin-opt=-lsr-in-nested-loop -Wl,-plugin-opt=-disable-vect-cmp -O3 -ffast-math -march=znver1 -fstruct-layout=2 -mllvm -unroll-threshold=100 -fremap-arrays -mno-avx2 -mllvm -inline-threshold=1000 -mllvm -disable-vect-cmp -finline-aggressive -mavx -madx -funroll-loops -z muldefs -fplugin=dragonegg.so -fplugin-arg-dragonegg-llvm-option=-merge-constant -fplugin-arg-dragonegg-llvm-option=-disable-vect-cmp -ljemalloc Peak Compiler Invocation ------------------------ C benchmarks: clang C++ benchmarks: clang++ Fortran benchmarks: clang gfortran Benchmarks using both Fortran and C: clang gfortran Benchmarks using both C and C++: clang++ clang Benchmarks using Fortran, C, and C++: clang++ clang gfortran Peak Portability Flags ---------------------- Same as Base Portability Flags Peak Optimization Flags ----------------------- C benchmarks: 519.lbm_r: -flto -Wl,-plugin-opt=-merge-constant -Wl,-plugin-opt=-lsr-in-nested-loop -Ofast -march=znver1 -fstruct-layout=3 -mllvm -vectorize-memory-aggressively -mno-avx2 -mllvm -unroll-threshold=100 -fremap-arrays -mllvm -inline-threshold=1000 -ljemalloc 538.imagick_r: Same as 519.lbm_r 544.nab_r: basepeak = yes C++ benchmarks: 508.namd_r: -flto -Wl,-plugin-opt=-merge-constant -Wl,-plugin-opt=-lsr-in-nested-loop -Ofast -march=znver1 -finline-aggressive -mllvm -unroll-threshold=100 -fremap-arrays -mllvm -inline-threshold=1000 -ljemalloc 510.parest_r: basepeak = yes Fortran benchmarks: -flto -Wl,-plugin-opt=-merge-constant -Wl,-plugin-opt=-lsr-in-nested-loop -O3 -mavx2 -madx -funroll-loops -ffast-math -fplugin=dragonegg.so -fplugin-arg-dragonegg-llvm-option=-merge-constant -fplugin-arg-dragonegg-llvm-option=-inline-threshold:1000 -ljemalloc -lgfortran -lamdlibm Benchmarks using both Fortran and C: 521.wrf_r: basepeak = yes 527.cam4_r: basepeak = yes Benchmarks using both C and C++: 511.povray_r: -flto -Wl,-plugin-opt=-merge-constant -Wl,-plugin-opt=-lsr-in-nested-loop -Ofast -march=znver1 -fstruct-layout=3 -mllvm -vectorize-memory-aggressively -mno-avx2 -mllvm -unroll-threshold=100 -fremap-arrays -mllvm -inline-threshold=1000 -finline-aggressive -ljemalloc 526.blender_r: basepeak = yes Benchmarks using Fortran, C, and C++: 507.cactuBSSN_r: basepeak = yes The flags files that were used to format this result can be browsed at http://www.spec.org/cpu2017/flags/aocc100-flags-revC-I.2018-11-13.html http://www.spec.org/cpu2017/flags/gcc.2018-02-16.html http://www.spec.org/cpu2017/flags/Supermicro-Platform-Settings-V1.2-Naples-revD.html You can also download the XML flags sources by saving the following links: http://www.spec.org/cpu2017/flags/aocc100-flags-revC-I.2018-11-13.xml http://www.spec.org/cpu2017/flags/gcc.2018-02-16.xml http://www.spec.org/cpu2017/flags/Supermicro-Platform-Settings-V1.2-Naples-revD.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-2018 Standard Performance Evaluation Corporation Tested with SPEC CPU2017 v1.0.5 on 2018-11-23 15:59:20-0500. Report generated on 2018-12-11 14:58:41 by CPU2017 ASCII formatter v6067. Originally published on 2018-12-11.