Views

PETSc

From Centrum Komputerów Dużej Mocy, ICM Uniwersytet Warszawski

Jump to: navigation, search
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.


Strukturę biblioteki obrazuje diagram
Strukturę biblioteki obrazuje diagram

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: