Seyrek doğrusal sistemlerin çözümü için kütüphaneler


21

Seyrek bir denklem sistemini çözen çok sayıda farklı kütüphane var, ancak farklılıkların ne olduğunu çözmenin zor olduğunu düşünüyorum.

Söyleyebileceğim kadarıyla üç ana paket var: Trilinos , PETSc ve Intel MKL . Hepsi seyrek matris çözebilir, hepsi hızlıdır (söyleyebildiğim kadarıyla, hiçbirinde sağlam kriterler bulamamıştım) ve hepsi paralelleştirilebilir. Bulamadığım şey farklılıklar.

Peki, farklı seyrek doğrusal sistem çözücüler arasındaki farklar nelerdir?

Yanıtlar:


29

Orada, hepsi farklı amaçlara ve sorunların görüşlerine sahip çok daha fazlası var. Gerçekten ne çözmeye çalıştığınıza bağlı. İşte orada eksik bir paket listesi. Daha fazla ayrıntı eklemek için çekinmeyin.

Büyük Dağıtılmış İteratif Çözücü Paketleri

  • PETSc - Krylov alt uzay yöntemleri ve doğrusal çözücüler arasında kolayca geçiş yapılarak odaklanan paketler. Bu kategorideki diğerlerinden çok daha hafif ağırlık.
  • Trilinos - FEM uygulamalarına yönelik geniş bir paket seti
  • Hypre - yukarıdaki ikisine benzer. Çok iyi multigrid çözücülerinden dolayı (PETSc tarafından indirilebilen) dikkate değer.

Paralel Doğrudan Çözücü Paketleri

Seri Doğrudan Çözücü Paketleri

  • SuiteSparse - UMFPACK gerçekten iyi bir çözücüdür, ancak burada birçok başka özel amaçlı çözücü bulunmaktadır.
  • Intel Math Kernel Library - Intel'den yüksek kaliteli kütüphane; ayrıca bir Paralel İteratif Çözücüye de sahiptir (ancak büyük ölçüde paralel hiçbir şey yoktur).
  • Matrix Template Library - Generics bazen kodu çok daha hızlı hale getirebilir.

İnteraktif Ortamlar (çok küçük sistemler için daha fazlası)

Diğer Listeler


9

MKL dağıtılmış paralellik yapmaz (örn. ÇBYE) ve seyrek çözücülere verilen destek, kesinlikle diğer ikisi düzeyinde değil, ilkeldir. Şu anda, sadece bir anlamlı kriter var: Sparse Matrix-Vector ürününün (SpMV) ölçeklenebilir performansı. Bu, hafıza bant genişliği sınırlı olduğu için, sadece mahvedebilirsiniz. Hem PETSc hem de Trilinos bu konuda gayet iyi.

Asıl fark, hangi programlama ortamının sizi daha üretken kıldığıdır.


C ya da C ++ 'da çalışmak isterseniz bu durum hemen hemen kaynamaya başlar mı?
Andrew Spott

Bundan daha açık uçlu. Sayısal hesaplama dillerinin çoğundan Trilinos veya PETSc'yi kesinlikle çağırabilirsiniz (C, Python, C ++ ve Fortran hepsi uygun seçeneklerdir ve bir ölçüde MATLAB'dır).
Aron Ahmadia

PETSc, F90 dizisinin işlenmesini doğru yapar :) ve tüm nesne modeli Matlab'da bulunur.
Matt Knepley

1
PETSc ve Trilinos da bir dereceye kadar farklı topluluklarla ilgileniyor. Belki de ilk önce çözmek istediğiniz problem türlerini düşünmelisiniz ve benzer problemlerin mevcut örnekleri varsa her iki araçta da mevcut mu?
Aron Ahmadia

1
Karar vermeden sonra farklı projelerden örneklere bakmanızı tavsiye ederim. Bir problem için hangi sistemin daha iyi olacağı konusunda özel bir örneğiniz varsa, bu daha cevaplanabilir bir soru olacaktır. Aksi takdirde, sadece mezun kariyerim boyunca gerçekleşen dini savaşa başlayacağız.
aterrel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.