इससे पहले, जब मैंने कुछ रैखिक बीजगणित करना शुरू किया C, तो यह देखकर आश्चर्य हुआ कि इस तरह के कुछ ट्यूटोरियल हैं BLAS, LAPACKऔर अन्य मौलिक हैं API, इस तथ्य के बावजूद कि वे किसी तरह कई अन्य पुस्तकालयों के कोने हैं। यही वजह है कि मैं के लिए इंटरनेट पर सभी उदाहरणों / ट्यूटोरियल मैं सभी मिल सकता है इकट्ठा करने शुरू कर दिया BLAS, CBLAS, LAPACK, CLAPACK, LAPACKE, ATLAS, OpenBLAS... में इस Github रेपो ।
खैर, मुझे आपको चेतावनी देनी चाहिए कि एक मैकेनिकल इंजीनियर के रूप में मुझे इस तरह के गिट रिपॉजिटरी या गिटहब के प्रबंधन का बहुत कम अनुभव है। यह पहली बार आप लोगों को पूरी तरह से गड़बड़ लगेगा। हालाँकि यदि आप गन्दे ढाँचे पर जाने का प्रबंधन करते हैं तो आपको सभी प्रकार के उदाहरण और निर्देश मिलेंगे जो एक मदद हो सकती है। मैंने उनमें से अधिकांश की कोशिश की है, यह सुनिश्चित करने के लिए कि वे संकलन करें। और जिन लोगों का संकलन नहीं है, उनका मैंने उल्लेख किया है। मैं उनमें से कई के साथ compilable होने के लिए संशोधित किया है GNU compilers( gcc, g++और gfortran)। मैं बना दिया है MakeFileरों आप जानने के लिए कैसे आप अलग-अलग कॉल कर सकते हैं पढ़ सकते हैं जो Fortran/FORTRANएक में दिनचर्या Cया C++कार्यक्रम। मैंने मैक और लिनक्स के लिए कुछ इंस्टॉलेशन निर्देश भी दिए हैं (क्षमा करें विंडोज़ लोग!)। मैंने भी कुछ बनाया हैbash .sh इनमें से कुछ पुस्तकालयों के स्वत: संकलन के लिए फाइलें।
लेकिन अपने अन्य प्रश्न के लिए जा रहे हैं : BLASऔर विशिष्ट नहीं हैं । वे केवल कार्यान्वयन या पुस्तकालयों के बजाय विनिर्देशों या भाषा एक्सटेंशन की एक सूची हैं। इसके साथ ही कहा, वहाँ से मूल कार्यान्वयन हैं Netlib में है, जो ज्यादातर लोगों का उल्लेख (भ्रमित करने वाले!) जब के बारे में बात और । इसलिए यदि आप इन एस का उपयोग करते समय बहुत सी अजीब चीजें देखते हैं क्योंकि आप वास्तव में पुस्तकालयों और कार्यों के बजाय रूटीन कह रहे थे । और का सबसे अच्छा कार्यान्वयन में से कुछ हैं और जहाँ तक मुझे पता है। वे मूल के अनुरूप हैं , भले ही, मेरे ज्ञान के लिए उन्हें लागू किया गया होLAPACKAPISDKFORTRAN 77BLASLAPACKAPIFORTRANCCATLASOpenBLASBLASLACPACKAPIC/C++खरोंच से (यकीन नहीं!)। वहाँ की GPGPU कार्यान्वयन हैं APIs का उपयोग करके OpenCL: CLBlast , clBLAS , clMAGMA , ArrayFire और ViennaCL कुछ का उल्लेख। विशिष्ट हार्डवेयर या प्लेटफ़ॉर्म के लिए अनुकूलित वेंडर विशिष्ट कार्यान्वयन भी हैं, जो मैं किसी को भी उनका उपयोग करने के लिए दृढ़ता से हतोत्साहित करता हूं।
किसी को जो का उपयोग कर सीखना चाहता है मेरे सिफारिश BLASऔर LAPACKमें Cजानने के लिए है FORTRAN-Cमिश्रित प्रोग्रामिंग पहले। उल्लिखित रेपो का पहला अध्याय इस मामले के लिए समर्पित है और वहाँ मैंने कई अलग-अलग उदाहरण एकत्र किए हैं।
पुनश्च मैं समय-समय पर भंडार की देव शाखा पर काम कर रहा हूं । यह थोड़ा कम गन्दा लगता है!