Lompat ke isi

Subprogram Aljabar Linear Dasar

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas
Revisi sejak 21 Juni 2021 04.12 oleh Dedhert.Jr (bicara | kontrib) (Perbaikan terjemahan istilah)
Subprogram Aljabar Linear Dasar
TipeAntarmuka pemrograman aplikasi, perangkat lunak bebas dan Pustaka perangkat lunak Edit nilai pada Wikidata
Versi pertama1979 Edit nilai pada Wikidata
GenrePustaka
Karakteristik teknis
Bahasa pemrogramanFortran Edit nilai pada Wikidata
Informasi tambahan
Situs webwww.netlib.org/blas/
Free Software DirectoryBLAS Edit nilai pada Wikidata
Sunting di Wikidata Sunting di Wikidata • Sunting kotak info • L • B
Info templat
Bantuan penggunaan templat ini

Subprogram Aljabar Linear Dasar (SALD, dalam Bahasa Inggris: Basic Linear Algebra Subprograms, BLAS) adalah spesifikasi yang mengatur kumpulan rutin tingkat rendah yang berkaitan dengan melakukan operasi aljabar linear umum seperti penambahan vektor, perkalian skalar, perkalian titik, kombinasi linear, dan perkalian matriks. Operasi-operasi tersebut secara de facto adalah standar low-level routines untuk pustaka tentang aljabar linear. Meskipun spesifikasi Subprogram Aljabar Linear Dasar bersifat umum, implementasi Subprogram Aljabar Linear Dasar pada perangkat tertentu sering kali mengoptimalkan aspek kecepatan, agar penggunaannya dapat memberikan peforma yang menguntungkan secara substansial. Implementasi Subprogram Aljabar Linear Dasar akan memanfaatkan perangkat keras titik kambang khusus seperti register vektor atau instruksi SIMD.

Subprogram Aljabar Linear Dasar berasal dari pustaka Fortran pada tahun 1979[1] dan antarmukanya distandarkan oleh Subprogram Aljabar Linear Dasar Technical (Subprogram Aljabar Linear DasarT) Forum, dengan laporan Subprogram Aljabar Linear Dasar terbarunya dapat ditemukan pada situs web netlib.[2] Pustaka Fortran ini dikenal sebagai implementasi acuan dan tidak dioptimalkan untuk kecepatan, tetapi berada dalam domain publik.[3][4]

Kebanyakan pustaka menawarkan rutinitas aljabar linear yang sesuai dengan antarmuka Subprogram Aljabar Linear Dasar, memungkinkan pengguna pustaka untuk mengembangkan program yang tidak bergantung dengan pustaka Subprogram Aljabar Linear Dasar yang mereka gunakan. Contoh perpustakaan Subprogram Aljabar Linear Dasar meliputi: AMD Core Math Library (ACML), Arm Performance Libraries,[5] Automatically Tuned Linear Algebra Software (ATLAS), Intel Math Kernel Library (MKL), dan OpenBLAS. ACML sudah tidak didukung oleh produsennya.[6] ATLAS adalah pustaka portabel yang secara otomatis mengoptimalkan dirinya sendiri keadaan arsitektur ia dijalankan. MKL adalah freeware[7] dan vendor library berbayar [8] yang dioptimalkan untuk x86 dan x86-64 dengan penekanan kinerja pada prosesor Intel.[9] OpenSubprogram Aljabar Linear Dasar adalah pustaka open-source yang dioptimalkan untuk banyak arsitektur populer. LINPACK benchmark sangat bergantung pada routine gemm pada Subprogram Aljabar Linear Dasar untuk prosesnya dalam mengukur peforma.

Banyak aplikasi perangkat lunak numerik menggunakan pustaka yang kompatibel dengan Subprogram Aljabar Linear Dasar ketika melakukan komputasi aljabar linear, termasuk Armadillo, LAPACK, LINPACK, GNU Octave, Mathematica,[10] MATLAB,[11] NumPy,[12] R, dan Julia.

Fungsi

Fungsi Subprogram Aljabar Linear Dasar dikategorikan ke dalam tiga kelompok routines yang disebut dengan "tingkat", yang bersesuaian dengan urutan kronologis dari definisi dan publikasi routines, serta derajat polinomial dalam kompleksitas algoritme; Operasi Subprogram Aljabar Linear Dasar tingkat 1 biasanya memakan waktu linear, O(n), operasi tingkat 2 waktu kuadratik, dan operasi tingkat 3 waktu kubik. [13] Implementasi Subprogram Aljabar Linear Dasar modern biasanya menyediakan ketiga level tersebut.

Tingkat 1

Tingkat ini terdiri dari semua routines yang dijelaskan dalam presentasi asli Subprogram Aljabar Linear Dasar (1979),[1] yang hanya mendefinisikan operasi vektor pada strided arrays: hasil kali titik, norma vektor, penambahan vektor secara umum dengan bentuk

(disebut dengan "axpy", "ax plus y") dan beberapa operasi lainnya.

Tingkat 2

Tingkat ini mengandung operasi matriks dan vektor umum (generalized matrix-vector, gemv), termasuk diantaranya adalah sebuah perkalian matriks dan vektor yang secara umum berbentuk

Dan solver untuk menyelesaikan

dengan T berupa matriks segitiga. Desain Subprogram Aljabar Linear Dasar Tingkat 2 dimulai pada tahun 1984, dengan hasil yang dipublikasikan pada tahun 1988.[14] Subrutin Tingkat 2 secara khusus ditujukan untuk meningkatkan kinerja program yang menggunakan Subprogram Aljabar Linear Dasar pada prosesor vektor, karena Subprogram Aljabar Linear Dasar Tingkat 1 suboptimal "karena mereka menyembunyikan sifat operasi matriks-vektor dari kompilator." [14]

Tingkat 3

Pada Tingkat ini, yang diterbitkan secara resmi pada tahun 1990,[13] berisi operasi matriks-matriks, termasuk " perkalian matriks umum" (gemm), dalam bentuk

di mana A dan B secara opsional dapat dikenai operasi transpos maupun konjungat Hermitian di dalam routine, dan ketiga matriks dapat strided. Perkalian matriks A B yang biasa dapat dilakukan dengan menetapkan α sama dengan satu dan C sebagai matriks nol dengan ukuran yang sesuai. Salah satu routine yang juga termasuk dalam Level 3 adalah komputasi

denga T berupa matriks segitiga.

Sparse Subprogram Aljabar Linear Dasar

Beberapa ekstensi Subprogram Aljabar Linear Dasar untuk menangani matriks rongga (Inggris: sparse matrix) telah diusulkan selama sejarah pustaka; satu set kecil kernel routine untuk matriks rongga akhirnya distandarisasi pada tahun 2002.[15]

Referensi

  1. ^ a b Lawson, C. L.; Hanson, R. J.; Kincaid, D.; Krogh, F. T. (1979). "Basic Linear Algebra Subprograms for FORTRAN usage". ACM Trans. Math. Softw. 5 (3): 308–323. doi:10.1145/355841.355847. Algorithm 539.
  2. ^ "BLAS Technical Forum". netlib.org. Diakses tanggal 2017-07-07.
  3. ^ blaseman Error in webarchive template: Check |url= value. Empty. "The products are the implementations of the public domain BLAS (Basic Linear Algebra Subprograms) and LAPACK (Linear Algebra PACKage), which have been developed by groups of people such as Prof. Jack Dongarra, University of Tennessee, USA and all published on the WWW (URL: http://www.netlib.org/)."[pranala nonaktif]
  4. ^ Jack Dongarra; Gene Golub; Eric Grosse; Cleve Moler; Keith Moore. "Netlib and NA-Net: building a scientific computing community" (PDF). netlib.org. Diakses tanggal 2016-02-13. The Netlib software repository was created in 1984 to facilitate quick distribution of public domain software routines for use in scientific computation.
  5. ^ "Arm Performance Libraries". Arm. 2020. Diakses tanggal 2020-12-16.
  6. ^ "ACML – AMD Core Math Library". AMD. 2013. Diarsipkan dari asli tanggal 5 September 2015. Diakses tanggal 26 August 2015.
  7. ^ "No Cost Options for Intel Math Kernel Library (MKL), Support yourself, Royalty-Free". Intel. 2015. Diakses tanggal 31 August 2015.
  8. ^ "Intel Math Kernel Library (Intel MKL)". Intel. 2015. Diakses tanggal 25 August 2015.
  9. ^ "Optimization Notice". Intel. 2012. Diakses tanggal 10 April 2013.
  10. ^ Douglas Quinney (2003). "So what's new in Mathematica 5.0?" (PDF). MSOR Connections. 3. The Higher Education Academy. Diarsipkan dari asli (PDF) tanggal 2013-10-29.
  11. ^ Cleve Moler (2000). "MATLAB Incorporates LAPACK". MathWorks. Diakses tanggal 26 October 2013.
  12. ^ Stéfan van der Walt; S. Chris Colbert; Gaël Varoquaux (2011). "The NumPy array: a structure for efficient numerical computation". Computing in Science and Engineering. 13 (2): 22–30. arXiv:1102.1523. Bibcode:2011arXiv1102.1523V. doi:10.1109/MCSE.2011.37.
  13. ^ a b Dongarra, Jack J.; Du Croz, Jeremy; Hammarling, Sven; Duff, Iain S. (1990). "A set of level 3 basic linear algebra subprograms". ACM Transactions on Mathematical Software. 16 (1): 1–17. doi:10.1145/77626.79170. ISSN 0098-3500.
  14. ^ a b Dongarra, Jack J.; Du Croz, Jeremy; Hammarling, Sven; Hanson, Richard J. (1988). "An extended set of FORTRAN Basic Linear Algebra Subprograms". ACM Trans. Math. Softw. 14: 1–17. doi:10.1145/42288.42291.
  15. ^ Duff, Iain S.; Heroux, Michael A.; Pozo, Roldan (2002). "An Overview of the Sparse Basic Linear Algebra Subprograms: The New Standard from the BLAS Technical Forum". ACM Transactions on Mathematical Software. 28 (2): 239–267. doi:10.1145/567806.567810.

Daftar pustaka

  • BLAST Forum (21 August 2001), Basic Linear Algebra Subprograms Technical (BLAST) Forum Standard, Knoxville, TN: University of Tennessee
  • Dodson, D. S.; Grimes, R. G. (1982), "Remark on algorithm 539: Basic Linear Algebra Subprograms for Fortran usage", ACM Trans. Math. Softw., 8 (4): 403–404, doi:10.1145/356012.356020
  • Dodson, D. S. (1983), "Corrigendum: Remark on "Algorithm 539: Basic Linear Algebra Subroutines for FORTRAN usage"", ACM Trans. Math. Softw., 9: 140, doi:10.1145/356022.356032
  • J. J. Dongarra, J. Du Croz, S. Hammarling, and R. J. Hanson, Algorithm 656: An extended set of FORTRAN Basic Linear Algebra Subprograms, ACM Trans. Math. Softw., 14 (1988), pp. 18–32.
  • J. J. Dongarra, J. Du Croz, I. S. Duff, and S. Hammarling, A set of Level 3 Basic Linear Algebra Subprograms, ACM Trans. Math. Softw., 16 (1990), pp. 1–17.
  • J. J. Dongarra, J. Du Croz, I. S. Duff, and S. Hammarling, Algorithm 679: A set of Level 3 Basic Linear Algebra Subprograms, ACM Trans. Math. Softw., 16 (1990), pp. 18–28.

New Subprogram Aljabar Linear Dasar

  • L. S. Blackford, J. Demmel, J. Dongarra, I. Duff, S. Hammarling, G. Henry, M. Heroux, L. Kaufman, A. Lumsdaine, A. Petitet, R. Pozo, K. Remington, R. C. Whaley, An Updated Set of Basic Linear Algebra Subprograms (Subprogram Aljabar Linear Dasar), ACM Trans. Math. Softw., 28-2 (2002), pp. 135–151.
  • J. Dongarra, Basic Linear Algebra Subprograms Technical Forum Standard, International Journal of High Performance Applications and Supercomputing, 16(1) (2002), pp. 1–111, and International Journal of High Performance Applications and Supercomputing, 16(2) (2002), pp. 115–199.

Pranala luar

  • Subprogram Aljabar Linear Dasar homepage on Netlib.org
  • Subprogram Aljabar Linear Dasar FAQ
  • Subprogram Aljabar Linear Dasar Quick Reference Guide from LAPACK Users' Guide
  • Lawson Oral History One of the original authors of the Subprogram Aljabar Linear Dasar discusses its creation in an oral history interview. Charles L. Lawson Oral history interview by Thomas Haigh, 6 and 7 November 2004, San Clemente, California. Society for Industrial and Applied Mathematics, Philadelphia, PA.
  • Dongarra Oral History In an oral history interview, Jack Dongarra explores the early relationship of Subprogram Aljabar Linear Dasar to LINPACK, the creation of higher level Subprogram Aljabar Linear Dasar versions for new architectures, and his later work on the ATLAS system to automatically optimize Subprogram Aljabar Linear Dasar for particular machines. Jack Dongarra, Oral history interview by Thomas Haigh, 26 April 2005, University of Tennessee, Knoxville TN. Society for Industrial and Applied Mathematics, Philadelphia, PA
  • How does Subprogram Aljabar Linear Dasar get such extreme performance? Ten naive 1000×1000 matrix multiplications (1010 floating point multiply-adds) takes 15.77 seconds on 2.6 GHz processor; Subprogram Aljabar Linear Dasar implementation takes 1.32 seconds.
  • An Overview of the Sparse Basic Linear Algebra Subprograms: The New Standard from the Subprogram Aljabar Linear Dasar Technical Forum Templat:Doi-inline