इंटेल ट्रेस विश्लेषक र कलेक्टरको साथ सुरू गर्नुहोस्

इन्टेल-ट्रेस-विश्लेषक-र-कलेक्टर-उत्पादनको साथ-सुरु गर्नुहोस्

Intel® ट्रेस विश्लेषक र कलेक्टरको साथ सुरू गर्नुहोस्

यो प्रयोग गर्नुहोस् सुरु गर्नुहोस् कागजात र पूर्व-संकलित ट्रेस file Intel® ट्रेस विश्लेषक र कलेक्टरको साथ आधारभूत MPI प्रदर्शन विश्लेषणको माध्यमबाट हिंड्न।
इंटेल ट्रेस विश्लेषक र कलेक्टरले सन्देश पासिंग इन्टरफेस (MPI) उपयोग दक्षता अन्वेषण गर्न र संचार हटस्पटहरू, सिङ्क्रोनाइजेसन बाधाहरू, र लोड सन्तुलन पहिचान गर्न मद्दत गर्दछ। उत्पादनको बारेमा थप जानकारीको लागि, इन्टेल ट्रेस विश्लेषक र कलेक्टर उत्पादन पृष्ठ हेर्नुहोस्।

इंटेल ट्रेस विश्लेषक र कलेक्टर डाउनलोड गर्नुहोस्

  • Intel® oneAPI HPC Toolkit को एक भागको रूपमा
  • एक स्ट्यान्डअलोन उपकरणको रूपमा

पूर्व शर्तहरू

  • Intel ट्रेस विश्लेषक र कलेक्टर चलाउनु अघि, तपाईंले नवीनतम Intel® MPI लाइब्रेरी र Intel® oneAPI DPC++/C++ कम्पाइलर वा Intel® Fortran कम्पाइलर स्थापना गर्नुभएको छ भनी सुनिश्चित गर्नुहोस्।
  • यसले कम्पाइलरहरू, Intel MPI लाइब्रेरी, र Intel ट्रेस विश्लेषक र कलेक्टरका लागि आवश्यक वातावरणीय चरहरू सेट गर्दछ, र तपाईं आफ्नो अनुप्रयोगहरू ट्रेस गर्न तयार हुनुहुन्छ।
  • थप जानकारीको लागि, हेर्नुहोस्: Intel® oneAPI HPC Toolkit प्रणाली आवश्यकताहरू।

कार्यप्रवाह बुझ्नुहोस्

  1. तपाईंको आवेदन ट्रेस गर्नुहोस्
  2. सबैभन्दा सक्रिय MPI प्रकार्यहरू विश्लेषण गर्नुहोस्
  3. समस्याग्रस्त अन्तरक्रियाहरू पहिचान गर्नुहोस्
  4. समस्या उत्पन्न गर्ने प्रकार्य प्रतिस्थापन गरेर आफ्नो अनुप्रयोग प्रदर्शन सुधार गर्नुहोस्

तपाईको MPI आवेदन ट्रेस गर्नुहोस्

ट्रेस उत्पन्न गर्नुहोस् file निम्न अनुप्रयोग व्यवहार विश्लेषणको लागि घटना लगहरू सङ्कलन गर्न।

  1. OneAPI स्थापना निर्देशकबाट setvars स्क्रिप्ट चलाएर Intel® ट्रेस विश्लेषक र कलेक्टर सुरु गर्न वातावरण सेट अप गर्नुहोस्।
    नोट
    पूर्वनिर्धारित रूपमा, Intel ट्रेस विश्लेषक र कलेक्टर लिनक्स* OS को लागि /opt/intel/oneapi/itac र कार्यक्रममा स्थापना गरिएको छ। Files (x86)\Intel\oneAPI\itac\Windows* OS को लागि नवीनतम।
    लिनक्समा:
    $ स्रोत /opt/intel/oneapi/setvars.sh
    विन्डोजमा:
    "C: \ कार्यक्रम Files (x86)\Intel\oneAPI\setvars.bat”
  2. तपाईको MPI अनुप्रयोग चलाउनुहोस् र ट्रेस विकल्पको साथ ट्रेस उत्पन्न गर्नुहोस्।
    लिनक्समा:
    $ mpirun -trace -n 4 ./poisson_sendrecv.single
    विन्डोजमा:
    एप कम्पाइल गर्नुहोस् र ट्रेस सङ्कलन गर्नुहोस्।
    Intel oneAPI DPC++/C++ कम्पाइलरको लागि, चलाउनुहोस्:
    > mpiicc -trace poisson_sendrecv.single.c
    Intel Fortran कम्पाइलरको लागि, चलाउनुहोस्:
    > mpiifort -trace poisson_sendrecv.single.f
    यो पूर्वample ले एउटा ट्रेस (stf*) उत्पन्न गर्छample poisson_sendrcv.single MPI आवेदन
  3. उत्पन्न .stf खोल्नुहोस् file इंटेल ट्रेस विश्लेषक र कलेक्टर संग इंटेल ट्रेस विश्लेषक संग।
    लिनक्समा:
    $ traceanalyzer ./ poisson_sendrecv.single.stf
    विन्डोजमा:
    traceanalyzer poisson_sendrecv.single.stf

नोट
परीक्षण उद्देश्यका लागि, तपाइँ पूर्व-संकलित ट्रेस डाउनलोड गर्न सक्नुहुन्छ file यस कागजातमा प्रयोग गरिएको विषको लागि poisson_sendrecv.single.stf र इन्टेल ट्रेस विश्लेषक र कलेक्टरसँग खोल्नुहोस्।
एसटीएफ file सारांश पृष्ठमा खुल्छ view, जसले तपाइँको आवेदन कार्यसम्पादनको बारेमा सामान्य जानकारी प्रतिनिधित्व गर्दछ:इन्टेल-ट्रेस-विश्लेषक-र-कलेक्टर-फिग-१-को साथ-सुरु गर्नुहोस्इन्टेल-ट्रेस-विश्लेषक-र-कलेक्टर-फिग-१-को साथ-सुरु गर्नुहोस्नोट Intel ट्रेस विश्लेषक र कलेक्टर कार्यक्षमता बारे थप जानकारीको लागि, थप जान्नुहोस् हेर्नुहोस्।

सबैभन्दा सक्रिय MPI प्रकार्यहरू विश्लेषण गर्नुहोस्

MPI अनुप्रयोग व्यवहारको विश्लेषण गर्नुहोस्, बाधाहरू फेला पार्नुहोस् र अनुप्रयोग प्रदर्शन सुधार गर्ने तरिकाहरू फेला पार्न क्रमबद्धता पहिचान गर्नुहोस्।

  1. सारांश पृष्ठबाट घटना टाइमलाइन खोल्नुहोस् view शीर्ष MPI प्रकार्यहरूको गहिरो विश्लेषणको लागि जारी राख्नुहोस् > चार्टहरू > घटना समयरेखा क्लिक गरेर।
    चार्टले समयसँगै व्यक्तिगत प्रक्रिया गतिविधिहरू देखाउँछ।
    अनुप्रयोग कार्य पुनरावृत्ति हो, जहाँ प्रत्येक पुनरावृत्तिमा कम्प्युटेशनल भाग र MPI संचारहरू हुन्छन्।
  2. फोकस गर्न एकल पुनरावृत्ति पहिचान गर्नुहोस् र आवश्यक समय अन्तरालमा आफ्नो माउस तान्दै यसलाई जुम गर्नुहोस्:इन्टेल-ट्रेस-विश्लेषक-र-कलेक्टर-फिग-१-को साथ-सुरु गर्नुहोस्ट्रेस view तपाईंले चयन गर्नुभएको ट्रेस भित्रको खण्ड देखाउँछ। घटनाको टाइमलाइन चार्टले चयन गरिएको पुनरावृत्तिको समयमा सक्रिय भएका घटनाहरू देखाउँछ।
    • तेर्सो पट्टीहरूले यी प्रक्रियाहरूमा बोलाइएका प्रकार्यहरूसँग प्रक्रियाहरूलाई प्रतिनिधित्व गर्दछ।
    • कालो रेखाहरूले प्रक्रियाहरू बीच पठाइएका सन्देशहरूलाई संकेत गर्दछ। यी रेखाहरूले पठाउने र प्राप्त गर्ने प्रक्रियाहरू जोड्छन्।
    • नीलो रेखाहरूले सामूहिक अपरेसनहरू प्रतिनिधित्व गर्दछ, जस्तै प्रसारण वा कम सञ्चालनहरू।
  3. फ्ल्याट प्रो मा स्विच गर्नुहोस्file ट्याब (ए) तपाईंले समय बिन्दुमा कार्यान्वयन गर्ने कार्यहरू नजिकबाट हेर्नको लागि (घटना समयरेखामा चयन गरिएको छ।इन्टेल-ट्रेस-विश्लेषक-र-कलेक्टर-फिग-१-को साथ-सुरु गर्नुहोस्
  4. तपाईको एप्लिकेसनमा MPI प्रक्रिया गतिविधि विश्लेषण गर्न MPI प्रकार्यहरू अनसमूह गर्नुहोस्।
    यो गर्नका लागि, Flat Pro मा सबै प्रक्रियाहरू > समूह MPI (B) मा दायाँ क्लिक गर्नुहोस्file र UngroupMPI छान्नुहोस्। यो अपरेसनले व्यक्तिगत MPI कलहरूलाई उजागर गर्छ।
  5. पुनरावृत्तिको सुरुमा MPI_Sendrecv प्रयोग गरेर तिनीहरूका प्रत्यक्ष छिमेकीहरूसँग सञ्चार गर्ने प्रक्रियाहरूको विश्लेषण गर्नुहोस्। पूर्वका लागिampLe:इन्टेल-ट्रेस-विश्लेषक-र-कलेक्टर-फिग-१-को साथ-सुरु गर्नुहोस्
    • a एस माampले, MPI_Sendrecv डाटा एक्सचेन्जमा बाधा छ: अघिल्लोसँगको आदानप्रदान पूरा नभएसम्म प्रक्रियाले अर्को छिमेकीसँग डाटा आदानप्रदान गर्दैन। घटना समयरेखा view यो बाधा सीढीको रूपमा देखाउँछ।
    • b पुनरावृत्तिको अन्त्यमा MPI_Allreduce ले सबै प्रक्रियाहरू पुन: सिङ्क्रोनाइज गर्दछ; यसैले यो ब्लकको उल्टो सीढीको उपस्थिति छ।
  6. प्रकार्य प्रो प्रयोग गरी क्रमबद्धता पहिचान गर्नुहोस्file र सन्देश प्रोfile views.
    • a एकै समयमा चार्ट खोल्नुहोस्:
      समारोहमा प्रोfile चार्ट, लोड ब्यालेन्सट्याब खोल्नुहोस्।
    • सन्देश प्रो खोल्न चार्ट मेनुमा जानुहोस्file.
    • b लोड ब्यालेन्स ट्याबमा, MPI_Sendrecv र MPI_Allreduce विस्तार गर्नुहोस्। लोड ब्यालेन्सिङले MPI_Sendrecv मा बिताएको समय प्रक्रिया संख्या संग बढ्छ, जबकि MPI_Allreduce को लागि समय घट्छ भनेर संकेत गर्दछ।
    • ग सन्देश प्रो जाँच गर्नुहोस्file तल्लो दायाँ कुनामा चार्ट तल।
      ब्लकहरूको रङ कोडिङले संकेत गर्छ कि उच्च रैंकबाट तल्लो रैंकमा यात्रा गर्ने सन्देशहरूलाई समानुपातिक रूपमा बढी समय चाहिन्छ जबकि तल्लो स्तरबाट उच्च श्रेणीमा यात्रा गर्ने सन्देशहरूले कमजोर सम-विचित्र प्रकारको ढाँचा प्रकट गर्दछ:इन्टेल-ट्रेस-विश्लेषक-र-कलेक्टर-फिग-१-को साथ-सुरु गर्नुहोस्

तुलनात्मक विश्लेषणको नतिजाले देखाउँछ कि अनुप्रयोगमा कुनै जटिल विनिमय ढाँचाहरू छैनन्, विनिमय छिमेकी प्रक्रियाहरूसँग मात्र गरिन्छ। एप्लिकेसनको संचार मोडेललाई अप्टिमाइज गर्न संचार चरण परिवर्तन गरेर तपाईको एप्लिकेसनको प्रदर्शन सुधार गर्नको लागि जानकारी आवश्यक हुनेछ।

असन्तुलित संचार पहिचान गर्नुहोस्

आदर्श परिस्थितिमा आफ्नो आवेदन हेर्नुहोस् र मूल ट्रेस तुलना गर्नुहोस् file समस्याग्रस्त अन्तरक्रियाहरूलाई अलग गर्नको लागि आदर्शको साथ।

  1. एक आदर्श बनाउनुहोस् file:
    • a उन्नत > आदर्शकरण चयन गर्नुहोस् वा क्लिक गर्नुहोस्इन्टेल-ट्रेस-विश्लेषक-र-कलेक्टर-फिग-१-को साथ-सुरु गर्नुहोस् (आदर्शीकरण) उपकरणपट्टी बटन।
    • b Idealization संवाद बाकसमा आदर्शकरण मापदण्डहरू जाँच गर्नुहोस् (आदर्श ट्रेस file रूपान्तरणको लागि नाम र समय दायरा)।
    • ग आफ्नो ट्रेस आदर्श बनाउन सुरु क्लिक गर्नुहोस्।
  2. मूल ट्रेसलाई आदर्श ट्रेससँग तुलना गर्नुहोस्:
    • a उन्नत > असंतुलन रेखाचित्र चयन गर्नुहोस् वा क्लिक गर्नुहोस् इन्टेल-ट्रेस-विश्लेषक-र-कलेक्टर-फिग-१-को साथ-सुरु गर्नुहोस्(असंतुलन रेखाचित्र) उपकरणपट्टी बटन।
    • b असंतुलन रेखाचित्र संवाद बाकसमा, अर्को खोल्नुहोस् क्लिक गर्नुहोस् File बटन, आदर्श ट्रेसमा नेभिगेट गर्नुहोस्, र यसलाई चयन गर्नुहोस्।
    • ग असंतुलन रेखाचित्र विन्डोमा, कुल मोड बटन क्लिक गर्नुहोस् र ब्रेकडाउन मोड चयन गर्नुहोस्।

इन्टेल-ट्रेस-विश्लेषक-र-कलेक्टर-फिग-१-को साथ-सुरु गर्नुहोस्

तपाईले देख्न सक्नुहुन्छ कि MPI_Sendrecv सबैभन्दा समय खपत गर्ने प्रकार्य हो। असन्तुलन वजन मा प्रदर्शित छ
हल्का रङ र MPI_Sendrecv प्रकार्यको लागि लगभग 10% समावेश गर्दछ। यो समय प्रक्रियाहरूले एकअर्कालाई पर्खने समय हो।

संचार परिवर्तन गरेर आफ्नो आवेदन प्रदर्शन सुधार गर्नुहोस्

  1. ब्लकिङलाई गैर-ब्लकिङ कम्युनिकेसनहरूमा परिवर्तन गरेर MPI अनुप्रयोगको प्रदर्शन सुधार गर्नुहोस्।
    तपाइँको कोडमा सिरियल MPI_Sendrcv लाई गैर-ब्लक संचार संग प्रतिस्थापन गर्नुहोस्: MPI_Isend र MPI_Irecv। पूर्वका लागिample: मूल कोड स्निपेट:
    // सीमा विनिमय
    शून्य विनिमय (पैरा* पी, ग्रिड* जीआर){
    int i,j;
    MPI_Status status_100, status_200, status_300, status_400;
    // पहिलो पङ्क्ति तल पठाउनुहोस्
    MPI_Send(gr->x_new[1], gr->lcol+2, MPI_DOUBLE, gr->डाउन, 100, MPI_COMM_WORLD); MPI_Recv(gr->x_new[gr->lrow+1], gr->lcol+2, MPI_DOUBLE, gr->माथि, 100, MPI_COMM_WORLD,
    &status_100);
    // अन्तिम पङ्क्ति पठाउनुहोस्
    MPI_Send(gr->x_new[gr->lrow], gr->lcol+2, MPI_DOUBLE, gr->up, 200, MPI_COMM_WORLD);
    MPI_Recv(gr->x_new[0], gr->lcol+2, MPI_DOUBLE, gr->डाउन, 200, MPI_COMM_WORLD, &status_200);
    Intel ट्रेस विश्लेषक तुलना प्रयोग गर्नुहोस् view परिमार्जित संग क्रमबद्ध अनुप्रयोग तुलना गर्न
    // बायाँ स्तम्भ tmp arrays मा प्रतिलिपि गर्नुहोस्
    यदि(gr->बायाँ!= MPI_PROC_NULL){
    gr->x_new[i][gr->lcol+1] = right_col[i]; right_col[i] = gr->x_new[i][gr->lcol];
    // दायाँ पठाउनुहोस्
    MPI_Send(right_col, gr->lrow+2, MPI_DOUBLE, gr->दायाँ, 400, MPI_COMM_WORLD); }
    यदि(gr->बायाँ != MPI_PROC_NULL)
    {
    MPI_Recv(left_col, gr->lrow+2, MPI_DOUBLE, gr->left, 400, MPI_COMM_WORLD,&status_400); (i=0; i< gr->lrow+2; i++ को लागि
    {
    gr->x_new[i][0] = left_col[i];
    }
    }
    अपडेट गरिएको कोड स्निपेट
    MPI_अनुरोध अनुरोध[7];
    // पहिलो पङ्क्ति तल पठाउनुहोस्
    MPI_Isend(gr->x_new[1], gr->lcol+2, MPI_DOUBLE, gr->डाउन, 100, MPI_COMM_WORLD, &req[0]);
    MPI_Irecv(gr->x_new[gr->lrow+1], gr->lcol+2, MPI_DOUBLE, gr->up, 100, MPI_COMM_WORLD, &req[1]);
    …..
    MPI_Waitall(7, req, MPI_STATUSES_IGNORE);
    एकचोटि सच्याइएपछि, संशोधित एप्लिकेसनको एकल पुनरावृत्ति निम्न पूर्व जस्तो देखिनेछampLe:इन्टेल-ट्रेस-विश्लेषक-र-कलेक्टर-फिग-१-को साथ-सुरु गर्नुहोस्
  2. Intel ट्रेस विश्लेषक तुलना प्रयोग गर्नुहोस् view परिमार्जित एक संग क्रमबद्ध अनुप्रयोग तुलना गर्न। तुलनाको सहायताले दुईवटा ट्रेसहरू तुलना गर्नुहोस् View, जाँदैछ View > तुलना गर्नुहोस्। तुलना View जस्तै देखिन्छ:इन्टेल-ट्रेस-विश्लेषक-र-कलेक्टर-फिग-१-को साथ-सुरु गर्नुहोस्तुलना मा View, तपाईले देख्न सक्नुहुन्छ कि गैर-ब्लकिङ कम्युनिकेसनको प्रयोगले क्रमबद्धता हटाउन र प्रक्रियाहरूको सञ्चारको समय घटाउन मद्दत गर्दछ।
    नोट तपाईको एप्लिकेसनको नोड-स्तर प्रदर्शनको बारेमा थप जानकारीको लागि, सम्बन्धित उपकरणहरूको लागि कागजात हेर्नुहोस्: Intel® VTune™ Profiler MPI कोड विश्लेषण र Intel® सल्लाहकार प्रयोग गरेर Intel® MPI अनुप्रयोगहरूको विश्लेषण।

थप जान्नुहोस्

Intel ट्रेस विश्लेषक र कलेक्टरको बारेमा थप जानकारीको लागि निम्न स्रोतहरू अन्वेषण गर्नुहोस्।इन्टेल-ट्रेस-विश्लेषक-र-कलेक्टर-फिग-१-को साथ-सुरु गर्नुहोस्इन्टेल-ट्रेस-विश्लेषक-र-कलेक्टर-फिग-१-को साथ-सुरु गर्नुहोस्

सूचनाहरू र अस्वीकरणहरू

  • इंटेल टेक्नोलोजीहरूले सक्षम हार्डवेयर, सफ्टवेयर वा सेवा सक्रियताको आवश्यक हुन सक्दछ।
  • कुनै पनि उत्पादन वा कम्पोनेन्ट पूर्ण रूपमा सुरक्षित हुन सक्दैन।
  • तपाईंको लागत र परिणाम फरक हुन सक्छ।
  • © इंटेल निगम। Intel, Intel लोगो, र अन्य Intel मार्कहरू Intel Corporation वा यसको सहायक कम्पनीहरूको ट्रेडमार्क हुन्। अन्य नाम र ब्रान्डहरू अरूको सम्पत्तिको रूपमा दाबी गर्न सकिन्छ।
  • यस कागजातद्वारा कुनै पनि बौद्धिक सम्पत्ति अधिकारको लागि कुनै इजाजतपत्र (व्यक्त वा निहित, एस्टोपेल वा अन्यथा) प्रदान गरिएको छैन।
  • वर्णन गरिएका उत्पादनहरूमा डिजाइन त्रुटिहरू वा त्रुटिहरू समावेश हुन सक्छन् जसलाई इरेटा भनिन्छ जसले उत्पादनलाई प्रकाशित विनिर्देशहरूबाट विचलित हुन सक्छ। हालको विशेषता इरेटा अनुरोधमा उपलब्ध छन्।
  • Intel ले सबै एक्सप्रेस र निहित वारेन्टीहरू अस्वीकृत गर्दछ, बिना सीमा, व्यापारिकताको निहित वारेन्टी, एक विशेष उद्देश्यको लागि फिटनेस, र गैर-उल्लंघन, साथै प्रदर्शनको पाठ्यक्रम, व्यवहारको पाठ्यक्रम, वा व्यापारमा प्रयोगबाट उत्पन्न हुने कुनै पनि वारेन्टी।

कागजातहरू / स्रोतहरू

इंटेल इंटेल ट्रेस विश्लेषक र कलेक्टरको साथ सुरू गर्नुहोस् [pdf] प्रयोगकर्ता गाइड
इंटेल ट्रेस विश्लेषक र कलेक्टरको साथ सुरू गर्नुहोस्, इंटेल, ट्रेस विश्लेषक र कलेक्टर, कलेक्टरको साथ सुरू गर्नुहोस्।

सन्दर्भहरू

एक टिप्पणी छोड्नुहोस्

तपाईंको इमेल ठेगाना प्रकाशित गरिने छैन। आवश्यक क्षेत्रहरू चिन्ह लगाइएका छन् *