El kit de herramientas portátil y extensible para computación científica ( PETSc , pronunciado PET-see; la S es muda) es un conjunto de estructuras de datos y rutinas desarrolladas por el Laboratorio Nacional Argonne para la solución escalable ( paralela ) de aplicaciones científicas modeladas mediante ecuaciones diferenciales parciales . Emplea el estándar Message Passing Interface (MPI) para toda la comunicación de paso de mensajes. PETSc es la biblioteca de software numérico paralelo más utilizada del mundo para ecuaciones diferenciales parciales y cálculos de matrices dispersas . PETSc recibió el premio R&D 100 en 2009. [ 1 ] [ 2 ] [ 3 ] El Grupo de Desarrollo Central de PETSc ganó el Premio SIAM/ACM en Ciencia e Ingeniería Computacional de 2015. [ 4 ]
PETSc está diseñado para su uso en proyectos de aplicaciones a gran escala ; muchos proyectos de ciencia computacional en curso se basan en las bibliotecas de PETSc . Su diseño meticuloso permite a los usuarios avanzados un control detallado del proceso de solución. PETSc incluye un amplio conjunto de solucionadores de ecuaciones lineales y no lineales en paralelo , fáciles de usar en códigos de aplicación escritos en C , C++ , Fortran y ahora Python . PETSc proporciona muchos de los mecanismos necesarios en el código de aplicación paralelo, como rutinas sencillas de ensamblaje de matrices y vectores en paralelo que permiten la superposición de comunicación y computación . Además, PETSc incluye soporte para matrices distribuidas en paralelo, útiles para métodos de diferencias finitas . [ 5 ]
Componentes

PETSc consta de diversos componentes, entre los que se incluyen clases principales e infraestructura de soporte. Los usuarios suelen interactuar con objetos de las clases de nivel superior relevantes para su aplicación, objetos esenciales de nivel inferior como vectores, y pueden personalizar o ampliar cualquier otro. Todos los componentes principales de PETSc cuentan con una arquitectura de complementos extensible.
Características y módulos
PETSc proporciona numerosas funcionalidades para la computación paralela, divididas en varios módulos:
- Conjuntos de índices, incluidas permutaciones , para indexar en vectores, renumerar, etc.
- Vectores paralelos y matrices (generalmente dispersas ).
- Dispersa (maneja la comunicación de información de puntos fantasma) y reúne (lo opuesto a dispersa).
- Gestión de datos para mallas paralelas estructuradas y no estructuradas.
- Varios formatos de almacenamiento disperso
- Precondicionadores paralelos escalables , incluidos solucionadores directos multigrid y dispersos.
- métodos de subespacio de Krylov
- Solucionadores no lineales paralelos, como el método de Newton y GMRES no lineal.
- Solucionadores de paso de tiempo paralelo ( EDO y EDA )
- Los solucionadores de optimización paralela , como BFGS
- Análisis automático del uso de memoria y de coma flotante .
- Interfaz consistente
- Verificación intensiva de errores
- Compatible con UNIX , Mac OS X y Windows.
Véase también
Notas
- ↑ "Copia archivada" (PDF) . Archivado del original (PDF) el 12-03-2013 . Recuperado el 01-05-2013 .
{{cite web}}: CS1 mantenimiento: copia archivada como título ( enlace ) - ↑ "PETSc gana el premio R&D 100 de 2009 | Centro de Computación de Liderazgo de Argonne" . Alcf.anl.gov. 21 de julio de 2009. Consultado el 1 de mayo de 2013 .
- ↑ Jue, 30/07/2009 - 5:23 a. m. (2009-07-30). "PETSc Release 3.0 amplía sus capacidades" . Rdmag.com . Consultado el 01/05/2013 .
{{cite web}}: CS1 maint: nombres numéricos: lista de autores ( enlace ) - ↑ "Premio SIAM/ACM en Ciencia e Ingeniería Computacional" . siam.org. 18 de marzo de 2015. Consultado el 19 de abril de 2015 .
- ↑ "Copia archivada" (PDF) . Archivado del original (PDF) el 5 de agosto de 2013. Recuperado el 1 de mayo de 2013 .
{{cite web}}: CS1 mantenimiento: copia archivada como título ( enlace )
Bibliografía
- Manual de usuario de PETSc , 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 y Hong Zhang, ANL-95/11 Revisión 3.5, Laboratorio Nacional Argonne, junio de 2014.
- Gestión eficiente del paralelismo en bibliotecas de software numérico orientadas a objetos , Satish Balay, William D. Gropp, Lois Curfman McInnes, Barry F. Smith, Herramientas de software modernas en computación científica, ed. Bruaset et al., págs. 163–202, 1997.
- Simulación numérica de procesos geodinámicos con el Portable Extensible Toolkit for Scientific Computation , RF Katz, MG Knepley, B. Smith, M. Spiegelman y ET Coon, Physics of The Earth and Planetary Interiors, 163, pp. 52-68, 2007.
- Ed Bueler: "PETSc para ecuaciones diferenciales parciales: soluciones numéricas en C y Python", SIAM, ISBN 978-1-611976-30-4(2020).
Enlaces externos
- El sitio web oficial de PETSc
- Bibliotecas numéricas
- Álgebra lineal numérica
- Software de simulación científica
- Bibliotecas numéricas de C++