PETSc
From Centrum Komputerów Dużej Mocy, ICM Uniwersytet Warszawski
| PETSc w ICM | |
|---|---|
| Produkt: | PETSc |
| Producent: | Argonne National Laboratory |
| Licencja: | otwarta |
| Zainstalowany na: | notos |
| Wersja: | 3.0.0-p7 (notos) |
| Email: | M.Szpindler@icm.edu.pl |
| Lista oprogramowania | |
Portable Extensible Toolkit for Scientific Computation (PETSc) to biblioteka procedur numerycznych rozwijana od początku lat 90-tych przez ludzi z Argonne National Laboratory. Procedury w niej zawarte służą do rozwiązywania zagadnień powstałych w wyniku dyskretyzacji równań różniczkowych cząstkowych. Biblioteka jest przeznaczona przede wszystkim do zagadnień o dużych rozmiarach z możliwością dekompozycji na mniejsze podzadania. Podzadania mogą być, pod kontrolą biblioteki, rozwiązywane równolegle na wielu procesorach. PETSc działa w oparciu o bibliotekę MPI, obsługa komunikacji w obliczeniach równoległych jest jednak w pewnym stopniu zautomatyzowana.
Contents |
Do czego służy PETSc
PETSC zawiera gotowe i przetestowane procedury równoległego rozwiązywania układów równań:
- liniowych metodami bezpośrednimi i iteracyjnymi z możliwością preconditioningu,
- jest możliwe konstruowanie własnych preconditionerów,
- nieliniowych metodą Newtona i metodami pochodnymi,
- ewolucyjnych,
a także:
- równoległe operacje na wektorach i macierzach,
- graficzne obrazowanie używanych obiektów,
- profiling.
Biblioteka jest napisana w języku C, jednak jej konstrukcja pozwala na programowanie w stylu obiektowym. Moduły PETSC składają się z wydzielonej rodziny obiektów matematycznych (wektory, macierzy, solwery, ...) i operacji wykonanych na nich. Dodatkowo każdy obiekt (w szczególności wektor i macierz) jest obiektem rozproszonym, tzn. może zostać podzielony na wiele procesorów w celu pózniejszych obliczeń równoległych. Budowa klas w bibliotece przypomina klasy w C++. Można się odwoływać do niej z programów napisanych w językach C, C++, Fortran i Python.
Wykorzystywane biblioteki
Wykorzystuje ona wbudowane biblioteki BLAS (operacje na wektorach i gęstych macierzach), LAPACK (algebra liniowa dla macierzy gęstych) i MPI (komunikacja pomiędzy procesorami, implementowany na większości komputerów równoległych i stacji roboczych). PETSc wykorzystuje także zmodyfikowane biblioteki LINPACK, SPARSPAK, SPARSKIT, libtfs.
Dostępne solvery
Łączenie z zewnetrznymi pakietami
PETSc można wywoływać za pośrednictwem zewnętrznego oprogramowania, między innymi:
- ADIC/ADIFOR narzędzie do automatycznego różniczkowania funkcji i wyznaczania rozrzedzonego jakobianu
- Mathematica
- MATLAB
- MUMPS MUltifrontal Massively Parallel sparse direct Solver
- Sundial/CVODE the LLNL SUite of Nonlinear and DIfferential/ALgebraic equation Solvers
- SuperLU/SuperLU_Dist robust and efficient sequential and parallel direct sparse solves
- UMFPACK sparse direct solvers, developed by Timothy A. Davis.
Kompetna lista na stronach domowych PETSc.
Rozwiązywanie równoległe
Biblioteka jest zorientowana na pracę równoległą. Obsługiwane architektury to:
- IBM PC, pracujące pod Linux, Windows,
- unixowe stacje robocze,
- siec takich komputerów połączonych Ethernetem,
- superkomputery masywnie równolegle.
Podręcznik
Podręcznik biblioteki PETSc:
- PETSc users manual [PDF]
- PETSc users manual [HTML]
Category: Oprogramowanie
