SuperLU
(Supernodal LU)
SuperLU adalah library tujuan umum untuk solusi langsung dari besar, jarang, sistem nonsymmetric persamaan linear. Perpustakaan ditulis dalam C dan callable baik dari C atau program Fortran.Menggunakan MPI, OpenMP dan CUDA untuk mendukung berbagai bentuk paralelisme. Ini mendukung kedua tipe data yang nyata dan kompleks, baik presisi tunggal dan ganda, dan 64-bit integer pengindeksan. Rutinitas perpustakaan melakukan dekomposisi LU dengan berputar parsial dan sistem segitiga memecahkan melalui depan dan belakang substitusi. Rutinitas faktorisasi LU dapat menangani matriks non-square tapi memecahkan segitiga dilakukan hanya untuk matriks persegi. Kolom matriks dapat preordered (sebelum faktorisasi) baik melalui perpustakaan atau pengguna disediakan rutinitas.Preordering ini untuk sparsity benar-benar terpisah dari faktorisasi tersebut. Bekerja presisi subrutin perbaikan berulang disediakan untuk stabilitas mundur ditingkatkan. Rutinitas juga disediakan untuk menyeimbangkan sistem, memperkirakan jumlah kondisi, menghitung kesalahan mundur relatif, dan batas kesalahan perkiraan untuk solusi halus.
Serial paket SuperLU juga mengandung ILU rutinitas, menggunakan numerik menjatuhkan berbasis threshold, dengan berputar parsial (ILUTP) .
SuperLU paket datang dalam tiga rasa yang berbeda:
- SuperLU untuk mesin sekuensial ( kode dokumentasi di HTML)
- SuperLU_MT untuk mesin paralel memori bersama
- SuperLU_DIST untuk memori terdistribusi ( kode dokumentasi di HTML)
Mesin target untuk SuperLU_DIST adalah sangat paralel sistem memori hybrid didistribusikan. Rutinitas faktorisasi numerik sudah diimplementasikan untuk sistem hibrida dengan beberapa GPU.Pekerjaan lebih lanjut akan diperlukan untuk melaksanakan tahapan lain dari algoritma pada sistem hybrid dan untuk meningkatkan skala kuat untuk skala ekstrim.
The Panduan Pengguna ' (laporan Tek LBNL-44289) menjelaskan ketiga perpustakaan. (Update terakhir: Oktober 2014)
Cara Cite SuperLU dalam suatu publikasi.
Pengguna Mailing List digunakan untuk mengumumkan perubahan, rilis baru, dll
Silakan kirim email jika Anda telah menggunakan salah versi perpustakaan.
Ini adalah saya Artikel survei tentang pemecah langsung jarang berbagai rasa.
Penggunaan SuperLU (halaman sedang dalam konstruksi)
Proyek ini telah didanai oleh DOE, NSF dan DARPA.
Pengembang:
X. Sherry Li
Jim Demmel
John Gilbert
Laura Grigori
Piyush Sao
Meiyue Shao
Ichitaro Yamazaki
Kontributor lainnya:
Pietro Cicotti, UCSD
Daniel Schreiber
Jinqchong Teo
Yu Wang
Eric Zhang, Albany Tinggi
- Download software (v5.2.1) - kode sumber dan dokumentasi dalam file tar terkompresi (~ 2,6 MB).
- Mendukung kedua jenis data real dan kompleks, dalam presisi tunggal atau ganda.
- The kertas SIMAX menggambarkan algoritma dan kinerja pada berbagai mesin.
SuperLU telah mencapai hingga 40% dari tarif floating-point teoritis pada sejumlah workstation, seperti MIPS R8000 dan IBM RS / 6000. Tingkat megaflop biasanya meningkat dengan meningkatnya rasio operasi floating-point menghitung lebih jumlah nonzeros dalam L dan faktor U. - Ini Laporan Teknis (diterbitkan dalam ACM Trans. Matematika. Software, Vol. 37, No. 4, Pasal No. 43, April 2011) menggambarkan algoritma ILU diimplementasikan dalam SuperLU 4.0.
- Ini slide adalah dari pembicaraan up-to-date.
- Catatan rilis:
- 4 Februari 1997 Versi 1.0
- November 15, 1997 Versi 1.1
- September 1, 1999 Versi 2.0 (update terakhir: 06/03/03)
- 15 Oktober 2003 Versi 3.0 (update terakhir: 01/02/06)
- Sertakan "mode simetris"
- 1 Agustus 2008 Versi 3.1
- 30 Juni 2009 Versi 4.0 (update terakhir: 12/18/09)
- Termasuk ambang berbasis faktorisasi tidak lengkap (ILU)
(Lihat rincian di tulisan ini diterbitkan dalam ACM Trans. Matematika. Software, Vol. 37, No. 4, Pasal No. 43, April 2011.)
- Termasuk ambang berbasis faktorisasi tidak lengkap (ILU)
- November 25, 2010 Versi 4.1
- 25 Agustus 2011 Versi 4.2
- 27 Oktober 2011 Versi 4.3 (update terakhir: 2011/12/14)
- Berganti nama beberapa konstanta enum.
- 26 Juli 2015 Versi 5.0
- benang-aman: menghapus variabel statis; mengganti xLAMCH oleh tabel di float.h (C99 standar).
- Antarmuka perubahan pada rutinitas follwoing: xGSSVX (driver ahli), xGSTRF (faktorisasi). Konsultasikan contoh dlinsolx.c di CONTOH / diretory untuk melihat urutan panggilan.
- 3 Desember 2015 Versi 5.1 (Bug fix: Versi 5.1.1 22 Januari 2016)
- Mengganti nama dari rutinitas internal. Tidak ada perubahan antarmuka.
- Nyata & kompleks yang digunakan bersama-sama.
- Bug fix untuk perbaikan iteratif untuk konjugat kompleks.
- Ditambahkan CMake membangun pilihan.
- April 8, 2016 Versi 5.2.0 (patch Kecil: Versi 5.2.1 , 22 Mei 2016)
- Pertama rilis xSDK, tambahkan pemberitahuan hak cipta di setiap file.
- perubahan Log
- Download software (V3.0) -. Kode sumber dan dokumentasi dalam file tar terkompresi (~ 1,7 MB)
Menyediakan Pthreads dan interface OpenMP. Ada juga petunjuk paralel untuk beberapa SMP tua. - Mendukung kedua jenis data real dan kompleks, dalam presisi tunggal atau ganda.
- The kertas SIMAX menggambarkan algoritma dan kinerja pada berbagai mesin.
SuperLU_MT menunjukkan 5--10 pemercepat kali lipat pada berbagai SMP populer komersial, dan sampai tingkat faktorisasi 2,5 Gigaflops. - Ini slide adalah dari pembicaraan up-to-date.
- Catatan rilis:
- November 15, 1997 Versi ALPHA
- September 1, 1999 Versi 1.0 (update terakhir: 5/24/05)
- September 10, 2007 Versi 2.0 (update terakhir: 12/12/12)
- 20 Maret 2013 Versi 2.1
- 18 Agustus 2014 Versi 2.2
- 20 Desember 2014 Versi 2.3
- 7 Februari 2015 Versi 2.4
- 1 Mei 2015 Versi 3.0
- 29 Maret 2016 Versi 3.1
- Tambahkan {c, z} matvec2 () rutinitas di {c, z} myblas2.c
- Perubahan Log
- Download software (V5.1.2) - kode sumber dan dokumentasi dalam file tar terkompresi (~ 1,6 MB).
- Mendukung manycore heterogeous arsitektur simpul: MPI digunakan untuk komunikasi interprocess, OpenMP digunakan untuk on-node threading, CUDA digunakan untuk komputasi di GPU.
- Mendukung kedua jenis data real dan kompleks, dalam presisi ganda.
- The kertas SC98 menjelaskan algoritma GESP baru kami dirancang untuk mesin paralel skala besar.
GESP singkatan Eliminasi Gauss dengan "Static Berputar". Berputar statis adalah teknik yang menggabungkan stabilitas numerik berputar parsial dengan skalabilitas ada berputar, untuk menjalankan secara akurat dan efisien pada sejumlah besar prosesor. - The kertas SIAM PP99 meningkatkan kinerja kernel -. 20% sampai 40% lebih baik dari kertas SC98
SuperLU_DIST menunjukkan hingga 100 speedup kali lipat dari 512-PE Cray T3E di NERSC, dan tingkat faktorisasi 10,2 Gigaflops, menggunakan MPI. - The kertas SC01 menjelaskan penggunaan SuperLU_DIST untuk memecahkan sistem linear jarang yang kompleks untuk memesan 2 juta, untuk masalah mekanika kuantum.
Hasil ilmiah dilaporkan sebelumnya dalam artikel sampul Sains , 24 Desember 1999. - The ACM TOMS kertas (2003) membahas semua aspek dari perpustakaan SuperLU_DIST.
- Ini tabel berisi hasil numerik rinci dari algoritma GESP.
- The SIAM SISC kertas (2007) menggambarkan algoritma paralel dan kinerja untuk faktorisasi simbolik.
- Catatan rilis:
- September 1, 1999 Versi 1.0 (update terakhir: 2/18/03)
- 15 Maret 2003 Versi 2.0 (update terakhir: 01/02/06)
- Termasuk antarmuka masukan didistribusikan
- November 1, 2007 Versi 2.1 (update terakhir: 12/19/07)
- Termasuk faktorisasi simbolik paralel. (mengutip kertas SISC , SIAM J. Sci. Comp., 29, Edisi 3, 1289-1314, 2007. Vol.)
- Feburary 20, 2008 Versi 2.2
- kebocoran memori tetap dan beberapa bug lain di faktorisasi simbolik paralel
- 15 Oktober 2008 Versi 2.3 (update terakhir: 04/02/10)
- Tetap beberapa bug yang terkait dengan 64-bit panjang int panjang. (04/02/10)
- kecepatan ditingkatkan dari faktorisasi dan segitiga memecahkan dengan node multicore.
- 9 Juni 2010 Versi 2.4 (update terakhir: 06/25/10)
- Diperbarui beberapa file header.
- November 25, 2010 Versi 2.5 (update terakhir: 08/01/2011)
- 18 Oktober 2011 Versi 3.0 (update terakhir: 2011/10/25)
- Faktorisasi adalah 2-3x lebih cepat menggunakan ratusan prosesor. (mengutip IPDPS 2012 kertas , IPDPS 2012 Proceedings, pp 619-630, doi:.. 10,1109 / IPDPS.2012.63)
- 20 Mei 2012 Versi 3.1 (update terakhir: 2012/06/27)
- Update (par) antarmuka Metis agar kompatibel dengan 64-bit ParMetis 4.0.2.
- Memperbaiki bug dalam rutinitas faktorisasi saat menggunakan 64-bit integer.
- 24 Oktober 2012 Versi 3.2
- perbaikan bug, dan datatype kompleks untuk F90 wrapper.
- 31 Maret 2013 Versi 3.3
- perbaikan bug dalam rutinitas faktorisasi.
- 1 Oktober 2014 Versi 4.0 (update terakhir: 2014/10/11, tambahkan kompilasi bersyarat untuk OpenMP)
- menambahkan multithreading (OpenMP) dan GPU (CUDA) dukungan. (mengutip kertas EuroPar2014 , LNCS Vol. 8632. Porto, Portugal, 25-29 Agustus, 2014.)
- perbaikan kerusakan.
- 17 Juli 2015 Versi 4.1 (update terakhir: 2015/08/05, koreksi minor ke beberapa prototipe)
- perbaikan kerusakan.
- September 25, 2015 Versi 4.2
- mengganti xLAMCH oleh xMACH, menggunakan C99 standar.
- 31 Desember 2015 Versi 4.3 (update terakhir: 2016/01/07)
- Memperbaiki bug di faktorisasi simbolik paralel, terkait dengan pemisah padat.
- Menyelesaikan konflik nama dengan seri SuperLU dan LAPACK.
- Sopir rutinitas kembali bendera kesalahan INFO tepat, bukan keluar.
- Benar bendera nol poros dalam matriks singular.
- April 8, 2016 Versi 5.0.0
- May 15, 2016 Versi 5.1.0
- Tambahkan p? GetDiagU () untuk mengekstrak entri diagonal dari faktor U
- 4 Oktober 2016 Versi 5.1.1 -> 21 Oktober 2016 Versi 5.1.2
- Memperbaiki bug dalam menghitung ukuran U panel penyangga.
- (Release V5.1.2): bug fix terkait dengan menggunakan 64-bit integer.