2025-11-10T02:34:56.080990

Verification Challenges in Sparse Matrix Vector Multiplication in High Performance Computing: Part I

Zhang
Sparse matrix vector multiplication (SpMV) is a fundamental kernel in scientific codes that rely on iterative solvers. In this first part of our work, we present both a sequential and a basic MPI parallel implementations of SpMV, aiming to provide a challenge problem for the scientific software verification community. The implementations are described in the context of the PETSc library.
academic

उच्च प्रदर्शन कंप्यूटिंग में विरल मैट्रिक्स वेक्टर गुणन में सत्यापन चुनौतियाँ: भाग I

मूल जानकारी

  • पेपर ID: 2510.13427
  • शीर्षक: Verification Challenges in Sparse Matrix Vector Multiplication in High Performance Computing: Part I
  • लेखक: Junchao Zhang (Argonne National Laboratory)
  • वर्गीकरण: cs.LO cs.DC cs.MS
  • प्रकाशन सम्मेलन: International Workshop on Verification of Scientific Software (VSS 2025)
  • प्रकाशन जानकारी: EPTCS 432, 2025, pp. 98–105
  • पेपर लिंक: https://arxiv.org/abs/2510.13427

सारांश

विरल मैट्रिक्स वेक्टर गुणन (SpMV) वैज्ञानिक कोड में एक मौलिक कर्नेल है जो पुनरावृत्तिमूलक समाधानकर्ताओं पर निर्भर करता है। हमारे कार्य के इस पहले भाग में, हम SpMV के अनुक्रमिक और मूल MPI समानांतर कार्यान्वयन दोनों प्रस्तुत करते हैं, जिसका उद्देश्य वैज्ञानिक सॉफ्टवेयर सत्यापन समुदाय के लिए एक चुनौती समस्या प्रदान करना है। कार्यान्वयन को PETSc लाइब्रेरी के संदर्भ में वर्णित किया गया है।

अनुसंधान पृष्ठभूमि और प्रेरणा

समस्या परिभाषा

यह अनुसंधान उच्च प्रदर्शन कंप्यूटिंग में विरल मैट्रिक्स वेक्टर गुणन (SpMV) के सॉफ्टवेयर सत्यापन चुनौतियों को संबोधित करता है। SpMV विरल रैखिक समीकरण प्रणाली Ax=b को हल करने का मूल संचालन है, जो पुनरावृत्तिमूलक समाधानकर्ताओं पर आधारित वैज्ञानिक कंप्यूटिंग कोड में व्यापक रूप से लागू होता है, विशेष रूप से बड़े पैमाने पर Krylov उप-स्थान विधियों में।

महत्व

  1. मौलिकता: SpMV वैज्ञानिक कंप्यूटिंग का एक मौलिक मूल एल्गोरिदम है, इसकी शुद्धता सीधे उच्च-स्तरीय अनुप्रयोगों की विश्वसनीयता को प्रभावित करती है
  2. जटिलता: हालांकि गणितीय परिभाषा सरल है (yi = Σ(aij·xj)), भंडारण प्रारूप, डेटा वितरण, समानांतरकरण और अनुकूलन कार्यान्वयन को जटिल बनाते हैं
  3. सत्यापन चुनौतियाँ: मौजूदा जटिल अनुकूलित कार्यान्वयन सॉफ्टवेयर सत्यापन के लिए महत्वपूर्ण चुनौतियाँ प्रस्तुत करते हैं

मौजूदा विधियों की सीमाएँ

  • PETSc लाइब्रेरी में अत्यधिक अनुकूलित MPI समानांतर SpMV कार्यान्वयन मौजूद हैं, लेकिन उनकी जटिलता सत्यापन को कठिन बनाती है
  • सॉफ्टवेयर सत्यापन समुदाय के लिए विशेष रूप से डिज़ाइन किए गए मानकीकृत चुनौती समस्याओं की कमी है

अनुसंधान प्रेरणा

वैज्ञानिक सॉफ्टवेयर सत्यापन समुदाय को एक संरचित चुनौती समस्या प्रदान करना, सरल से जटिल SpMV कार्यान्वयन प्रदान करके, सत्यापन उपकरणों और विधियों के विकास और मूल्यांकन में सहायता करना।

मूल योगदान

  1. मानकीकृत सत्यापन चुनौती समस्या प्रदान की: वैज्ञानिक सॉफ्टवेयर सत्यापन समुदाय के लिए SpMV के मानक परीक्षण मामले डिज़ाइन किए गए
  2. दो भिन्न जटिलता स्तरों के SpMV एल्गोरिदम को कार्यान्वित किया:
    • अनुक्रमिक कार्यान्वयन (seq.c)
    • मूल MPI समानांतर कार्यान्वयन (mpibasic.c)
  3. एक संपूर्ण सत्यापन ढांचा स्थापित किया: इनपुट डेटा जनरेशन, शुद्धता जांच और त्रुटि पहचान तंत्र सहित
  4. सत्यापन उद्देश्यों को स्पष्ट रूप से परिभाषित किया: प्रत्येक कार्यान्वयन के लिए विशिष्ट सत्यापन आवश्यकताएं और चुनौतियाँ प्रदान की

विधि विवरण

कार्य परिभाषा

इनपुट:

  • विरल मैट्रिक्स A (M×N, NNZ गैर-शून्य तत्व), CSR प्रारूप में संग्रहीत
  • वेक्टर x (N-आयामी)
  • अपेक्षित परिणाम z = Ax (M-आयामी)

आउटपुट:

  • गणना परिणाम y = Ax
  • शुद्धता सत्यापन: ||y-z||² को 0 होना चाहिए (फ्लोटिंग-पॉइंट राउंडिंग त्रुटि को अनदेखा करते हुए)

बाधाएं:

  • संपीड़ित विरल पंक्ति (CSR) प्रारूप का उपयोग करें
  • MPI समानांतर वितरित कंप्यूटिंग का समर्थन करें

डेटा संरचना डिज़ाइन

CSR प्रारूप प्रतिनिधित्व

विरल मैट्रिक्स A को तीन सरणियों द्वारा प्रदर्शित किया जाता है:

  • a[nnz]: गैर-शून्य तत्व मान संग्रहीत करता है
  • j[nnz]: गैर-शून्य तत्वों के स्तंभ सूचकांक संग्रहीत करता है
  • i[m+1]: पंक्ति सूचक, ik a और j में k-वीं पंक्ति की शुरुआती स्थिति की ओर इशारा करता है

डेटा प्रकार परिभाषा

// अनुक्रमिक संस्करण
typedef struct {
    int m, n;        // मैट्रिक्स आयाम
    int *i, *j;      // CSR प्रारूप सूचकांक
    double *a;       // गैर-शून्य तत्व मान
} Mat;

// MPI समानांतर संस्करण
typedef struct {
    int m, n, M, N;  // स्थानीय और वैश्विक आयाम
    int rstart, cstart; // शुरुआती पंक्ति स्तंभ सूचकांक
    int *i, *j;
    double *a;
} Mat;

एल्गोरिदम कार्यान्वयन

अनुक्रमिक कार्यान्वयन

for (i = 0; i < A.m; i++) {
    y.a[i] = 0.0;
    for (j = A.i[i]; j < A.i[i + 1]; j++)
        y.a[i] += A.a[j] * x.a[A.j[j]];
}

MPI समानांतर कार्यान्वयन

  1. डेटा वितरण रणनीति:
    • मैट्रिक्स को पंक्ति ब्लॉक द्वारा वितरित किया जाता है: m = M/size + (M%size > rank ? 1 : 0)
    • वेक्टर x को स्तंभ लेआउट द्वारा वितरित किया जाता है: n = N/size + (N%size > rank ? 1 : 0)
  2. संचार पैटर्न:
    • पूर्ण वेक्टर x एकत्र करने के लिए MPI_Allgather या MPI_Allgatherv का उपयोग करें
    • वैश्विक मानदंड की गणना के लिए MPI_Allreduce का उपयोग करें
  3. गणना प्रवाह:
    • स्थानीय मैट्रिक्स लेआउट (rstart, cstart) की गणना करें
    • वैश्विक सरणी से स्थानीय डेटा निकालें
    • वितरित वेक्टर x को स्थानीय पूर्ण प्रति X में एकत्र करें
    • स्थानीय SpMV गणना निष्पादित करें
    • स्थानीय त्रुटि मानदंड की गणना करें और वैश्विक रूप से कम करें

तकनीकी नवाचार बिंदु

  1. क्रमिक जटिलता डिज़ाइन: सरल अनुक्रमिक कार्यान्वयन से मूल समानांतर कार्यान्वयन तक, सत्यापन उपकरणों के क्रमिक परीक्षण के लिए सुविधाजनक
  2. मानकीकृत सत्यापन इंटरफेस: एकीकृत इनपुट आउटपुट प्रारूप और शुद्धता जांच तंत्र प्रदान करें
  3. वास्तविक अनुप्रयोग पृष्ठभूमि: PETSc लाइब्रेरी के वास्तविक कार्यान्वयन पैटर्न पर आधारित, व्यावहारिक महत्व के साथ
  4. विस्तारणीय ढांचा: भविष्य के अधिक जटिल अनुकूलित संस्करणों (भाग II) के लिए आधार तैयार करें

प्रायोगिक सेटअप

डेटासेट

  • मैट्रिक्स स्केल: 32×36 मैट्रिक्स, 50 गैर-शून्य तत्वों के साथ
  • डेटा जनरेशन: सहायक Python स्क्रिप्ट csr.py का उपयोग करके परीक्षण डेटा जनरेट करें
  • हार्डकोडेड इनपुट: उपयोग को सरल बनाने के लिए, परीक्षण डेटा सीधे स्रोत कोड में एम्बेड किया गया है
  • अनुकूलनीयता: उपयोगकर्ता विभिन्न परीक्षण मामले जनरेट करने के लिए Python स्क्रिप्ट पैरामीटर को संशोधित कर सकते हैं

मूल्यांकन मेट्रिक्स

  • शुद्धता सत्यापन: ||y-z||² का वर्ग मानदंड की गणना करें
  • सफलता मानदंड: मानदंड ≤ 1e-6 (फ्लोटिंग-पॉइंट राउंडिंग त्रुटि पर विचार करते हुए)
  • रिटर्न कोड: सही होने पर 0 लौटाएं, त्रुटि होने पर गैर-शून्य मान लौटाएं

कार्यान्वयन विवरण

  • प्रोग्रामिंग भाषा: C भाषा
  • समानांतर ढांचा: MPI
  • संकलन आवश्यकताएं: केवल C संकलक या MPI संकलक की आवश्यकता है
  • कोड उपलब्धता: GitHub रिपॉजिटरी में सार्वजनिक रूप से जारी किया गया

प्रायोगिक परिणाम

सत्यापन उद्देश्य

अनुक्रमिक कार्यान्वयन सत्यापन आवश्यकताएं

गणना परिणाम y को सत्यापित करें जो संतुष्ट करता है: yi = Σ(aij·xj), जहाँ CSR प्रतिनिधित्व में संग्रहीत नहीं किए गए aij को 0 माना जाता है

MPI समानांतर कार्यान्वयन सत्यापन आवश्यकताएं

  1. लेआउट शुद्धता: Σm = M, Σn = N को सत्यापित करें
  2. स्थानीय गणना शुद्धता: सत्यापित करें कि प्रत्येक प्रक्रिया पर y संबंधित स्थानीय उप-मैट्रिक्स और पूर्ण वेक्टर x के सही गुणन परिणाम हैं

परीक्षण मामले

पेपर विशिष्ट परीक्षण डेटा प्रदान करता है:

  • इनपुट मैट्रिक्स: 32×36 विरल मैट्रिक्स (50 गैर-शून्य तत्व)
  • इनपुट वेक्टर: 36-आयामी वेक्टर
  • अपेक्षित आउटपुट: 32-आयामी परिणाम वेक्टर
  • सभी डेटा पूर्णांक और फ्लोटिंग-पॉइंट सरणी रूप में प्रदान किए गए हैं

संबंधित कार्य

संबंधित अनुसंधान क्षेत्र

  1. Krylov उप-स्थान विधियाँ: SpMV पुनरावृत्तिमूलक समाधानकर्ताओं का मूल घटक है
  2. PETSc लाइब्रेरी: Krylov विधियों और SpMV कार्यान्वयन का समृद्ध सूट प्रदान करता है
  3. वैज्ञानिक सॉफ्टवेयर सत्यापन: उच्च प्रदर्शन वैज्ञानिक कंप्यूटिंग सॉफ्टवेयर की शुद्धता सत्यापन के लिए

इस पेपर की स्थिति

  • वैज्ञानिक सॉफ्टवेयर सत्यापन समुदाय में मानकीकृत SpMV सत्यापन चुनौती की कमी को भरता है
  • जटिल अनुकूलित कार्यान्वयन के सत्यापन के लिए एक मूल संदर्भ प्रदान करता है
  • सैद्धांतिक सत्यापन विधियों को वास्तविक HPC अनुप्रयोग आवश्यकताओं से जोड़ता है

निष्कर्ष और चर्चा

मुख्य निष्कर्ष

  1. SpMV सॉफ्टवेयर सत्यापन के लिए मानकीकृत चुनौती समस्या सफलतापूर्वक स्थापित की
  2. दो भिन्न जटिलता स्तरों के कार्यान्वयन प्रदान किए, जो क्रमिक सत्यापन उपकरण परीक्षण के लिए उपयुक्त हैं
  3. वास्तविक PETSc लाइब्रेरी पैटर्न पर आधारित, व्यावहारिक अनुप्रयोग मूल्य के साथ

सीमाएँ

  1. स्केल सीमा: वर्तमान परीक्षण मामले का स्केल छोटा है (32×36 मैट्रिक्स)
  2. अनुकूलन की कमी: मूल MPI कार्यान्वयन वास्तविक उत्पादन वातावरण में जटिल अनुकूलन को शामिल नहीं करता है
  3. सत्यापन रेंज: केवल मूल शुद्धता को कवर करता है, प्रदर्शन और संख्यात्मक स्थिरता सत्यापन में शामिल नहीं है

भविष्य की दिशा

  1. भाग II विकास: बाद के कार्य में अधिक जटिल अनुकूलित MPI कार्यान्वयन प्रदान करने की योजना है
  2. परीक्षण मामलों का विस्तार: बड़े स्केल और विभिन्न विरल पैटर्न के साथ परीक्षण मैट्रिक्स जोड़ें
  3. सत्यापन उपकरण एकीकरण: मौजूदा सत्यापन उपकरणों के साथ एकीकृत परीक्षण करें

गहन मूल्यांकन

लाभ

  1. उच्च व्यावहारिक मूल्य: वैज्ञानिक सॉफ्टवेयर सत्यापन समुदाय की वास्तविक आवश्यकताओं को हल करता है
  2. तर्कसंगत डिज़ाइन: क्रमिक जटिलता डिज़ाइन सत्यापन उपकरण विकास और परीक्षण को सुविधाजनक बनाता है
  3. उच्च मानकीकरण स्तर: संपूर्ण इनपुट आउटपुट विनिर्देश और शुद्धता जांच तंत्र प्रदान करता है
  4. मजबूत पुनरुत्पादनीयता: कोड सार्वजनिक रूप से उपलब्ध है, परीक्षण डेटा एम्बेड किया गया है, पुनरुत्पादन करना आसान है
  5. वास्तविक पृष्ठभूमि: व्यापक रूप से उपयोग की जाने वाली PETSc लाइब्रेरी पर आधारित, वास्तविक अनुप्रयोग महत्व के साथ

कमियाँ

  1. सैद्धांतिक विश्लेषण की कमी: एल्गोरिदम जटिलता विश्लेषण या सैद्धांतिक गुणों की चर्चा प्रदान नहीं करता है
  2. सीमित परीक्षण कवरेज: केवल एकल परीक्षण मामला प्रदान करता है, विविधता अपर्याप्त है
  3. सत्यापन गहराई: मुख्य रूप से कार्यात्मक शुद्धता पर केंद्रित है, संख्यात्मक सटीकता और सीमा स्थिति विश्लेषण की कमी है
  4. प्रदर्शन विचार: प्रदर्शन सत्यापन से संबंधित चुनौतियों में शामिल नहीं है

प्रभाव

  1. क्षेत्र योगदान: वैज्ञानिक सॉफ्टवेयर सत्यापन के लिए महत्वपूर्ण मानकीकृत परीक्षण मंच प्रदान करता है
  2. व्यावहारिक मूल्य: सत्यापन उपकरण विकास और मूल्यांकन के लिए सीधे उपयोग किया जा सकता है
  3. विस्तारणीयता: बाद के अधिक जटिल कार्यान्वयन के लिए मूल ढांचा तैयार करता है
  4. समुदाय मूल्य: HPC और सॉफ्टवेयर सत्यापन समुदायों के बीच संचार सहयोग को बढ़ावा देता है

लागू परिदृश्य

  1. सत्यापन उपकरण विकास: उपकरण प्रभावशीलता सत्यापित करने के लिए मानक परीक्षण मामले के रूप में
  2. शिक्षण अनुप्रयोग: समानांतर कंप्यूटिंग और सॉफ्टवेयर सत्यापन के लिए शिक्षण मामले के रूप में उपयुक्त
  3. बेंचमार्क परीक्षण: SpMV कार्यान्वयन शुद्धता के लिए संदर्भ बेंचमार्क के रूप में काम कर सकता है
  4. अनुसंधान मंच: संबंधित एल्गोरिदम और अनुकूलन अनुसंधान के लिए मानकीकृत मंच प्रदान करता है

संदर्भ

  1. S Balay et al. (2025): PETSc/TAO Users Manual. Technical Report ANL-21/39 - Revision 3.23, Argonne National Laboratory
  2. Yousef Saad (2003): Iterative Methods for Sparse Linear Systems, second edition. Society for Industrial and Applied Mathematics

समग्र मूल्यांकन: यह एक अत्यंत व्यावहारिक कार्य पेपर है, हालांकि सैद्धांतिक नवाचार के संदर्भ में योगदान सीमित है, लेकिन यह वैज्ञानिक सॉफ्टवेयर सत्यापन समुदाय को आवश्यक मानकीकृत चुनौती समस्याएं प्रदान करता है। पेपर की संरचना स्पष्ट है, कार्यान्वयन संपूर्ण है, अच्छी पुनरुत्पादनीयता और विस्तारणीयता है, और HPC सॉफ्टवेयर सत्यापन क्षेत्र के विकास को बढ़ावा देने में महत्वपूर्ण मूल्य है।