लैपैक: Difference between revisions
m (added Category:Vigyan Ready using HotCat) |
No edit summary |
||
(One intermediate revision by one other user not shown) | |||
Line 186: | Line 186: | ||
{{Numerical linear algebra}} | {{Numerical linear algebra}} | ||
{{DEFAULTSORT:Lapack}} | {{DEFAULTSORT:Lapack}} | ||
[[Category:Articles with hatnote templates targeting a nonexistent page|Lapack]] | |||
[[Category:CS1 English-language sources (en)]] | |||
[[Category: | [[Category:Collapse templates|Lapack]] | ||
[[Category:Created On 06/07/2023]] | [[Category:Created On 06/07/2023|Lapack]] | ||
[[Category:Vigyan Ready]] | [[Category:Lua-based templates|Lapack]] | ||
[[Category:Machine Translated Page|Lapack]] | |||
[[Category:Navigational boxes| ]] | |||
[[Category:Navigational boxes without horizontal lists|Lapack]] | |||
[[Category:Pages with empty portal template|Lapack]] | |||
[[Category:Pages with script errors|Lapack]] | |||
[[Category:Portal templates with redlinked portals|Lapack]] | |||
[[Category:Sidebars with styles needing conversion|Lapack]] | |||
[[Category:Template documentation pages|Documentation/doc]] | |||
[[Category:Templates Vigyan Ready|Lapack]] | |||
[[Category:Templates generating microformats|Lapack]] | |||
[[Category:Templates that add a tracking category|Lapack]] | |||
[[Category:Templates that are not mobile friendly|Lapack]] | |||
[[Category:Templates that generate short descriptions|Lapack]] | |||
[[Category:Templates using TemplateData|Lapack]] | |||
[[Category:Wikipedia metatemplates|Lapack]] | |||
[[Category:फोरट्रान पुस्तकालय|Lapack]] | |||
[[Category:फोरट्रान में निःशुल्क सॉफ्टवेयर प्रोग्राम किया गया|Lapack]] | |||
[[Category:बीएसडी लाइसेंस का उपयोग करने वाला सॉफ़्टवेयर|Lapack]] | |||
[[Category:संख्यात्मक रैखिक बीजगणित|Lapack]] | |||
[[Category:संख्यात्मक सॉफ्टवेयर|Lapack]] |
Latest revision as of 20:52, 15 July 2023
Initial release | 1992 |
---|---|
Stable release | Script error: The module returned a nil value. It is supposed to return an export table.
/ Script error: The module returned a nil value. It is supposed to return an export table. |
Written in | Fortran 90 |
Type | Software library |
License | BSD-new |
लैपैक (रैखिक बीजगणित पैकेज) संख्यात्मक रैखिक बीजगणित के लिए मानक सॉफ्टवेयर लाइब्रेरी है। यह रैखिक समीकरणों की प्रणालियों को हल करने और रैखिक न्यूनतम वर्गों के लिए संख्यात्मक विधियों, आव्यूह के आइगेनअपघटन और एकवचन मान अपघटन के लिए उपसामान्य रूप प्रदान करता है। इसमें एलयू अपघटन, क्यूआर अपघटन, चोलेस्की अपघटन और शूर अपघटन जैसे संबंधित आव्यूह गुणनखंडन को लागू करने के सामान्य रूप भी सम्मिलित है।[1] लैपैक मूल रूप से फोरट्रान 77 में लिखा गया था, परन्तु संस्करण 3.2 (2008) में इसे फोरट्रान 90 में स्थानांतरित कर दिया गया।[2] सामान्य एकल परिशुद्धता और दोहरी परिशुद्धता दोनों में वास्तविक संख्या और जटिल संख्या आव्यूह दोनों को संभालते हैं। लैपैक अपने सामान्य संस्करण के लिए कुशल और पोर्टेबल कम्प्यूटेशनल निर्माण कक्ष प्रदान करने के लिए अंतर्निहित मूलभूत रैखिक बीजगणित उपप्रोग्राम कार्यान्वयन पर निर्भर करता है।[1]: "The BLAS as the Key to Portability"
इस प्रकार से लैपैक को लिनपैक के रैखिक समीकरणों और रैखिक न्यूनतम-वर्ग सामान्य और एईसपैक के आइगेनमान सामान्य रूप के उत्तराधिकारी के रूप में डिज़ाइन किया गया था। 1970 और 1980 के दशक में लिखा गया लिनपैक, साझा मेमोरी के साथ तत्कालीन आधुनिक सदिश प्रोसेसर पर चलने के लिए डिज़ाइन किया गया था। इसके विपरीत, लैपैक को आधुनिक कैश-आधारित संरचना और आधुनिक अतिअदिश प्रोसेसर के निर्देश-स्तरीय समानता पर सीपीयू कैश का प्रभावी रूप से शोषण करने के लिए डिज़ाइन किया गया था।[1]: "Factors that Affect Performance" और इस प्रकार ठीक रूप से ट्यून किए गए बेसिक रैखिक बीजगणित उपप्रोग्राम कार्यान्वयन को देखते हुए, ऐसी मशीनों पर लिनपैक की तुलना में तीव्रता से परिमाण के क्रम में चला सकते हैं।[1]: "The BLAS as the Key to Portability" लैपैक को बाद के पैकेजों जैसे स्कालैपैक और पीलैपैक में वितरित मेमोरी प्रणाली पर चलाने के लिए भी विस्तारित किया गया है।[3]
इस प्रकार से नेटलिब लैपैक को तीन-खंड वाले बीएसडी लाइसेंस लाइसेंस के अंतर्गत लाइसेंस प्राप्त है, जो कुछ प्रतिबंधों के साथ अनुमेय मुक्त सॉफ्टवेयर लाइसेंस है।[4]
नामकरण योजना
अतः लैपैक में उपसामान्य रूप में नामकरण परंपरा है जो पहचानकर्ताओं को बहुत संहत बनाती है। यह आवश्यक था क्योंकि पहले फोरट्रान मानक मात्र छह कैरैक्टरों तक लंबे पहचानकर्ताओं का समर्थन करते थे, इसलिए इस सीमा में फिट होने के लिए नामों को छोटा करना पड़ा।[1]: "Naming Scheme"
इस प्रकार से लैपैक उपसामान्य नाम pmmaaa
रूप में है, जहां:
p
एक अक्षरीय कोड है जो प्रयुक्त संख्यात्मक स्थिरांकों के प्रकार को दर्शाता है।S
,D
एकल और दोहरी परिशुद्धता में क्रमशः वास्तविक प्रवाह-बिंदु अंकगणित के लिए खड़े रहें, जबकिC
औरZ
क्रमशः एकल और दोहरी परिशुद्धता के साथ जटिल अंकगणित के लिए खड़े हैं। नवीन संस्करण, लैपैक95, डेटा प्रकार को स्पष्ट रूप से निर्दिष्ट करने की आवश्यकता को दूर करने के लिए सामान्य क्रिया उपसामान्य रूप का उपयोग करते है।mm
दो-अक्षर वाला कोड है जो एल्गोरिदम द्वारा अपेक्षित आव्यूह के प्रकार को दर्शाता है। विभिन्न प्रकार के आव्यूह के कोड निम्न बताए गए हैं; वास्तविक डेटा विशिष्ट प्रकार के आधार पर अलग प्रारूप में संग्रहीत किया जाता है; इस प्रकार से उदाहरण के लिए, जब कोडDI
दिया जाता है, तो उपसामान्य रूप की लंबाईn
के सदिश की अपेक्षा करता है, जिसमें विकर्ण पर तत्व होते हैं, जबकि जब कोडGE
दिया जात है, तो उपसामान्य आव्यूह की प्रविष्टियों वाले n×n सरणी की अपेक्षा करता है।aaa
एक से तीन अक्षरों वाला कोड है जो उपसामान्य में लागू वास्तविक एल्गोरिदम का वर्णन करता है, इस प्रकार से उदाहरण के लिएSV
रैखिक प्रणाली को हल करने के लिए उपसामान्य को दर्शाता है, जबकिR
पद-1 अपडेट को दर्शाता है।
इस प्रकार से उदाहरण के लिए, वास्तविक दोहरे परिशुद्धता अंकगणित का उपयोग करके सामान्य (गैर-संरचित) आव्यूह के साथ रैखिक प्रणाली को हल करने के लिए उपसामान्य को DGESV
कहा जाता है।[1]: "Linear Equations"
अन्य प्रोग्रामिंग भाषाओं और लाइब्रेरी के साथ प्रयोग करें
इस प्रकार से कई प्रोग्रामिंग वातावरण आज C (प्रोग्रामिंग भाषा) बाइंडिंग के साथ लाइब्रेरी के उपयोग का समर्थन करते हैं, जिससे लैपैक सामान्य को प्रत्यक्षतः उपयोग करने की अनुमति मिलती है जब तक कि कुछ प्रतिबंध देखे जाते हैं। अतः इसके अतिरिक्त, वैज्ञानिक और संख्यात्मक कंप्यूटिंग के लिए कई अन्य सॉफ़्टवेयर लाइब्रेरी और उपकरण लैपैक के शीर्ष पर बनाए गए हैं, जैसे R (प्रोग्रामिंग भाषा),[5] मैटलैब,[6] और साइपाई आदि।[7]
कई वैकल्पिक भाषा बाइंडिंग भी उपलब्ध हैं:
- C++ के लिए Armadillo (C++ लाइब्रेरी)।
- C++ के लिए IT++
- C++ के लिए LAPACK++
- OCaml के लिए Lacaml
- C के लिए CLapack (प्रोग्रामिंग भाषा)
- Python के लिए SciPy (प्रोग्रामिंग भाषा)
- Gonum के लिए Go (प्रोग्रामिंग भाषा)
- NLapack के लिए NLapack
कार्यान्वयन
इस प्रकार से बीलेस के जैसे, विशिष्ट प्रणालियों पर ठीक निष्पादन प्रदान करने के लिए लैपैक को कभी-कभी फोर्क किया जाता है या फिर से लिखा जाता है। कुछ कार्यान्वयन हैं:
- गति बढ़ाएं
- अतः मैकओएस और आईओएस (एप्पल) के लिए एप्पल इंक. की ढांचा, जिसमें बीलेस और लैपैक के ट्यून किए गए संस्करण सम्मिलित हैं।[8][9]
- नेटलिब लैपैक
- आधिकारिक लैपैक।
- नेटलिब स्कैलापैक
- स्केलेबल (बहुकोर) लैपैक, पीबीलेस के शीर्ष पर बनाया गया है।
- इंटेल एमकेएल
- इंटेल के एक्स86 सीपीयू के लिए गणित सामान्य।
- ओपेनबीलेस
- बीलेस और लैपैक का ओपन-सोर्स पुनः कार्यान्वयन।
- गोनम लैपैक
- एक आंशिक मूल Go (प्रोग्रामिंग भाषा) कार्यान्वयन।
चूँकि लैपैक सामान्यतः अपनी अधिकांश गणनाओं को करने के लिए अंतर्निहित बीलेस सामान्य को कॉल करता है, मात्र ठीक-ट्यून किए गए बीलेस कार्यान्वयन से जुड़ना निष्पादन में उल्लेखनीय सुधार के लिए पर्याप्त हो सकता है। परिणामस्वरूप, लैपैक को बीलेस जितनी बार पुनः क्रियान्वित नहीं किया जाता है।
समान परियोजनाएं
इस प्रकार से ये परियोजनाएँ लैपैक को समान कार्यक्षमता प्रदान करती हैं, परन्तु मुख्य इंटरफ़ेस लैपैक से भिन्न है:
- लिबफ्लेम
- एक संहत रैखिक बीजगणित लाइब्रेरी। इसमें लैपैक-संगत रैपर है। अतः किसी भी बीएलएएस के साथ उपयोग किया जा सकता है, यद्यपि बीएलआईएस (सॉफ्टवेयर) चयनित कार्यान्वयन है।[10]
- आइगेन (C++ लाइब्रेरी)
- इस प्रकार से रैखिक बीजगणित के लिए हेडर लाइब्रेरी। अनुकूलता के लिए इसमें बीलेस और आंशिक लैपैक कार्यान्वयन है।
- मैग्मा
- अतः जीपीयू और बहुकोर संरचना पर आव्यूह बीजगणित (एमएजीएमए) परियोजना लैपैक के समान संहत रैखिक बीजगणित लाइब्रेरी विकसित करती है, परन्तु जीपीजीपीयू के साथ त्वरित बहुकोर प्रणाली सहित विषम और हाइब्रिड संरचना के लिए है।
- प्लाज्मा
- मापनीय बहु-कोर संरचना (प्लाज्मा) प्रोजेक्ट के लिए समानांतर रैखिक बीजगणित बहु-कोर संरचना के लिए लैपैक का आधुनिक प्रतिस्थापन है। इस प्रकार से प्लाज्मा अतुल्यकाली संचालन के विकास के लिए सॉफ्टवेयर संरचना है और क्वार्क नामक कालक्रम अनुसूचक के साथ क्रम अनुसूचीयन से बाहर है जिसका उपयोग किसी भी कोड के लिए किया जा सकता है जो निर्देशित अचक्रीय आरेख के साथ अपनी निर्भरता व्यक्त करता है।[11]
यह भी देखें
- संख्यात्मक लाइब्रेरी की सूची
- गणित कर्नेल लाइब्रेरी (एमकेएल)
- एनएजी अंकीय लाइब्रेरी
- स्लेटेक, गणितीय और सांख्यिकीय सामान्य की फोरट्रान 77 लाइब्रेरी
- क्वाडपैक, संख्यात्मक एकीकरण के लिए फोरट्रान 77 लाइब्रेरी
संदर्भ
- ↑ 1.0 1.1 1.2 1.3 1.4 1.5 Anderson, E.; Bai, Z.; Bischof, C.; Blackford, S.; Demmel, J.; Dongarra, J.; Du Croz, J.; Greenbaum, A.; Hammarling, S.; McKenney, A.; Sorensen, D. (1999). LAPACK Users' Guide (Third ed.). Philadelphia, PA: Society for Industrial and Applied Mathematics. ISBN 0-89871-447-8. Retrieved 28 May 2022.
- ↑ "LAPACK 3.2 Release Notes". 16 November 2008.
- ↑ "PLAPACK: Parallel Linear Algebra Package". www.cs.utexas.edu. University of Texas at Austin. 12 June 2007. Retrieved 20 April 2017.
- ↑ "LICENSE.txt". Netlib. Retrieved 28 May 2022.
- ↑ "R: LAPACK Library". stat.ethz.ch. Retrieved 2022-03-19.
- ↑ "मैटलैब में लैपैक". Mathworks Help Center. Retrieved 28 May 2022.
- ↑ "निम्न-स्तरीय LAPACK कार्य". SciPy v1.8.1 Manual. Retrieved 28 May 2022.
- ↑ "मार्गदर्शिकाएँ और नमूना कोड". developer.apple.com. Retrieved 2017-07-07.
- ↑ "मार्गदर्शिकाएँ और नमूना कोड". developer.apple.com. Retrieved 2017-07-07.
- ↑ "amd/libflame: High-performance object-based library for DLA computations". GitHub. AMD. 25 August 2020.
- ↑ "आईसीएल". icl.eecs.utk.edu (in English). Retrieved 2017-07-07.