El Portable, Extensible Toolkit for Scientific Computation ( PETSc , pronunciado PET-see; la S no se pronuncia), 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 por 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ó un 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 en 2015. [4]
PETSc está pensado para su uso en proyectos de aplicaciones a gran escala ; muchos proyectos de ciencia computacional en curso se construyen alrededor de las bibliotecas PETSc . Su diseño cuidadoso permite a los usuarios avanzados tener un control detallado sobre el proceso de solución. PETSc incluye un gran conjunto de solucionadores de ecuaciones lineales y no lineales paralelos que se utilizan fácilmente en códigos de aplicación escritos en C , C++ , Fortran y ahora Python . PETSc proporciona muchos de los mecanismos necesarios dentro del código de aplicación paralela, como rutinas simples de ensamblaje de matrices y vectores paralelos que permiten la superposición de la comunicación y el cálculo . Además, PETSc incluye soporte para matrices distribuidas paralelas útiles para métodos de diferencias finitas . [5]
PETSc consta de una variedad de componentes que constan de clases principales e infraestructura de soporte. Los usuarios suelen interactuar con objetos de las clases de nivel más alto 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 tienen una arquitectura de complementos extensible.
PETSc proporciona muchas funciones para el cálculo paralelo, divididas en varios módulos:
{{cite web}}
: CS1 maint: copia archivada como título ( enlace ){{cite web}}
: CS1 maint: nombres numéricos: lista de autores ( enlace ){{cite web}}
: CS1 maint: copia archivada como título ( enlace )