Czy kompilacja PETSc z zewnętrzną biblioteką BLAS / LAPACK znacząco wpływa na wydajność na rzadkich macierzach, czy używa tych bibliotek tylko do matematyki gęstej macierzy?
10
Czy kompilacja PETSc z zewnętrzną biblioteką BLAS / LAPACK znacząco wpływa na wydajność na rzadkich macierzach, czy używa tych bibliotek tylko do matematyki gęstej macierzy?
Odpowiedzi:
PETSc używa BLAS dla kilku prymitywów wektorowych, ale są one ogólnie ograniczone przepustowością pamięci i nie ma dużej rozbieżności w „optymalizacji”, więc zwykle nie robi dużej różnicy w wydajności.
Wykorzystuje również Lapacka do niektórych analiz, takich jak szacunki Lanczosa lub Arnoldiego dotyczące wartości własnych i pojedynczych wartości, ale generalnie nie są one wrażliwe na wydajność.
Gęste operacje „poziomu 3” zazwyczaj pojawiają się tylko w kontekście wrażliwym na wydajność, gdy używa się rzadkich bezpośrednich solverów z bibliotek stron trzecich (np. MUMPS, SuperLU, UMFPACK), w którym to przypadku wypełnienie ostatecznie prowadzi do gęstych problemów, które są wystarczająco duże, aby z nich skorzystać dzwoniąc do BLAS.
Jeśli polegasz na tych rzadkich rozwiązaniach bezpośrednich stosowanych do dużych problemów, warto budować z dostrojoną implementacją BLAS, w przeciwnym razie nie ma to większego znaczenia.
źródło