Load-Balance and Fault-Tolerance for Massively Parallel Phylogenetic Inference

Klaus Lukas Hübner
2020
Upcoming exascale supercomputers will comprise hundreds of thousands of CPUs. Scienti c applications on these supercomputers will face two major challenges: Hardware failures, and parallelization e ciency. We extend RAxML-ng, a widely used tool to build phylogenetic trees, to mitigate hardware failures without user intervention. For this, we increase the checkpointing frequency. We also detect failures, redistribute the work among the surviving ranks, restore a consistent search state, and
more » ... rt the tree search automatically. RAxML-ng now supports fault tolerance in the tree search mode, using multiple starting trees, and multiple alignment data partitions. RAxML-ng can handle multiple failures at once as well as multiple successive failures. There is no limit on the number of failures that can occur simultaneously or sequentially. We also support mitigating failures which occur during the recovery of a previous failure or during checkpointing. In contrast to the previously available manual recovery scheme, a recovery is initiated automatically after a failure, that is, the user does not have to take any action. We benchmark our algorithms for checkpointing and recovery. In our experiments, creating a checkpoint of the model parameters requires at most 72.0 ± 0.9 ms (400 ranks, 4,116 partitions). Creating a checkpoint of the tree topology requires at most 0.575 ± 0.006 ms (1,879 taxa). The overall runtime of RAxML-ng increases by a factor of 1.02 ± 0.02 when using the new checkpointing scheme and by a factor of 1.08 ± 0.07 when using the new checkpointing scheme and ULFM v4.0.2u1 as the MPI implementation. Restoring the search state after a failure requires at most 535 ± 19 ms. We simulated up to ten failures, which causes the overall runtime to increase by a factor of 1.3 ± 0.2. We also describe multiple approaches on how to store the MSA data, which has to be re-read after a failure, redundantly in memory to avoid disc-accesses after a failure. RAxML-ng synchronizes thousands of times per second. How equally the load balancer distributes the work across the CPUs therefore directly in uences the overall runtime. We nd that some ranks require up to 30 % more time to process their portion of the work than the average rank does. We also nd that a single rank sometimes requires the most time to process the current portion of work in 30 % of all iterations. We identify the site-repeats feature (an algorithmic optimization that avoids redundant computations) as the cause of this imbalance. We also present algorithms to solve the multi-sender ℎ-relation problem and the unilaterally-saturating -matching problem. The multi-sender ℎ-relation problem is a variant of the ℎ-relation problem in which each package can be received by any CPU in a set of valid sources. The unilaterally-saturating -matching problem is a variant of the -matching problem in bipartite graphs. In thematching problem, a function ( ) de nes an upper-bound for the number of matching edges each vertex might be incident to. The matching is called unilaterally-saturating, if for one of the two sets of the bipartite graph, each vertex is incident to at least one matching edge. i Zusammenfassung Zukünftige Exascale Supercomputer werden aus hunderttausenden CPUs bestehen. Wissenschaftliche Anwendungen auf diesen Supercomputern werden mit zwei großen Herausforderungen konfrontiert: Hardwareausfälle und e ziente Parallelisierung. Wir erweitern RAxML-ng, ein weitverbreitetes Softwarewerkzeug um Phylogenetische Bäume zu bauen, um die Funktion Hardwareausfälle ohne Eingreifen des Anwenders zu behandeln. Dafür erhöhen wir die Frequenz in welcher an Kontrollpunkten eine Sicherung des Zustands der Suche erstellt wird. Wir stellen Fehler automatisch fest und verteilen im Fehlerfall die Arbeit an die überlebenden Ranks, stellen einen konsistenten Suchzustand wieder her und starten die Baumsuche neu. All dies geschieht, im Gegensatz zum bisherigen Manuellen Wiederherstellungsschema, ohne Einwirken des Nutzers. RAxML-ng unterstützt nun Ausfallsicherheit bei der Baumsuche, mit mehreren Startbäumen und mehreren Partitionen der Alignmentdaten. RAxML-ng kann mehrere gleichzeitig und nacheinander auftretende Ausfälle behandeln. Es gibt dabei keine Obergrenze für die Anzahl der Ausfälle die gleichzeitig oder hintereinander auftreten dürfen. Wir unterstützten zudem die korrekte Behandlung von Ausfällen die während dem Wiederherstellungsvorgang eines vorhergehenden Ausfalls oder während dem Speichern des Suchzustands an einem Kontrollpunkt auftreten. Wir messen die Laufzeit unserer Algorithmen für das Erstellen von Kontrollpunkten und der Wiederherstellung des Suchzustands. In unseren Experimenten dauert das Erstellen eines Kontrollpuntes der Modelparameter höchstens 72.0 ± 0.9 ms (400 Ranks, 4,116 Partitionen). Das Erstellen eines Kontrollpunktes der Baumtopologie dauert höchstens 0.575 ± 0.006 ms (1,879 Taxa). Die Gesamtlaufzeit von RAxML-ng erhöht sich um den Faktor 1.02 ± 0.02 wenn wir das neue Kontrollpunktschema verwenden und um den Faktor 1.08 ± 0.07 wenn wir das neue Kontrollpunktschema und ULFM v4.0.2u1 als MPI Implementierung verwenden. Den Suchzustand nach einem Hardwareausfall wiederherzustellen dauert höchstens 535 ± 19 ms. Wir haben bis zu zehn Hardwareausfälle simuliert, wodurch sich die Laufzeit um den Faktor 1.3 ± 0.2 verlängert hat. Wir beschreiben zudem mehrere Ansätze um die MSA-Daten, welche nach jedem Ausfall neu gelesen werden müssen, redundant im Arbeitsspeicher der Ranks vorzuhalten und so die Festplattenzugri e zu vermeiden. RAxML-ng synchronisiert tausende Male pro Sekunde. Wie gleichmäßig der Lastenverteilungsalgorithmus die Last auf die CPUs verteilt beein usst also direkt die Gesamtlaufzeit. Wir stellen fest, dass manche Ranks bis zu 30 % mehr Zeit benötigen um ihren Teil der Arbeit zu erledigen als ein Rank im Durchschnitt benötigt. Wir stellen zudem fest, dass manchmal ein Rank in 30 % aller Iterationen die meiste Zeit benötigt um sein Arbeitspaket abzuarbeiten. Wir identi zieren die Site-Repeats Funktion (eine Algorithmische Optimierung welche redundante Berechnungen vermeidet) als den Ursprung dieser Ungleichverteilung. Wir stellen weiter Algorithmen vor, welche iii das multi-sender ℎ-relation Problem und das unilaterally-saturating (einseitig sättigend)matching Problem lösen. Das multi-sender ℎ-relation Problem ist eine Variante des ℎ-relation Problems in welchem jedes Datenpaket von mehren CPUs empfangen werden kann. Das unilaterally-saturating -matching Problem ist eine Variante des -matching Problems in bipartiten Graphen. Beim -matching Problem, de niert eine Funktion ( ) eine Obergrenze für die Anzahl der Matchingkanten zu welcher jeder Knoten inzident sein darf. Wir nennen ein Matching unilaterally-saturating, falls für eine der beiden Knotenmengen des Bipartiten Graphen jeder Knoten inzident zu mindestens einer Matchingkante ist. iv
doi:10.5445/ir/1000124310 fatcat:wsq3luah2jblllz52rjcro7sxm