SPEC(R) CPU2017 Floating Point Rate Result Lenovo Global Technology ThinkSystem SR860 (2.70 GHz, Intel Xeon Platinum 8168) CPU2017 License: 9017 Test date: Aug-2018 Test sponsor: Lenovo Global Technology Hardware availability: Nov-2017 Tested by: Lenovo Global Technology Software availability: May-2018 Base Base Base Peak Peak Peak Benchmarks Copies Run Time Rate Copies Run Time Rate --------------- ------- --------- --------- ------- --------- --------- 503.bwaves_r 192 1990 968 * 192 1988 968 * 503.bwaves_r 192 1991 967 S 192 1988 968 S 503.bwaves_r 192 1987 969 S 192 1988 969 S 507.cactuBSSN_r 192 550 442 S 192 556 437 S 507.cactuBSSN_r 192 550 442 * 192 554 439 S 507.cactuBSSN_r 192 550 442 S 192 555 438 * 508.namd_r 192 438 416 S 192 433 421 S 508.namd_r 192 439 415 * 192 431 423 S 508.namd_r 192 439 415 S 192 432 422 * 510.parest_r 192 2113 238 * 192 2114 238 S 510.parest_r 192 2118 237 S 192 2119 237 S 510.parest_r 192 2101 239 S 192 2117 237 * 511.povray_r 192 675 664 S 192 570 786 * 511.povray_r 192 674 665 * 192 572 783 S 511.povray_r 192 674 665 S 192 569 788 S 519.lbm_r 192 864 234 S 192 851 238 S 519.lbm_r 192 865 234 S 192 849 238 S 519.lbm_r 192 865 234 * 192 849 238 * 521.wrf_r 192 995 432 * 192 991 434 S 521.wrf_r 192 995 432 S 192 995 432 S 521.wrf_r 192 997 431 S 192 995 432 * 526.blender_r 192 516 567 S 192 509 574 * 526.blender_r 192 515 568 * 192 510 574 S 526.blender_r 192 514 569 S 192 507 576 S 527.cam4_r 192 608 552 S 192 604 556 S 527.cam4_r 192 609 551 S 192 603 557 * 527.cam4_r 192 608 552 * 192 603 557 S 538.imagick_r 192 540 884 * 192 540 883 S 538.imagick_r 192 540 884 S 192 541 883 * 538.imagick_r 192 540 884 S 192 542 881 S 544.nab_r 192 429 754 S 192 416 776 S 544.nab_r 192 428 755 S 192 416 778 * 544.nab_r 192 428 755 * 192 415 778 S 549.fotonik3d_r 192 2465 303 S 192 2460 304 S 549.fotonik3d_r 192 2464 304 S 192 2460 304 * 549.fotonik3d_r 192 2465 304 * 192 2464 304 S 554.roms_r 192 1664 183 S 192 1628 187 S 554.roms_r 192 1661 184 S 192 1633 187 * 554.roms_r 192 1662 184 * 192 1650 185 S ================================================================================= 503.bwaves_r 192 1990 968 * 192 1988 968 * 507.cactuBSSN_r 192 550 442 * 192 555 438 * 508.namd_r 192 439 415 * 192 432 422 * 510.parest_r 192 2113 238 * 192 2117 237 * 511.povray_r 192 674 665 * 192 570 786 * 519.lbm_r 192 865 234 * 192 849 238 * 521.wrf_r 192 995 432 * 192 995 432 * 526.blender_r 192 515 568 * 192 509 574 * 527.cam4_r 192 608 552 * 192 603 557 * 538.imagick_r 192 540 884 * 192 541 883 * 544.nab_r 192 428 755 * 192 416 778 * 549.fotonik3d_r 192 2465 304 * 192 2460 304 * 554.roms_r 192 1662 184 * 192 1633 187 * SPECrate2017_fp_base 452 SPECrate2017_fp_peak 461 HARDWARE -------- CPU Name: Intel Xeon Platinum 8168 Max MHz.: 3700 Nominal: 2700 Enabled: 96 cores, 4 chips, 2 threads/core Orderable: 2,4 chips Cache L1: 32 KB I + 32 KB D on chip per core L2: 1 MB I+D on chip per core L3: 33 MB I+D on chip per chip Other: None Memory: 768 GB (48 x 16 GB 2Rx8 PC4-2666V-R) Storage: 1 x 800 GB SAS SSD Other: None SOFTWARE -------- OS: Red Hat Enterprise Linux Server release 7.4 (Maipo) Kernel 3.10.0-693.25.7.el7.x86_64 Compiler: C/C++: Version 18.0.0.128 of Intel C/C++ Compiler for Linux; Fortran: Version 18.0.0.128 of Intel Fortran Compiler for Linux Parallel: No Firmware: Lenovo BIOS Version TEE123N 1.40 released Jun-2018 File System: xfs System State: Run level 3 (multi-user) Base Pointers: 64-bit Peak Pointers: 64-bit Other: None Submit Notes ------------ The numactl mechanism was used to bind copies to processors. The config file option 'submit' was used to generate numactl commands to bind each copy to a specific processor. For details, please see the config file. Operating System Notes ---------------------- Stack size set to unlimited using "ulimit -s unlimited" General Notes ------------- Environment variables set by runcpu before the start of the run: LD_LIBRARY_PATH = "/home/cpu2017.1.0.2.ic18.0/lib/ia32:/home/cpu2017.1.0.2.ic18.0/lib/intel64" LD_LIBRARY_PATH = "$LD_LIBRARY_PATH:/home/cpu2017.1.0.2.ic18.0/je5.0.1-32:/home/cpu2017.1.0.2.ic18.0/je5.0.1-64" Binaries compiled on a system with 1x Intel Core i7-4790 CPU + 32GB RAM memory using Redhat Enterprise Linux 7.4 Transparent Huge Pages enabled by default Prior to runcpu invocation Filesystem page cache synced and cleared with: sync; echo 3> /proc/sys/vm/drop_caches runcpu command invoked through numactl i.e.: numactl --interleave=all runcpu Yes: 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 configuration: Choose Operating Mode set to Custom Mode CPU P-state Control set to None Page Policy set to Adaptive C-States set to Legacy Energy Efficient Turbo set to Disable Platform Controlled Type set to Maximum Performance DCU Streamer Prefetcher set to Disable DCU IP Prefetcher set to Disable SNC set to Enable Sysinfo program /home/cpu2017.1.0.2.ic18.0/bin/sysinfo Rev: r5797 of 2017-06-14 96c45e4568ad54c135fd618bcc091c0f running on SR860 Sun Aug 5 08:54:31 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 : Intel(R) Xeon(R) Platinum 8168 CPU @ 2.70GHz 4 "physical id"s (chips) 192 "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 2 3 4 5 8 9 10 11 12 13 16 17 18 19 20 21 24 25 26 27 28 29 physical 1: cores 0 1 2 3 4 5 8 9 10 11 12 13 16 17 18 19 20 21 24 25 26 27 28 29 physical 2: cores 0 1 2 3 4 5 8 9 10 11 12 13 16 17 18 19 20 21 24 25 26 27 28 29 physical 3: cores 0 1 2 3 4 5 8 9 10 11 12 13 16 17 18 19 20 21 24 25 26 27 28 29 From lscpu: Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 192 On-line CPU(s) list: 0-191 Thread(s) per core: 2 Core(s) per socket: 24 Socket(s): 4 NUMA node(s): 8 Vendor ID: GenuineIntel CPU family: 6 Model: 85 Model name: Intel(R) Xeon(R) Platinum 8168 CPU @ 2.70GHz Stepping: 4 CPU MHz: 2700.000 BogoMIPS: 5400.00 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 1024K L3 cache: 33792K NUMA node0 CPU(s): 0-2,6-8,12-14,18-20,96-98,102-104,108-110,114-116 NUMA node1 CPU(s): 3-5,9-11,15-17,21-23,99-101,105-107,111-113,117-119 NUMA node2 CPU(s): 24-26,30-32,36-38,42-44,120-122,126-128,132-134,138-140 NUMA node3 CPU(s): 27-29,33-35,39-41,45-47,123-125,129-131,135-137,141-143 NUMA node4 CPU(s): 48-50,54-56,60-62,66-68,144-146,150-152,156-158,162-164 NUMA node5 CPU(s): 51-53,57-59,63-65,69-71,147-149,153-155,159-161,165-167 NUMA node6 CPU(s): 72-74,78-80,84-86,90-92,168-170,174-176,180-182,186-188 NUMA node7 CPU(s): 75-77,81-83,87-89,93-95,171-173,177-179,183-185,189-191 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb cat_l3 cdp_l3 invpcid_single intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm mpx rdt_a avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local ibpb ibrs stibp dtherm ida arat pln pts spec_ctrl intel_stibp ssbd /proc/cpuinfo cache data cache size : 33792 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 1 2 6 7 8 12 13 14 18 19 20 96 97 98 102 103 104 108 109 110 114 115 116 node 0 size: 97981 MB node 0 free: 95290 MB node 1 cpus: 3 4 5 9 10 11 15 16 17 21 22 23 99 100 101 105 106 107 111 112 113 117 118 119 node 1 size: 98304 MB node 1 free: 95812 MB node 2 cpus: 24 25 26 30 31 32 36 37 38 42 43 44 120 121 122 126 127 128 132 133 134 138 139 140 node 2 size: 98304 MB node 2 free: 95832 MB node 3 cpus: 27 28 29 33 34 35 39 40 41 45 46 47 123 124 125 129 130 131 135 136 137 141 142 143 node 3 size: 98304 MB node 3 free: 95789 MB node 4 cpus: 48 49 50 54 55 56 60 61 62 66 67 68 144 145 146 150 151 152 156 157 158 162 163 164 node 4 size: 98304 MB node 4 free: 95801 MB node 5 cpus: 51 52 53 57 58 59 63 64 65 69 70 71 147 148 149 153 154 155 159 160 161 165 166 167 node 5 size: 98304 MB node 5 free: 95801 MB node 6 cpus: 72 73 74 78 79 80 84 85 86 90 91 92 168 169 170 174 175 176 180 181 182 186 187 188 node 6 size: 98304 MB node 6 free: 95801 MB node 7 cpus: 75 76 77 81 82 83 87 88 89 93 94 95 171 172 173 177 178 179 183 184 185 189 190 191 node 7 size: 98304 MB node 7 free: 95794 MB node distances: node 0 1 2 3 4 5 6 7 0: 10 11 21 21 21 21 31 31 1: 11 10 21 21 21 21 31 31 2: 21 21 10 11 31 31 21 21 3: 21 21 11 10 31 31 21 21 4: 21 21 31 31 10 11 21 21 5: 21 21 31 31 11 10 21 21 6: 31 31 21 21 21 21 10 11 7: 31 31 21 21 21 21 11 10 From /proc/meminfo MemTotal: 792250408 kB HugePages_Total: 0 Hugepagesize: 2048 kB From /etc/*release* /etc/*version* os-release: NAME="Red Hat Enterprise Linux Server" VERSION="7.4 (Maipo)" ID="rhel" ID_LIKE="fedora" VARIANT="Server" VARIANT_ID="server" VERSION_ID="7.4" PRETTY_NAME="Red Hat Enterprise Linux Server 7.4 (Maipo)" redhat-release: Red Hat Enterprise Linux Server release 7.4 (Maipo) system-release: Red Hat Enterprise Linux Server release 7.4 (Maipo) system-release-cpe: cpe:/o:redhat:enterprise_linux:7.4:ga:server uname -a: Linux SR860 3.10.0-693.25.7.el7.x86_64 #1 SMP Sat May 19 04:36:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux run-level 3 Aug 4 23:12 SPEC is set to: /home/cpu2017.1.0.2.ic18.0 Filesystem Type Size Used Avail Use% Mounted on /dev/sdb4 xfs 686G 154G 532G 23% /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 Lenovo -[TEE123N-1.40]- 06/12/2018 Memory: 48x Samsung M393A2K43BB1-CTD 16 GB 2 rank 2666 (End of data from sysinfo program) Compiler Version Notes ---------------------- ============================================================================== CC 519.lbm_r(base) 538.imagick_r(base, peak) 544.nab_r(base) ------------------------------------------------------------------------------ icc (ICC) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. ------------------------------------------------------------------------------ ============================================================================== CC 519.lbm_r(peak) 544.nab_r(peak) ------------------------------------------------------------------------------ icc (ICC) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. ------------------------------------------------------------------------------ ============================================================================== CXXC 508.namd_r(base) 510.parest_r(base) ------------------------------------------------------------------------------ icpc (ICC) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. ------------------------------------------------------------------------------ ============================================================================== CXXC 508.namd_r(peak) 510.parest_r(peak) ------------------------------------------------------------------------------ icpc (ICC) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. ------------------------------------------------------------------------------ ============================================================================== CC 511.povray_r(base) 526.blender_r(base) ------------------------------------------------------------------------------ icpc (ICC) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. icc (ICC) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. ------------------------------------------------------------------------------ ============================================================================== CC 511.povray_r(peak) 526.blender_r(peak) ------------------------------------------------------------------------------ icpc (ICC) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. icc (ICC) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. ------------------------------------------------------------------------------ ============================================================================== FC 507.cactuBSSN_r(base) ------------------------------------------------------------------------------ icpc (ICC) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. icc (ICC) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. ifort (IFORT) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. ------------------------------------------------------------------------------ ============================================================================== FC 507.cactuBSSN_r(peak) ------------------------------------------------------------------------------ icpc (ICC) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. icc (ICC) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. ifort (IFORT) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. ------------------------------------------------------------------------------ ============================================================================== FC 503.bwaves_r(base, peak) 549.fotonik3d_r(base, peak) 554.roms_r(base) ------------------------------------------------------------------------------ ifort (IFORT) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. ------------------------------------------------------------------------------ ============================================================================== FC 554.roms_r(peak) ------------------------------------------------------------------------------ ifort (IFORT) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. ------------------------------------------------------------------------------ ============================================================================== CC 521.wrf_r(base) 527.cam4_r(base) ------------------------------------------------------------------------------ ifort (IFORT) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. icc (ICC) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. ------------------------------------------------------------------------------ ============================================================================== CC 521.wrf_r(peak) 527.cam4_r(peak) ------------------------------------------------------------------------------ ifort (IFORT) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. icc (ICC) 18.0.0 20170811 Copyright (C) 1985-2017 Intel Corporation. All rights reserved. ------------------------------------------------------------------------------ Base Compiler Invocation ------------------------ C benchmarks: icc C++ benchmarks: icpc Fortran benchmarks: ifort Benchmarks using both Fortran and C: ifort icc Benchmarks using both C and C++: icpc icc Benchmarks using Fortran, C, and C++: icpc icc ifort 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_LP64 -DSPEC_CASE_FLAG -convert big_endian 526.blender_r: -DSPEC_LP64 -DSPEC_LINUX -funsigned-char 527.cam4_r: -DSPEC_LP64 -DSPEC_CASE_FLAG 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: -xCORE-AVX2 -ipo -O3 -no-prec-div -qopt-prefetch -ffinite-math-only -qopt-mem-layout-trans=3 C++ benchmarks: -xCORE-AVX2 -ipo -O3 -no-prec-div -qopt-prefetch -ffinite-math-only -qopt-mem-layout-trans=3 Fortran benchmarks: -xCORE-AVX2 -ipo -O3 -no-prec-div -qopt-prefetch -ffinite-math-only -qopt-mem-layout-trans=3 -nostandard-realloc-lhs -align array32byte Benchmarks using both Fortran and C: -xCORE-AVX2 -ipo -O3 -no-prec-div -qopt-prefetch -ffinite-math-only -qopt-mem-layout-trans=3 -nostandard-realloc-lhs -align array32byte Benchmarks using both C and C++: -xCORE-AVX2 -ipo -O3 -no-prec-div -qopt-prefetch -ffinite-math-only -qopt-mem-layout-trans=3 Benchmarks using Fortran, C, and C++: -xCORE-AVX2 -ipo -O3 -no-prec-div -qopt-prefetch -ffinite-math-only -qopt-mem-layout-trans=3 -nostandard-realloc-lhs -align array32byte Base Other Flags ---------------- C benchmarks: -m64 -std=c11 C++ benchmarks: -m64 Fortran benchmarks: -m64 Benchmarks using both Fortran and C: -m64 -std=c11 Benchmarks using both C and C++: -m64 -std=c11 Benchmarks using Fortran, C, and C++: -m64 -std=c11 Peak Compiler Invocation ------------------------ C benchmarks: icc C++ benchmarks: icpc Fortran benchmarks: ifort Benchmarks using both Fortran and C: ifort icc Benchmarks using both C and C++: icpc icc Benchmarks using Fortran, C, and C++: icpc icc ifort Peak Portability Flags ---------------------- Same as Base Portability Flags Peak Optimization Flags ----------------------- C benchmarks: 519.lbm_r: -prof-gen(pass 1) -prof-use(pass 2) -ipo -xCORE-AVX2 -O3 -no-prec-div -qopt-prefetch -ffinite-math-only -qopt-mem-layout-trans=3 538.imagick_r: -xCORE-AVX2 -ipo -O3 -no-prec-div -qopt-prefetch -ffinite-math-only -qopt-mem-layout-trans=3 544.nab_r: Same as 519.lbm_r C++ benchmarks: -prof-gen(pass 1) -prof-use(pass 2) -ipo -xCORE-AVX2 -O3 -no-prec-div -qopt-prefetch -ffinite-math-only -qopt-mem-layout-trans=3 Fortran benchmarks: 503.bwaves_r: -xCORE-AVX2 -ipo -O3 -no-prec-div -qopt-prefetch -ffinite-math-only -qopt-mem-layout-trans=3 -nostandard-realloc-lhs -align array32byte 549.fotonik3d_r: Same as 503.bwaves_r 554.roms_r: -prof-gen(pass 1) -prof-use(pass 2) -ipo -xCORE-AVX2 -O3 -no-prec-div -qopt-prefetch -ffinite-math-only -qopt-mem-layout-trans=3 -nostandard-realloc-lhs -align array32byte Benchmarks using both Fortran and C: -prof-gen(pass 1) -prof-use(pass 2) -ipo -xCORE-AVX2 -O3 -no-prec-div -qopt-prefetch -ffinite-math-only -qopt-mem-layout-trans=3 -nostandard-realloc-lhs -align array32byte Benchmarks using both C and C++: -prof-gen(pass 1) -prof-use(pass 2) -ipo -xCORE-AVX2 -O3 -no-prec-div -qopt-prefetch -ffinite-math-only -qopt-mem-layout-trans=3 Benchmarks using Fortran, C, and C++: -prof-gen(pass 1) -prof-use(pass 2) -ipo -xCORE-AVX2 -O3 -no-prec-div -qopt-prefetch -ffinite-math-only -qopt-mem-layout-trans=3 -nostandard-realloc-lhs -align array32byte Peak Other Flags ---------------- C benchmarks: -m64 -std=c11 C++ benchmarks: -m64 Fortran benchmarks: -m64 Benchmarks using both Fortran and C: -m64 -std=c11 Benchmarks using both C and C++: -m64 -std=c11 Benchmarks using Fortran, C, and C++: -m64 -std=c11 The flags files that were used to format this result can be browsed at http://www.spec.org/cpu2017/flags/Intel-ic18.0-official-linux64.html http://www.spec.org/cpu2017/flags/Lenovo-Platform-SPECcpu2017-Flags-V1.2-SKL-H.html You can also download the XML flags sources by saving the following links: http://www.spec.org/cpu2017/flags/Intel-ic18.0-official-linux64.xml http://www.spec.org/cpu2017/flags/Lenovo-Platform-SPECcpu2017-Flags-V1.2-SKL-H.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.2 on 2018-08-04 20:54:30-0400. Report generated on 2018-10-31 18:17:00 by CPU2017 ASCII formatter v6067. Originally published on 2018-09-04.