Toolkit portatile ed estensibile per il calcolo scientifico - Portable, Extensible Toolkit for Scientific Computation
| Rilascio stabile | 3.16/29 settembre 2021
|
|---|---|
| Repository | |
| Sistema operativo | Linux , Unix , Mac OS X , Windows |
| Disponibile in | C, Python, Fortran |
| Tipo | Software di simulazione scientifica |
| Licenza | Licenza BSD a 2 clausole |
| Sito web | petsc |
Il Portable, Extensible Toolkit for Scientific Computation ( PETSc , pronunciato PET-see; la S è silente), è una suite di strutture dati e routine sviluppate dall'Argonne National Laboratory per la soluzione scalabile ( parallela ) di applicazioni scientifiche modellate da equazioni differenziali alle derivate parziali . Impiega lo standard Message Passing Interface (MPI) per tutte le comunicazioni di passaggio dei messaggi. PETSc è la libreria software numerica parallela più utilizzata al mondo per equazioni differenziali alle derivate parziali e calcoli di matrici sparse . PETSc ha ricevuto un premio R&D 100 nel 2009. Il PETSc Core Development Group ha vinto il premio SIAM/ACM per la scienza e l'ingegneria computazionali per il 2015.
PETSc è destinato all'uso in progetti applicativi su larga scala , molti progetti di scienza computazionale in corso sono costruiti attorno alle librerie PETSc . Il suo design accurato consente agli utenti avanzati di avere un controllo dettagliato sul processo di soluzione. PETSc include un'ampia suite di risolutori di equazioni lineari e non lineari paralleli che possono essere facilmente utilizzati in codici applicativi scritti in C , C++ , Fortran e ora Python . PETSc fornisce molti dei meccanismi necessari all'interno del codice dell'applicazione parallela, come semplici matrici parallele e routine di assemblaggio vettoriale che consentono la sovrapposizione di comunicazione e calcolo . Inoltre, PETSc include il supporto per array distribuiti paralleli utili per metodi alle differenze finite .
Componenti
PETSc è costituito da una varietà di componenti costituiti da classi principali e infrastrutture di supporto. Gli utenti in genere interagiscono con oggetti delle classi di livello più alto rilevanti per la loro applicazione, oggetti essenziali di livello inferiore come i vettori e possono personalizzare o estendere qualsiasi altro. Tutti i principali componenti di PETSc hanno un'architettura plug-in estensibile.
Caratteristiche e moduli
PETSc fornisce molte funzionalità per il calcolo parallelo, suddivise in diversi moduli:
- Insiemi di indici, comprese le permutazioni , per l' indicizzazione in vettori, la rinumerazione, ecc.
- Vettori paralleli ; e matrici (generalmente sparse )
- Scatter (gestisce la comunicazione delle informazioni sui punti fantasma) e raccoglie (l'opposto di scatter)
- Gestione dati per mesh parallele strutturate e non strutturate
- Diversi formati di archiviazione sparsi
- Parallele scalabili Precondizionatori , tra multigriglia e risolutori diretti sparse
- Metodi del sottospazio di Krylov
- Risolutori paralleli non lineari, come il metodo di Newton e il GMRES non lineare
- Risolutori time-step paralleli ( ODE e DAE )
- Risolutori di ottimizzazione parallela , come BFGS
- Profilazione automatica della virgola mobile e utilizzo della memoria
- Interfaccia coerente
- Controllo intensivo degli errori
- Portatile su UNIX , Mac OS X e Windows
Appunti
Bibliografia
- PETSc User Manual , Satish Balay, Shrirang Abhyankar, Mark F. Adams, Jed Brown, Peter Brune, Kris Buschelman, Victor Eijkhout, William D. Gropp, Dinesh Kaushik, Matthew G. Knepley, Lois Curfman McInnes , Karl Rupp, Barry F. Smith e Hong Zhang, ANL-95/11 Revisione 3.5, Argonne National Laboratory, giugno 2014.
- Gestione efficiente del parallelismo nelle librerie software numeriche orientate agli oggetti , Satish Balay, William D. Gropp, Lois Curfman McInnes, Barry F. Smith, Modern Software Tools in Scientific Computing, ed. Bruaset et al., pp. 163-202, 1997.
- Simulazione numerica di processi geodinamici con il Portable Extensible Toolkit for Scientific Computation , RF Katz, MG Knepley, B. Smith, M. Spiegelman e ET Coon, Physics of The Earth and Planetary Interiors, 163, pp. 52-68, 2007.
- Ed Bueler: "PETSc for Partial Differential Equations: Numerical Solutions in C and Python", SIAM, ISBN 978-1-611976-30-4 (2020).