Simple Science

Scienza all'avanguardia spiegata semplicemente

# Informatica# Informatica distribuita, parallela e in cluster

Una Nuova Era nel Checkpointing MPI

Un nuovo approccio al checkpointing in MPI migliora l'efficienza e rende l'utilizzo più semplice.

Yao Xu, Gene Cooperman

― 6 leggere min


Metodo di checkpointingMetodo di checkpointingMPI efficienteapplicazioni MPI.migliorando le prestazioni delleNuovo algoritmo riduce il sovraccarico,
Indice

MPI, che sta per Message Passing Interface, è super usato nel calcolo parallelo nei cluster di computer. Un aspetto importante dell'uso di MPI è il Checkpointing. Il checkpointing è un metodo per salvare lo stato di un programma informatico in modo che possa riprendere dopo, particolarmente utile per compiti lunghi che richiedono molto tempo e risorse.

Questo articolo si concentra su un nuovo approccio per rendere il checkpointing in MPI più efficiente e facile da usare. L'obiettivo è creare un metodo che funzioni bene con vari tipi di sistemi di rete e abbia un impatto minimo sulle Prestazioni.

Sfide nei Metodi di Checkpointing Precedenti

In passato, ci sono state sfide significative nell'implementare il checkpointing trasparente per MPI. Le prime tecniche avevano due problemi principali:

  1. Dipendenza da Tecnologie di Rete Specifiche: Molti metodi di checkpointing si basavano molto su determinati tipi di reti. Questo li rendeva meno flessibili quando venivano sviluppate reti più nuove.

  2. Alto Sovraccarico di Runtime: Molti metodi esistenti causavano ritardi significativi durante il runtime. Questo significa che mentre si applicava il checkpointing, le prestazioni complessive delle applicazioni ne risentivano parecchio.

Un grande progresso è avvenuto nel 2019, che ha affrontato il primo problema introducendo una tecnica chiamata processi divisi. Tuttavia, il secondo problema del sovraccarico di runtime è rimasto un ostacolo fino agli sviluppi recenti.

Il Nuovo Approccio al Checkpointing

Il nuovo algoritmo di checkpointing utilizza un metodo chiamato ordinamento topologico per determinare punti sicuri per la sincronizzazione in MPI. Questo metodo è progettato per funzionare sia per comunicazioni collettive bloccanti che non bloccanti, che sono operazioni standard in MPI.

Caratteristiche Chiave del Nuovo Approccio

  1. Efficienza: Il nuovo metodo mantiene un basso sovraccarico di runtime, tipicamente tra 0% e 5%. Questo è un notevole miglioramento rispetto ai metodi precedenti.

  2. Utilizzo Pratico: Il checkpointing è trasparente, il che significa che gli sviluppatori non devono apportare modifiche alle loro applicazioni. Questo lo rende più attraente per molti utenti MPI.

  3. Scalabilità: L'approccio è stato testato in diverse applicazioni e scenari, dimostrando la sua capacità di scalare efficacemente.

Applicazioni e Test nel Mondo Reale

Il nuovo metodo di checkpointing è stato testato con cinque applicazioni reali, tra cui VASP, molto usato nella scienza dei materiali computazionale. VASP era precedentemente considerato difficile per il checkpointing a causa della sua complessità e del pesante utilizzo di Operazioni Collettive.

Valutazione delle Prestazioni

Le prestazioni del sistema di checkpointing sono state valutate attraverso vari benchmark. I risultati hanno mostrato che il nuovo metodo non solo ha funzionato bene, ma ha ridotto significativamente il sovraccarico di runtime rispetto ai metodi più vecchi.

Durante i test sul supercomputer Perlmutter, è stato riscontrato che VASP ha eseguito con solo circa il 5,2% di sovraccarico di runtime. Questo è una considerevole diminuzione rispetto ai metodi precedenti che spesso superavano il 10%. Questo dimostra che il nuovo algoritmo è piuttosto efficace per applicazioni ad alta domanda.

Contesto su MPI

Per capire l'importanza del nuovo metodo di checkpointing, è essenziale sapere come funziona MPI. MPI è composto da processi che comunicano inviando e ricevendo messaggi. Ogni processo ha un rango unico e può eseguire comunicazioni punto a punto così come operazioni collettive.

Tipi di Operazioni MPI

  1. Operazioni Punto a Punto: Queste coinvolgono comunicazioni dirette tra due processi. Esempi includono l'invio e la ricezione di messaggi.

  2. Operazioni Collettive: Queste coinvolgono più processi che lavorano insieme simultaneamente su un compito. Esempi includono la trasmissione di messaggi o la raccolta di dati da vari processi.

Le operazioni collettive sono particolarmente importanti perché sono spesso utilizzate in calcoli complessi nel calcolo scientifico.

L'Importanza di un Checkpointing Efficiente

Il checkpointing efficiente nelle applicazioni MPI è cruciale per diversi motivi:

  1. Calcoli a Lungo Termine: Con l'aumentare della durata dei compiti computazionali, cresce la necessità di un checkpointing affidabile ed efficiente. Garantisce che il lavoro possa riprendere senza ricominciare da capo.

  2. Gestione delle Risorse: Molti supercomputer allocano risorse per tempi limitati. Il checkpointing consente di concatenare le allocazioni di risorse, facilitando un utilizzo più efficiente dell'hardware.

  3. Resilienza del Software: In caso di guasti o interruzioni, avere un metodo di checkpointing affidabile aiuta a proteggere l'integrità dei compiti computazionali.

Come Funziona il Nuovo Algoritmo di Checkpointing

Il nuovo algoritmo migliora i metodi precedenti evitando un alto sovraccarico di runtime pur garantendo che tutti i processi necessari abbiano completato i loro compiti prima di effettuare un checkpoint.

Algoritmo del Clock Collettivo (CC)

Il cuore del nuovo approccio è chiamato algoritmo del Clock Collettivo (CC). Utilizza numeri di sequenza per tenere traccia di quante operazioni collettive sono avvenute. Questa tracciabilità avviene senza richiedere comunicazioni aggiuntive, minimizzando il sovraccarico.

Ecco come funziona:

  1. Inizializzazione: Ogni processo MPI mantiene un numero di sequenza per le operazioni collettive. Quando viene invocata un'operazione collettiva, questo numero aumenta.

  2. Richiesta di Checkpoint: Quando viene richiesta un'operazione di checkpointing, ogni processo identifica il proprio numero di sequenza attuale e continua a eseguire fino a raggiungere uno stato sicuro in cui tutte le operazioni possono essere completate senza lasciare compiti incompleti.

  3. Definizione di Stato Sicuro: Uno stato sicuro è definito assicurando che non ci siano operazioni collettive in corso e che tutti i membri del gruppo di comunicazione abbiano completato i loro compiti collettivi.

Vantaggi Chiave dell'Algoritmo CC

  • Bassi Costi di Comunicazione: Poiché l'algoritmo CC non richiede che i checkpoint di sincronizzazione siano intervallati da operazioni regolari, evita i costi di comunicazione che i metodi precedenti comportavano.

  • Supporto per Operazioni Non Bloccanti: Il nuovo metodo accoglie operazioni collettive non bloccanti, che i metodi più vecchi non erano in grado di gestire.

Analisi nel Mondo Reale: VASP

VASP offre un'ottima occasione per studiare l'efficacia del nuovo algoritmo. Con le sue complesse esigenze operative e dipendenza da comunicazioni efficienti, ha mostrato le capacità dell'algoritmo CC.

Risultati dai Test con VASP

Nei test con VASP, il sovraccarico osservato del 5,2% ha confermato la robustezza del nuovo sistema di checkpointing. La capacità di eseguire oltre 2.489 comunicazioni collettive al secondo con un sovraccarico minimo ha segnato un notevole passo avanti nella capacità di checkpointing di MPI.

Confronto con Metodi Precedenti

Nei metodi precedenti, specialmente nell'algoritmo del commit a due fasi (2PC), il sovraccarico di runtime è schizzato a livelli spesso inaccettabili. Questo ha generalmente portato a un degrado delle prestazioni durante le operazioni critiche.

Al contrario, l'algoritmo CC mantiene il sovraccarico basso, migliorando notevolmente l'usabilità per applicazioni che dipendono fortemente da operazioni collettive.

Conclusione

Il metodo di checkpointing trasparente migliorato per le applicazioni MPI segna un avanzamento notevole nel calcolo ad alte prestazioni. Riducendo il sovraccarico di runtime e evitando di dipendere da tecnologie di rete specifiche, l'algoritmo CC consente un uso più efficiente e pratico di MPI in vari campi scientifici e computazionali.

Con MPI che continua a essere un pilastro del calcolo parallelo, tali avanzamenti sono essenziali per migliorare le prestazioni e l'affidabilità in un panorama in rapida evoluzione delle esigenze computazionali. Questo approccio innovativo potrebbe aprire le porte a applicazioni più efficienti, fornendo un valore significativo all'intera comunità scientifica.

Fonte originale

Titolo: Enabling Practical Transparent Checkpointing for MPI: A Topological Sort Approach

Estratto: MPI is the de facto standard for parallel computing on a cluster of computers. Checkpointing is an important component in any strategy for software resilience and for long-running jobs that must be executed by chaining together time-bounded resource allocations. This work solves an old problem: a practical and general algorithm for transparent checkpointing of MPI that is both efficient and compatible with most of the latest network software. Transparent checkpointing is attractive due to its generality and ease of use for most MPI application developers. Earlier efforts at transparent checkpointing for MPI, one decade ago, had two difficult problems: (i) by relying on a specific MPI implementation tied to a specific network technology; and (ii) by failing to demonstrate sufficiently low runtime overhead. Problem (i) (network dependence) was already solved in 2019 by MANA's introduction of split processes. Problem (ii) (efficient runtime overhead) is solved in this work. This paper introduces an approach that avoids these limitations, employing a novel topological sort to algorithmically determine a safe future synchronization point. The algorithm is valid for both blocking and non-blocking collective communication in MPI. We demonstrate the efficacy and scalability of our approach through both micro-benchmarks and a set of five real-world MPI applications, notably including the widely used VASP (Vienna Ab Initio Simulation Package), which is responsible for 11% of the workload on the Perlmutter supercomputer at Lawrence Berkley National Laboratory. VASP was previously cited as a special challenge for checkpointing, in part due to its multi-algorithm codes.

Autori: Yao Xu, Gene Cooperman

Ultimo aggiornamento: 2024-08-04 00:00:00

Lingua: English

URL di origine: https://arxiv.org/abs/2408.02218

Fonte PDF: https://arxiv.org/pdf/2408.02218

Licenza: https://creativecommons.org/licenses/by-sa/4.0/

Modifiche: Questa sintesi è stata creata con l'assistenza di AI e potrebbe presentare delle imprecisioni. Per informazioni accurate, consultare i documenti originali collegati qui.

Si ringrazia arxiv per l'utilizzo della sua interoperabilità ad accesso aperto.

Articoli simili