SuperLU

(Supernodal LU)

Hak Cipta dan Lisensi

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.

FAQ

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


SuperLU Versi 5.2.1


  • 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.)
    • 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

SuperLU_MT Versi 3.1


  • 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

SuperLU_DIST Versi 5.1.2


  • 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.