SPEC(R) CPU2017 Floating Point Rate Result Lenovo Global Technology ThinkSystem SR860 (2.10 GHz, Intel Xeon Platinum 8160T) 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 1995 965 * 192 1993 966 S 503.bwaves_r 192 1993 966 S 192 1997 964 S 503.bwaves_r 192 1995 965 S 192 1995 965 * 507.cactuBSSN_r 192 616 395 * 192 622 391 S 507.cactuBSSN_r 192 615 395 S 192 623 390 S 507.cactuBSSN_r 192 618 393 S 192 622 390 * 508.namd_r 192 523 349 S 192 515 354 * 508.namd_r 192 523 349 * 192 515 354 S 508.namd_r 192 522 350 S 192 515 354 S 510.parest_r 192 2147 234 S 192 2134 235 S 510.parest_r 192 2141 235 * 192 2144 234 S 510.parest_r 192 2139 235 S 192 2140 235 * 511.povray_r 192 826 543 S 192 691 649 S 511.povray_r 192 815 550 S 192 683 657 S 511.povray_r 192 823 545 * 192 688 651 * 519.lbm_r 192 878 230 S 192 859 236 * 519.lbm_r 192 881 230 S 192 860 235 S 519.lbm_r 192 879 230 * 192 857 236 S 521.wrf_r 192 992 434 S 192 991 434 S 521.wrf_r 192 993 433 * 192 996 432 S 521.wrf_r 192 994 433 S 192 993 433 * 526.blender_r 192 597 490 S 192 588 497 S 526.blender_r 192 598 489 * 192 589 497 S 526.blender_r 192 598 489 S 192 588 497 * 527.cam4_r 192 674 498 S 192 667 503 S 527.cam4_r 192 675 498 * 192 668 503 * 527.cam4_r 192 677 496 S 192 669 502 S 538.imagick_r 192 648 737 S 192 640 747 S 538.imagick_r 192 642 744 S 192 641 745 S 538.imagick_r 192 645 741 * 192 640 746 * 544.nab_r 192 505 640 S 192 494 655 * 544.nab_r 192 506 638 * 192 493 656 S 544.nab_r 192 507 638 S 192 495 653 S 549.fotonik3d_r 192 2472 303 S 192 2474 302 * 549.fotonik3d_r 192 2474 302 S 192 2472 303 S 549.fotonik3d_r 192 2473 303 * 192 2474 302 S 554.roms_r 192 1667 183 S 192 1635 187 * 554.roms_r 192 1670 183 * 192 1644 186 S 554.roms_r 192 1671 183 S 192 1631 187 S ================================================================================= 503.bwaves_r 192 1995 965 * 192 1995 965 * 507.cactuBSSN_r 192 616 395 * 192 622 390 * 508.namd_r 192 523 349 * 192 515 354 * 510.parest_r 192 2141 235 * 192 2140 235 * 511.povray_r 192 823 545 * 192 688 651 * 519.lbm_r 192 879 230 * 192 859 236 * 521.wrf_r 192 993 433 * 192 993 433 * 526.blender_r 192 598 489 * 192 588 497 * 527.cam4_r 192 675 498 * 192 668 503 * 538.imagick_r 192 645 741 * 192 640 746 * 544.nab_r 192 506 638 * 192 494 655 * 549.fotonik3d_r 192 2473 303 * 192 2474 302 * 554.roms_r 192 1670 183 * 192 1635 187 * SPECrate2017_fp_base 415 SPECrate2017_fp_peak 424 HARDWARE -------- CPU Name: Intel Xeon Platinum 8160T Max MHz.: 3700 Nominal: 2100 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 Mon Aug 13 05:59:36 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 8160T CPU @ 2.10GHz 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 8160T CPU @ 2.10GHz Stepping: 4 CPU MHz: 2100.000 BogoMIPS: 4200.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: 95306 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: 95825 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: 95765 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: 95718 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: 95852 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: 95805 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: 95813 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: 95765 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: 792250108 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 12 19:04 SPEC is set to: /home/cpu2017.1.0.2.ic18.0 Filesystem Type Size Used Avail Use% Mounted on /dev/sdb4 xfs 686G 358G 329G 53% /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-12 17:59:35-0400. Report generated on 2018-10-31 18:12:13 by CPU2017 ASCII formatter v6067. Originally published on 2018-09-04.