इंटेल ट्रेस विश्लेषक आणि कलेक्टरसह प्रारंभ करा

इंटेल-ट्रेस-विश्लेषक-आणि-कलेक्टर-उत्पादनासह-सुरुवात करा

Intel® ट्रेस विश्लेषक आणि कलेक्टरसह प्रारंभ करा

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

इंटेल ट्रेस विश्लेषक आणि कलेक्टर डाउनलोड करा

  • Intel® oneAPI HPC टूलकिटचा एक भाग म्हणून
  • एक स्वतंत्र साधन म्हणून

पूर्वतयारी

  • इंटेल ट्रेस अॅनालायझर आणि कलेक्टर चालवण्यापूर्वी, तुम्ही नवीनतम Intel® MPI लायब्ररी आणि Intel® oneAPI DPC++/C++ कंपाइलर किंवा Intel® Fortran Compiler स्थापित केल्याची खात्री करा.
  • हे कंपाइलर्स, इंटेल MPI लायब्ररी, आणि इंटेल ट्रेस विश्लेषक आणि कलेक्टरसाठी आवश्यक पर्यावरणीय चल सेट करते आणि तुम्ही तुमचे ऍप्लिकेशन ट्रेस करण्यासाठी तयार आहात.
  • अधिक माहितीसाठी, पहा: Intel® oneAPI HPC टूलकिट सिस्टम आवश्यकता.

वर्कफ्लो समजून घ्या

  1. तुमचा अर्ज ट्रेस करा
  2. सर्वात सक्रिय MPI फंक्शन्सचे विश्लेषण करा
  3. समस्याग्रस्त परस्परसंवाद ओळखा
  4. समस्या निर्माण करणारे फंक्शन बदलून तुमची ऍप्लिकेशन कामगिरी सुधारा

तुमचा MPI अर्ज ट्रेस करा

एक ट्रेस व्युत्पन्न करा file खालील अनुप्रयोग वर्तन विश्लेषणासाठी इव्हेंट लॉग गोळा करण्यासाठी.

  1. OneAPI इंस्टॉलेशन डायरेक्टरकडून setvars स्क्रिप्ट चालवून Intel® Trace Analyzer आणि Collector लाँच करण्यासाठी वातावरण सेट करा.
    टीप
    डीफॉल्टनुसार, लिनक्स* OS साठी /opt/intel/oneapi/itac आणि प्रोग्राममध्ये इंटेल ट्रेस विश्लेषक आणि कलेक्टर स्थापित केले जातात. Files (x86)\Intel\oneAPI\itac\Windows* OS साठी नवीनतम.
    लिनक्स वर:
    $ source /opt/intel/oneapi/setvars.sh
    विंडोजवर:
    "C:\Program Files (x86)\Intel\oneAPI\setvars.bat”
  2. तुमचा MPI अॅप्लिकेशन चालवा आणि -trace पर्यायासह ट्रेस तयार करा.
    लिनक्स वर:
    $ mpirun -trace -n 4 ./poisson_sendrecv.single
    विंडोजवर:
    अॅप संकलित करा आणि ट्रेस गोळा करा.
    Intel oneAPI DPC++/C++ कंपाइलरसाठी, चालवा:
    > mpiicc -trace poisson_sendrecv.single.c
    Intel Fortran Compiler साठी, चालवा:
    > 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 आणि ते इंटेल ट्रेस विश्लेषक आणि कलेक्टरसह उघडा.
द .stf file सारांश पृष्ठावर उघडते view, जे तुमच्या ऍप्लिकेशन कार्यप्रदर्शनाबद्दल सामान्य माहितीचे प्रतिनिधित्व करते:इंटेल-ट्रेस-विश्लेषक-आणि-कलेक्टर-अंजीर-1 सह-प्रारंभ कराइंटेल-ट्रेस-विश्लेषक-आणि-कलेक्टर-अंजीर-2 सह-प्रारंभ कराटीप इंटेल ट्रेस विश्लेषक आणि कलेक्टर कार्यक्षमतेबद्दल अधिक माहितीसाठी, अधिक जाणून घ्या पहा.

सर्वात सक्रिय MPI कार्यांचे विश्लेषण करा

MPI ऍप्लिकेशन वर्तनाचे विश्लेषण करा, अडथळे शोधा आणि ऍप्लिकेशन कार्यप्रदर्शन सुधारण्याचे मार्ग शोधण्यासाठी क्रमवारी ओळखा.

  1. सारांश पृष्ठावरून इव्हेंट टाइमलाइन उघडा view वरच्या MPI फंक्शन्सच्या सखोल विश्लेषणासाठी सुरू ठेवा > चार्ट > इव्हेंट टाइमलाइन वर क्लिक करून.
    चार्ट कालांतराने वैयक्तिक प्रक्रिया क्रियाकलाप प्रदर्शित करतो.
    अनुप्रयोग कार्य पुनरावृत्तीचे आहे, जेथे प्रत्येक पुनरावृत्तीमध्ये संगणकीय भाग आणि MPI संप्रेषणे असतात.
  2. फोकस करण्‍यासाठी एकल पुनरावृत्ती ओळखा आणि आवश्यक वेळ अंतरावर तुमचा माउस ड्रॅग करून त्यात झूम करा:इंटेल-ट्रेस-विश्लेषक-आणि-कलेक्टर-अंजीर-3 सह-प्रारंभ कराट्रेस view तुम्ही निवडलेल्या ट्रेसमधील विभाग दाखवते. इव्हेंट टाइमलाइन चार्ट निवडलेल्या पुनरावृत्ती दरम्यान सक्रिय असलेल्या इव्हेंट दर्शवितो.
    • क्षैतिज पट्ट्या या प्रक्रियांमध्ये कॉल केलेल्या कार्यांसह प्रक्रिया दर्शवतात.
    • काळ्या रेषा प्रक्रियेदरम्यान पाठवलेले संदेश दर्शवतात. या रेषा पाठवण्याच्या आणि प्राप्त करण्याच्या प्रक्रियेला जोडतात.
    • निळ्या रेषा सामूहिक ऑपरेशन्स दर्शवतात, जसे की प्रसारण किंवा ऑपरेशन कमी.
  3. फ्लॅट प्रो वर स्विच कराfile टॅब (ए) तुम्ही ज्या टाइम पॉइंटमध्ये कार्यान्वित होणारी फंक्शन्स जवळून पाहण्यासाठी (इव्हेंट टाइमलाइनमध्ये निवडले.इंटेल-ट्रेस-विश्लेषक-आणि-कलेक्टर-अंजीर-4 सह-प्रारंभ करा
  4. तुमच्या ऍप्लिकेशनमधील MPI प्रक्रियेच्या क्रियाकलापांचे विश्लेषण करण्यासाठी MPI फंक्शन्सचे गट रद्द करा.
    हे करण्यासाठी, Flat Pro मधील All Processes > Group MPI (B) वर उजवे-क्लिक कराfile आणि UngroupMPI निवडा. हे ऑपरेशन वैयक्तिक MPI कॉल्स उघड करते.
  5. पुनरावृत्तीच्या सुरुवातीला MPI_Sendrecv वापरून त्यांच्या थेट शेजाऱ्यांशी संवाद साधणाऱ्या प्रक्रियेचे विश्लेषण करा. उदाampले:इंटेल-ट्रेस-विश्लेषक-आणि-कलेक्टर-अंजीर-5 सह-प्रारंभ करा
    • a मध्ये एसample, MPI_Sendrecv डेटा एक्सचेंजमध्ये अडचण आहे: जोपर्यंत मागील डेटाची देवाणघेवाण पूर्ण होत नाही तोपर्यंत प्रक्रिया त्याच्या पुढील शेजाऱ्यासोबत डेटाची देवाणघेवाण करत नाही. इव्हेंट टाइमलाइन view ही अडचण जिना म्हणून दाखवते.
    • b पुनरावृत्तीच्या शेवटी MPI_Allreduce सर्व प्रक्रिया पुन्हा सिंक्रोनाइझ करते; म्हणूनच या ब्लॉकला उलटे पायर्या दिसतात.
  6. फंक्शन प्रो वापरून अनुक्रमांक ओळखाfile आणि मेसेज प्रोfile views.
    • a चार्ट एकाच वेळी उघडा:
      कार्यक्रमात प्रोfile चार्ट, लोड बॅलन्सटॅब उघडा.
    • मेसेज प्रो उघडण्यासाठी चार्ट मेनूवर जाfile.
    • b लोड बॅलन्स टॅबमध्ये, MPI_Sendrecv आणि MPI_Allreduce विस्तृत करा. लोड बॅलन्सिंग सूचित करते की MPI_Sendrecv मध्ये घालवलेला वेळ प्रक्रियेच्या संख्येसह वाढतो, तर MPI_Allreduce साठी वेळ कमी होतो.
    • c मेसेज प्रो तपासाfile खालच्या उजव्या कोपर्यात चार्ट.
      ब्लॉक्सचे कलर कोडिंग सूचित करते की उच्च रँकवरून खालच्या रँकपर्यंत प्रवास करणाऱ्या संदेशांना प्रमाणानुसार जास्त वेळ लागतो, तर खालच्या रँकवरून उच्च रँकपर्यंत प्रवास करणाऱ्या संदेशांमध्ये कमकुवत सम-विषम प्रकारचा नमुना दिसून येतो:इंटेल-ट्रेस-विश्लेषक-आणि-कलेक्टर-अंजीर-6 सह-प्रारंभ करा

तुलनात्मक विश्लेषणाचे परिणाम दर्शविते की अनुप्रयोगामध्ये कोणतेही जटिल एक्सचेंज पॅटर्न नाहीत, एक्सचेंज केवळ शेजारच्या प्रक्रियेसह चालते. ऍप्लिकेशनचे कम्युनिकेशन मॉडेल ऑप्टिमाइझ करण्यासाठी कम्युनिकेशन्स स्टेप बदलून तुमची ऍप्लिकेशन परफॉर्मन्स सुधारण्यासाठी माहिती आवश्यक असेल.

असंतुलित संप्रेषण ओळखा

आदर्श परिस्थितीत तुमचा अर्ज पहा आणि मूळ ट्रेसची तुलना करा file समस्याग्रस्त परस्परसंवाद वेगळे करण्यासाठी आदर्श असलेल्यासह.

  1. एक आदर्श तयार करा file:
    • a प्रगत > आदर्शीकरण निवडा किंवा क्लिक कराइंटेल-ट्रेस-विश्लेषक-आणि-कलेक्टर-अंजीर-7 सह-प्रारंभ करा (आदर्शीकरण) टूलबार बटण.
    • b Idealization डायलॉग बॉक्समध्ये आदर्शीकरण पॅरामीटर्स तपासा (आदर्श ट्रेस file रूपांतरणासाठी नाव आणि वेळ श्रेणी).
    • c आपला ट्रेस आदर्श करण्यासाठी प्रारंभ क्लिक करा.
  2. आदर्श ट्रेससह मूळ ट्रेसची तुलना करा:
    • a प्रगत > असंतुलन आकृती निवडा किंवा क्लिक करा इंटेल-ट्रेस-विश्लेषक-आणि-कलेक्टर-अंजीर-8 सह-प्रारंभ करा(असंतुलन आकृती) टूलबार बटण.
    • b असमतोल आकृती डायलॉग बॉक्समध्ये, दुसरे उघडा क्लिक करा File बटण, आदर्श ट्रेसवर नेव्हिगेट करा आणि ते निवडा.
    • c असंतुलन डायग्राम विंडोमध्ये, एकूण मोड बटणावर क्लिक करा आणि ब्रेकडाउन मोड निवडा.

इंटेल-ट्रेस-विश्लेषक-आणि-कलेक्टर-अंजीर-9 सह-प्रारंभ करा

तुम्ही पाहू शकता की 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->अप, 200, MPI_COMM_WORLD);
    MPI_Recv(gr->x_new[0], gr->lcol+2, MPI_DOUBLE, gr->डाउन, 200, MPI_COMM_WORLD, &status_200);
    इंटेल ट्रेस विश्लेषक तुलना वापरा view अनुक्रमित अनुप्रयोगाची सुधारित अनुप्रयोगाशी तुलना करणे
    // डाव्या स्तंभाची tmp अॅरेमध्ये कॉपी करा
    if(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_Request req[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);
    एकदा दुरुस्त केल्यावर, सुधारित ऍप्लिकेशनचे एकल पुनरावृत्ती खालील प्रमाणे दिसेलampले:इंटेल-ट्रेस-विश्लेषक-आणि-कलेक्टर-अंजीर-10 सह-प्रारंभ करा
  2. इंटेल ट्रेस विश्लेषक तुलना वापरा view क्रमबद्ध अनुप्रयोगाची सुधारित अनुप्रयोगाशी तुलना करणे. तुलनाच्या मदतीने दोन ट्रेसची तुलना करा View, जात आहे View > तुलना करा. तुलना View यासारखे दिसते:इंटेल-ट्रेस-विश्लेषक-आणि-कलेक्टर-अंजीर-11 सह-प्रारंभ करातुलना मध्ये View, आपण पाहू शकता की नॉन-ब्लॉकिंग कम्युनिकेशन वापरल्याने सीरियलायझेशन काढून टाकण्यास आणि प्रक्रियेच्या संप्रेषणाचा वेळ कमी करण्यास मदत होते.
    टीप तुमच्या अनुप्रयोगाच्या नोड-स्तरीय कार्यप्रदर्शनाबद्दल अधिक माहितीसाठी, संबंधित साधनांसाठी दस्तऐवजीकरण पहा: Intel® VTune™ Profiler MPI कोड विश्लेषण आणि Intel® सल्लागार वापरून Intel® MPI अनुप्रयोगांचे विश्लेषण.

अधिक जाणून घ्या

इंटेल ट्रेस विश्लेषक आणि कलेक्टर बद्दल अधिक माहितीसाठी खालील संसाधने एक्सप्लोर करा.इंटेल-ट्रेस-विश्लेषक-आणि-कलेक्टर-अंजीर-12 सह-प्रारंभ कराइंटेल-ट्रेस-विश्लेषक-आणि-कलेक्टर-अंजीर-13 सह-प्रारंभ करा

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

  • इंटेल तंत्रज्ञानास सक्षम हार्डवेअर, सॉफ्टवेअर किंवा सेवा सक्रियण आवश्यक असू शकते.
  • कोणतेही उत्पादन किंवा घटक पूर्णपणे सुरक्षित असू शकत नाही.
  • तुमची किंमत आणि परिणाम भिन्न असू शकतात.
  • © इंटेल कॉर्पोरेशन. इंटेल, इंटेल लोगो आणि इतर इंटेल चिन्ह हे इंटेल कॉर्पोरेशन किंवा त्याच्या उपकंपन्यांचे ट्रेडमार्क आहेत. इतर नावे आणि ब्रँडवर इतरांची मालमत्ता म्हणून दावा केला जाऊ शकतो.
  • या दस्तऐवजाद्वारे कोणत्याही बौद्धिक संपदा अधिकारांना कोणताही परवाना (व्यक्त किंवा निहित, एस्टॉपेलद्वारे किंवा अन्यथा) मंजूर केला जात नाही.
  • वर्णन केलेल्या उत्पादनांमध्ये डिझाइन दोष किंवा त्रुटी असू शकतात ज्यांना इरेटा म्हणून ओळखले जाते ज्यामुळे उत्पादन प्रकाशित वैशिष्ट्यांपासून विचलित होऊ शकते. वर्तमान वैशिष्ट्यीकृत इरेटा विनंतीवर उपलब्ध आहे.
  • इंटेल मर्यादेशिवाय, व्यापारक्षमतेची गर्भित हमी, विशिष्ट हेतूसाठी फिटनेस आणि गैर-उल्लंघन, तसेच कार्यप्रदर्शन, व्यवहाराचा मार्ग किंवा व्यापारातील वापरामुळे उद्भवणारी कोणतीही हमी यासह सर्व व्यक्त आणि निहित वॉरंटी नाकारते.

कागदपत्रे / संसाधने

इंटेल इंटेल ट्रेस विश्लेषक आणि कलेक्टरसह प्रारंभ करा [pdf] वापरकर्ता मार्गदर्शक
इंटेल ट्रेस विश्लेषक आणि कलेक्टरसह प्रारंभ करा, इंटेल, ट्रेस विश्लेषक आणि कलेक्टर, कलेक्टरसह प्रारंभ करा

संदर्भ

एक टिप्पणी द्या

तुमचा ईमेल पत्ता प्रकाशित केला जाणार नाही. आवश्यक फील्ड चिन्हांकित आहेत *