FinalGen Revisited
FinalGen Revisited
Article
Accepted Version
Article
It is advisable to refer to the publisher’s version if you intend to cite from the
work. See Guidance on citing .
Published version at: https://content.iospress.com/articles/icga-journal/icg190095
To link to this article DOI: http://dx.doi.org/10.3233/ICG-190095
www.reading.ac.uk/centaur
CentAUR
Central Archive at the University of Reading
Reading’s research outputs online
FINALGEN revisited: new discoveries
Romero’s FINALGEN of 2012 creates designer endgame tables for specific chess positions
that feature no more than one non-pawn piece per side. Larger hard discs and faster solid-
state discs have extended the reach of this software and encouraged its greater use. Some
new discoveries illustrate here what is now feasible and how FINALGEN may be combined
with other tools to reach definitive and likely truths.
Pedro Pérez Romero (2012) published the software FINALGEN to create position-specific ‘EGT’
endgame tables for chess positions meeting one criterion. Neither side must have more than one piece
other than the king: the remaining men must be pawns. The software uses the fact that pawns’ future
positions are highly restricted. It is greatly helped if pawns are advanced, facing each other and in the
extreme, blocking each other.
Since 2012, computer hardware and software have improved. ‘HDD’ hard discs have increased capacity
and offer better GiB/$. ‘SSD’ solid-state discs are replacing HDDs for operational purposes: they too
are providing greater capacity and their life expectancy is improving. SSDs also fail more gracefully
than HDDs that can crash in dramatic fashion. USB3.2 has superseded USB2.0 and 16-lane PCIe 5.0
will supersede today’s commonly available 4-lane PCIe 3.0. These advances greatly facilitate and
encourage the greater use of FINALGEN, increasing the number and complexity of positions that it may
feasibly address on a specific computer.
Section 1 defines the core concepts and required notation. Sections 2-7 investigate results on specific
positions addressed by the authors, including Romero’s own FINALGEN tutorial examples. Our full
chess analyses cannot be accommodated here but are available within a pgn file and, more fully
illustrated and annotated, in the supplementary document with the repository version of this note (Müller
and Haworth, 2019), along with the full statistics of the FINALGEN computations.
1
Communicating author: [email protected]
indicates the positional-strength preserved (lost). It should be noted that depth-optimisation is not the
only fruit. In chess studies and in games, the defender should be making the move that makes it hardest
for the attacker to find the winning move. This is not necessarily the depth-maximising move which, in
any case, can vary with metric and sometimes makes no chessic sense at all. Further, a winning strategy
will be easier to understand if it does not take advantage of every helpful fortuity.
Depth metric notation:
DTF: ‘Depth according to FINALGEN’, usually to a conversion before a clear win,
DTM, DTC: ‘Depth to Mate’, ‘Depth to Conversion’ (i.e., to capture, conversion and/or mate),
DTZ: ‘Depth to Zeroing (of the ply count)’, i.e., to pawn-push, capture and/or mate,
DTZ50: ‘Depth to Zeroing of ply count in the context of the FIDE 50-move draw-claim rule,
dtc/f/m/z/z50 9p(m): an actual position DTC/F/M/Z/Z50-depth of 9 plies (moves).
Strategies for choosing optimal moves:
S(FMZ)- SF-M-Z-: a strategy preserving value2 and minimising dtf, dtm and dtz in that order,
S(F&M)+ S(F+&M+) : a strategy preserving value and maximising both dtf and dtm,
S/S: defined strategies S for White and S for Black,
S(FMZ)∓ S(FMZ)-/S(FMZ)+, and similarly, S(FMZ) S(FMZ)+/S(FMZ)-.
Move optimality, sub-optimality and evaluation:
a value-preserving, equi-optimal move (not noted in our pgn files),
a value-preserving, uniquely-optimal move (‘!’ in our pgn files),
a uniquely value-preserving move (‘!!’ in our pgn files),
[4pF] move conceding 4 ply in terms of the DTF metric, ‘+(-)’ for attacker (defender),
º the only legal move,
? a move ‘dropping ¼ point’, e.g., FINALGEN finesses ‘win’ ‘win or draw’,
?? a move dropping ½ point, i.e., ‘win’ ‘draw’ or ‘draw’ ‘loss’, and
Eds+0.97 an engine (here, FRITZ14) evaluation of +0.97 at nominal search-depth of s plies.
Further, it is worth noting that our use of ‘!’ and ‘!!’ in the pgn files is unusual, and in particular, that
these symbols are not emoticons marking notably perceptive and/or surprising moves as is the custom.
Indeed, many of the moves denoted in this way are entirely obvious.
2 ‘Preserving value’ is done in the context of FINALGEN’s ‘win or draw’ and of the five (rather than three) values of the
‘syzygy’ EGTs. De Man added ‘frustrated win’ and ‘saved loss’ values in between ‘win’, ‘draw’ and ‘loss’.
EGT creation was done on two computers3,4 in both ‘N’ and ‘SfD’ modes and with EGT files NTFS-
compressed or not. The computational experiments were not run under strict benchmark conditions,
e.g., with defined clock-rate and controlled temperatures. The space figures are accurate to five figures5
but the time figures are reasonably indicative rather than exactly reproducible. Space and time con-
straints did not allow all eight options to be pursued for every position of interest.
a b c d e
Fig. 1. Romero’s examples, all wtm: (a) R02 1-0, (b) R03 =, (c) R04 1-0, (d) R07 = and (e) R08 1-0.
Fig. 2 includes Romero’s 2012 evaluations of the positions with FINALGEN v1. The appendix notes
some detailed logistics but the headlines are:
SfD mode elapsed times are no more than 43% of ‘N’ elapsed times,
SfD-EGTs are no more than 8% of the size of N-EGTs,
SfD mode indicates ‘won or drawn’ on all won and some drawn positions,
SfD is therefore a good ‘first try’ at definitively evaluating a drawn endgame,
elapsed times with SSDs can be as little as 6% of previous times with HDDs,
N-EGTs compress reliably to ~29%, and SfD-EGTs to ~39% of their intrinsic size,
On PC B, FINALGEN took ~40% longer with compressed N-EGTs, and
On PC B, FINALGEN took ~7% longer with compressed SfD-EGTs.
PPR F'Gen 1.4 'N' 'Normal' mode
folders
val.
val. plies GiB Time GiB Time GiB Time
R01 KBPKNPP 8/3k4/2p5/K1Pp1n2/5B2/8/8/8 b 0-1 0-1 97 56 19 3.4044 7' 12" 12.2464 4' 09" 0.2780 1.73
R02 KPPPPPKPPP 8/2k5/p4p2/1p3P2/PP3P2/1P6/8/2K5 w 1-0 1-0/= (43) 129 44 1.4253 117 54" 5.0917 89' 3" 0.2799 1.32
R03 KNPPKBPP 8/8/3b2k1/2p1p3/2P1P1K1/5N2/8/8 w = = — 74 24 8.6579 23' 49" 31.0491 14' 19" 0.2788 1.66
R04 KPPPPPKPPPP 8/2p5/2Pp4/3Pp2k/4P2p/4P2P/6K1/8 w 1-0 1-0 37 141 48 3.0465 253' 33" 10.6806 207' 19" 0.2852 1.22
R05 KNPPKPPP 8/5pN1/7p/p7/k7/5P1P/4K3/8 b = = — 98 33 2.6227 34' 15" 8.7636 21' 43" 0.2993 1.58
R06 KBPPKBP k7/1p2B1b1/P7/3P4/K7/8/8/8 w 1-0 1-0 17 55 18 8.7770 15' 53" 31.6531 10' 26" 0.2773 1.52
R07 KBPKBPPP 3k4/8/b7/1p2K3/pp6/8/P7/3B4 w = = — 78 24 17.4253 36' 03" 62.6432 19' 54" 0.2782 1.81
R08 KRPKRPPP 7k/8/4K1Rp/6pP/5p1r/8/8/8 w 1-0 1-0 43 78 23 19.1697 50' 0" 65.6880 31' 33" 0.2918 1.58
R09 KRPPKPPP 1k6/6p1/6P1/K5P1/R7/3pp3/8/8 w = = — 68 23 0.5674 6' 18" 1.8119 3' 46" 0.3132 1.67
R10a KBPKPP 8/1p1k4/pB6/P7/8/5K2/8/8 w 1-0 1-0 29 59 20 0.0749 0' 19" 0.2542 0' 17" 0.2945 1.12
R10b KBPKPPP 7B/1p6/p3p3/P2k4/8/8/5K2/8 w 1-0 1-0/= 63 77 26 0.6281 5' 43" 2.0809 3' 08" 0.3018 1.82
Nav1 KRPKRPPP 8/8/6p1/5p1p/4kr1P/8/2R3K1/8 w 0 65 — 0-1 132 92 25 31.7637 83' 21" 107.446 51' 52" 0.2956 1.61
Nav2 KRPKRPPP 8/8/6p1/3k1p1p/R4P1r/8/5K2/8 w 0 66 — 0-1 82 96 25 37.4639 104' 33" 127.101 60' 44" 0.2948 1.72
Nav3 KRPKRPPP positions 11a and then 11b — 0-1 — 106 25 48.5839 131' 10" 164.653 88' 56" 0.2951 1.47
Nav4 KRPKRPPP positions 11b and then 11a — 0-1 — 106 25 48.6171 128' 27" 164.685 79' 06" 0.2952 1.62
VG KQPPPKQP 7k/6p1/2q5/4Q1KP/5PP1/8/8/8 w 0 60 — 1-0 65 103 26 49.7734 191' 37" 159.6078 141' 47" 0.3118 1.35
Tiv KRPPKBPP 8/1k6/p7/1pb2K1R/8/P7/1P6/8 w 0 45 — 1-0 143 103 28 35.3708 87' 50" 118.6495 53' 23" 0.2981 1.65
LC0 KQPPPKQPP 8/6pk/1q6/5pP1/1P3P2/1Q6/1K6/8 w 0 94 — 1-0 159 159 30 97.3764 445' 08" 323.4801 349' 12" 0.3010 1.27
Kpv KNPPPKBP 8/4N3/8/1p6/1PkP4/P3K3/6b1/8 b 37 66 — = — 95 25 34.8860 81' 15" 126.8626 41' 25" 0.2750 1.96
3 PC A: Toshiba Portege Z30-A (2015), x64, 1.7GHz Core i5-4210U/4GiB, 2TiB HDD via USB2.
4 PC B: Razer Blade 15 (2018), x64, 2.2GHz Core i7-8750H/16GiB, 0.5TiB PM961 SSD via M.2 PCIe-3 x4.
5 Windows7/HDD and Windows10/SSD agree on file ‘size’ but vary in ‘size on disc’ by about 1 in 1,000,000.
3 Positions 11a-11b: Navrotescu–Shah, Pays de Charleroi Open, 2017, round 4
This game featured in the Chessbase (2018) Endgame Magic 110 as the finale of a rich and fascinating
discussion between the first author and IM Sagar Shah. Navrotescu lost in Fig. 3a with 56. Rd3?? as
56. Bc4!! draws. Even so, the win was not simple and White need not have resigned on move 65: the
endgame is a big fish which still has to be landed. The position after 64. … Rxf4 attracted the sharp
minds and serious attention of GMs Tigran Gharamian, Sandipan Chanda and Jacob Aagaard. For
months, the win was not at all clear until Jacob attacked it with FINALGEN. It was then clear why the
win was not clear: it is exceptionally deep. Sandipan then commented on the themes that emerged,
noting that Black must prevent White from establishing its king on f4 and its rook on a4. Perhaps,
looking past the sometimes-distracting detail of the computer’s lines, there is perhaps a principle here
that, given a choice of taking the f- or h-pawn, one should take the h-pawn.
a b c d e
Fig. 3. Navrotescu-Shah: as played (a) 56w and (b) 65w, hypothetically leading with SF to (c) 103w after f4;
the easier win (d) 66w after Rxh4 leading with SF to (e) 75w after h4.
After 56. Rd3?? [Ed24-3.54], the play was 56. ... Rxa7 57. f3+ Ke5 58. Bd1 Ra3 59. f4+ Ke4 60. Bc2
Ne3 61. Rxc3+ Nxc2+ 62. Rxc2 Rxg3 63. Kf2 Rf3+ (63. ... Rg4 64. Rc4+ Kd5 65. Ra4 Rxh4, Fig. 3d)
64. Kg2 Rxf4, Fig. 3b. Our FINALGEN computations ran from figures 3b and 3d. 65. … Rxh4 would
have left a win with dtf = 44 moves and a first phase of nine moves leading to Fig. 3e. However, the
chosen 64. … Rxf4 left a much more difficult win with dtf = 66 moves and a first phase of 37 moves in
the line we followed leading to Fig. 3c. In both cases and particularly as played, White could have fought
on for a while, hoping to be defending the usually drawn KRKRP(f)P(h) endgame (Müller and Konoval,
2016; Müller and Lamprecht, 2001) and/or hoping for the 50-move-draw.
4 Position 12: Vidit Gujrathi –L’Ami, NED–IND, 43rd Olympiad r10, Batumi 2018
a b c d e
Fig. 4. Vidit Gujrathi–L’Ami: as played, (a) ‘won’ 60w, (b) drawn 61b and (c) 7m-draw 69b. In the
chosen winning line by FINALGEN, (d) 66. g5 and (e) 76. f5 are wiser and later advances than the played line.
At position 60w of Fig. 4a, FINALGEN says White has a win in 33 moves. However, Vidit Gujrathi
played 60. f5?? and the position is now drawn, a fact which totally escaped top engine STOCKFISH,
kibitzing at the time (Chessbomb, 2018). Position 61b of Fig. 4b required 61. … Qd2 but 61. … Qc1?
was played, and now FINALGEN says ‘win or draw’. In fact, all lines seem to lead to a draw with pawns
and evaluations stalled at 0.00, or with a 7-man draw as at position 69b as played, see Fig. 4c. An
analysis engine recognising position-repetition and interfaced to FINALGEN and 7-man EGTs would
speed searching here. The winning SF∓ optimal line from Fig. 4a is a lesson in festina lente, showing
much later advances of the g-pawn as in Fig. 4d and the f-pawn as in Fig. 4e. Both had been providing
some shelter from a rainstorm of Black checks until it abated.
We are not dependant on FINALGEN for the next observations but it is worth noting how difficult this
6-man endgame is. On thirteen occasions, the most challenging play leaves value preserved by a unique
move. The half-point separating Vidit Gujrathi’s win from L’Ami’s draw in fact transferred six times,
with moves 71. … Kh8, 72. Qe5+, 76. … Qa3+, 82. Qe3, 85. … Kh8 and 87. h6. After 89. g5 and
another 50 moves, the draw was claimed by L’Ami under FIDE Article 9.3.1.
a b c d e
Fig. 5. Tiviakov–Korsunsky: positions in the played line, (a) 45w, (b) 62w, (c) 71b and (d) 79b.
The SF∓ FINALGEN line chosen converts to KRPKBP at (e) position 51b.
The ‘computer line’ below highlights the intrinsic difficulty of this endgame. Certainly, Tiviakov would
have found it hard to win this if Korsunsky had somehow found the best defence on each move. The
surprisingly early pawn-offer, which cannot reasonably be refused, takes us into a dual between rook
and bishop with the rook ultimately the victor.
An S(FMZ)∓ line: 45. Ke4 Kc6 46. Rh6+ Kb7 47. Kd5 Bf2 48. Re6 Bg1 49. Re4 Kb6 50. a4
bxa4 51. Rxa4 {Fig. 5e, KRPKBP, dtf/m/z = 130/146/82p} Be3 52. Ra1 Kb7 53. Re1 Bf2 54.
Rf1 Be3 55. Rf3 Bg1 56. Kd6 Bh2+ 57. Ke6 Kc6 58. Rf1 Bg3 59. Kf5 Bd6 60. Rc1+ Kb6
61. Ke4 Bc5 62. Kd3 Kb5 63. Ra1 Kb6 64. Kc4 Be3 65. Re1 Bf2 66. Rf1 Be3 67. Rf3
6 dtf > dtm! FINALGEN counts back from an ‘EGT’ KRPK mate rather than from a KQRK win found by search.
Bg1 68. Kb4 Bd4 69. Rb3 Be5 70. Ka4+ Ka7 71. Ka5 Bf6 72. Kb4 Kb6 73. Ka4+ Ka7
74. Rb4 Be5 75. Kb3 Bd6 76. Rg4 Be5 77. Rg2 Kb7 78. Kc4 Bf4 79. Rg7+ Kb6 80. Rg4
Bb8 81. Rg6+ Kb7 82. Kd5 Bf4 83. Rg4 Bb8 84. Kc5 Ba7+ 85. Kd6 Bb8+ 86. Kd7 a5 87.
Rg8 Bf4 88. Rf8 Bd2 89. Rc8 Bb4 90. Rc6 Bf8 91. Rc2 Kb6 92. Rc8 Bg7 93. Kd6 a4 94.
Rb8+ Ka7 95. Rb5 a3 96. bxa3 {KRPKB, dtf/m/z = 40/62/4p} 1-0.
6 Position 14: LEELA CHESS ZERO–ETHEREAL, TCEC Cup 1, game 14, pos. 90b
The radical ‘neural network’ and rapidly improving chess engine ‘LC0’ was of major interest to the
inaugural TCEC Cup audience (Haworth and Hernandez, 2019). ETHEREAL was also a dark horse,
newly risen to the Premier Division of the TCEC league. The ‘best of eight’ rapid tempo match between
them passed 4-4 en route to ‘best of two’ and featured unusually long contests, largely because LC0’s
evaluations frustrated the TCEC adjudication rules. Game 14 was no exception.
a b c d e
Fig. 6. LC0-Et: (a) 94w; FINALGEN-optimal line (b) 105w before b6, (c) 7m 116w and (d) 6m 128b; (e) drawn 175b.
This theoretically reached FINALGEN territory at position 74w which requires 11TB for workspace so
we quickly advance to position 94w of Fig. 6a. Removing the f- or g- pawns leaves a win with dtf =
29m/57p or 28m/55p respectively. Removing the four pawns leaves a draw. This suggests but does not
guarantee that the 9-man position 94w is decisive. FINALGEN proves that White did in fact have a win:
dtf = 159 plies: the FIDE 50-move rule, with the advancing pawn on b4 and pawns to advance or capture,
appears not to be an issue. Figs. 6(b-d) mark successive phases of the endgame. The actual game was
adjudicated by the ‘TCEC draw rule’ at move 175b, Fig. 6e.
a b c d e
Fig. 7. Karpov-Kasparov: (a) pos. 66b; drawing line (b) 73b and (c) 77w; in a better defence d) 69w and (e) 74b.
The game is no less significant than the endgame. It saw Karpov go 4-0 up and preceded 17 draws in
the controversial championship match eventually abandoned at 5-3 after five months and 48 games. The
position of Fig. 7a has been an enduring mystery, visited many times over the years (Dvoretsky, 2008;
Karolyi and Aplin, 2007; Marin, 2006; Müller, 2003 and 2005; Müller and Konoval, 2018; Timman,
2007). Was the draw missed (Kasparov, 2007) with the move 66. … Bb7?
FINALGEN shows not only that the amazing defence 66. … Bh1 draws but that it is the only drawing
move. Figs. 7b-c are taken from the drawing line. It also shows that the path to the winning line after
66. … Bb7?? is long and narrow with six ‘only’ moves for White. Figs. 7d-e are from a ‘best defence’
albeit losing line. After we had run this FINALGEN computation in 2017, Jan Kominek pointed out that
Roman Jiganchine (2015), whom we salute, had already got the same result. It is intriguing to think that
there must be many other famous game and study positions (van der Heijden, 2017) whose FINALGEN
analyses have not been widely promulgated or even done.
8 Summary
FINALGEN works beyond today’s endgame table limit of seven men, bringing definitive knowledge to
the table, providing benchmark standards of play and resolving questions that have remained unanswer-
ed for as long as thirty years. In the context of current technology, it has untapped potential both as a
working program and as a concept.
It is currently single-threaded but the principles of concurrent programming are well known and cpu
chips continue to offer more cores and processing threads. PC B’s 4-lane PCIe v3.0 interface to its SSD
provides over 1GB/s but PCIe v5.0 (PCI-SIG, 2019) in 16-lane mode promises to offer 16 times the
bandwidth, effectively reducing disc-latency to zero. Romero (2012) provides code libraries to interface
chess engines to FINALGEN EGTs: we do not believe these have been used yet. FINALGEN does not
create value-only EGTs as de Man et al (2018) do. Nor does it use two ideas exploited in Bleicher’s
FREEZER (Müller, 2005), namely trial-constraints on the chessmen and interfacing to precomputed
EGTs. The full analyses (Müller and Haworth, 2019) show how truncated FINALGEN’s searches would
be if 7-man EGTs could be consulted. These considerations suggest that the efficient creation of
FINALGEN-type EGTs could be a part of chess engines’ runtime calculations.
More immediately, a growing FINALGEN community, centred around the forum (Romero, 2012) could
evolve and share future results. Endgame tables now give instant answers for 7-man positions but
FINALGEN can address many positions with eight men or more. The examples here will hopefully
inspire others to show what is possible in creating further unarguable insights into the game of chess.
REFERENCES
Chessbase (2018). https://tinyurl.com/icgaj027. Endgame Magic 110 with Karsten Müller and Sagar
Shah. Navrotescu–Shah game and ending.
Chessbomb (2018). https://tinyurl.com/icgaj021. Vidit Gujrathi – L’Ami, Netherlands–India, round
10 of the 43rd Chess Olympiad, Batumi.
de Man, R., Fiekas, N. and Guo, B. (2018). https://tinyurl.com/icga007. Fiekas’ interface to ‘Syzygy
formatted’ de Man sub-7-man and Guo 7-man DTZ50 EGTs.
Dvoretsky, M. (2008) Dvoretsky’s Analytical Manual. Russell Enterprises.
Guo, B. (2018). ftp://ftp.chessdb.cn/pub/syzygy. EGT download site: sub-8-man DTZ50 EGTs.
Hawkins, J. (2012). Amateur to IM – Proven Ideas and Training Methods. Mongoose Press.
Haworth, G. McC. and Hernandez, N. (2019). TCEC Cup 1. ICGA Journal, 41(1), 31-38.
Jiganchine, R. (2015). https://tinyurl.com/icgaj018. Computer Precision in a Historic Endgame: Karpov
– Kasparov, 1984, game 9.
Karolyi, T. and Aplin, N. (2007). Endgame Virtuoso: Anatoly Karpov. New in Chess.
Kasparov, G. (2007). On my Great Predecessors, Vol. 5. Everyman.
Lomonosov (2012). http://tb7.chessok.com/probe. Query service to sub-8-man DTM EGTs.
Marin, M. (2006). Learn from the Legends: Chess Champions at their best. Quality Chess Europe.
Müller, K. (2003). Endgame Corner 43, September. On Karpov-Kasparov.
Müller, K. (2005). Endgame Corner 50 and 55, Feb. and July. FREEZER, and Karpov-Kasparov.
Müller, K. and Haworth, G. (2013) Rook versus Bishop. ICGA Journal, 36:4, 195-202. ISSN 13896911.
http://centaur.reading.ac.uk/36189/.
Müller K. and Haworth, G. McC. (2019). http://centaur.reading.ac.uk/80432/. This note plus data, pgn
files and an ancillary text with the full analyses and annotations by FINALGEN and the authors.
Müller K. and Konoval, Y. (2016). Understanding Rook Endgames, esp. §2.2.2. Gambit.
Müller K. and Konoval, Y. (2018). Understanding Minor Piece Endgames, Russell Enterprises. ISBN:
978-1-941270-78-3 (print), 978-1-941270-79-0 (eBook).
Müller, K. and Lamprecht, F. (2001). Fundamental Chess Endings, esp. §6.2.A2d. Gambit.
Müller, K. and Schaeffer, J. (2018). Man vs. Machine: Challenging Human Supremacy at Chess.
Russell Enterprises. ISBN 978-1941270967.
PCI-SIG (2019) https://pcisig.com/ The PCI Express Special Interest Group.
Romero, P. P. (2012) https://tinyurl.com/icga013. FINALGEN: tutorial, download and forum.
Rusz, A. (2018). Private communication confirming FINALGEN ‘win or draw’ results.
Timman, J. (2007). Power Chess with Pieces. New in Chess.
van der Heijden, H. (2017) http://hhdbv.nl/. ENDGAME STUDY DATABASE V.
Ziv, J. and Lempel, A. (1977). A Universal Algorithm for Sequential Data Compression. IEEE Trans.
on Information Theory. 23(3): 337–343. doi:10.1109/TIT.1977.1055714.
Appendix: some logistics details on working with FINALGEN and ‘syzygy’ EGTs
One caveat: FINALGEN does not reliably pick up the ‘side to move’ when importing a position.
FINALGEN can create files larger than the 4GiB limit of the venerable FAT32 file system. Media can be
reformatted to support NTFS which allows files to ~8PiB.
An SSD’s lifetime is determined by the intensity of writing activity. It is therefore worth considering
whether or not one should compress SSD-files from inception. Windows’ NTFS compression uses the
‘IEEE Milestone’ LZ77/LZ1 algorithm (Ziv and Lempel, 1977). Being linear and highly efficient, LZ77
requires minimal rewriting to disc. Given that NTFS is achieving 29% compression on ‘Normal mode’
(and 39% compression on ‘SdF’) files, there is an argument for compressing FINALGEN files on SSDs
from inception. Further, doing so with HDDs cuts disc-latency time. On PC B, the computation
overhead was about 40% in ‘Normal Mode’ and 7% in SfD mode, arguably worthwhile.