ઇન્ટેલ ટ્રેસ એનાલાઇઝર અને કલેક્ટર સાથે પ્રારંભ કરો

ઇન્ટેલ-ટ્રેસ-વિશ્લેષક-અને-કલેક્ટર-ઉત્પાદન-સાથે-પ્રારંભ કરો

Intel® ટ્રેસ એનાલાઇઝર અને કલેક્ટર સાથે પ્રારંભ કરો

આ ગેટ સ્ટાર્ટ ડોક્યુમેન્ટ અને પ્રી-કલેક્ટેડ ટ્રેસનો ઉપયોગ કરો file Intel® ટ્રેસ વિશ્લેષક અને કલેક્ટર સાથે મૂળભૂત MPI પ્રદર્શન વિશ્લેષણમાંથી પસાર થવા માટે.
ઇન્ટેલ ટ્રેસ એનાલાઈઝર અને કલેક્ટર મેસેજ પાસિંગ ઈન્ટરફેસ (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 ઇન્સ્ટોલેશન ડાયરેક્ટર પાસેથી સેટવર્સ સ્ક્રિપ્ટ ચલાવીને Intel® ટ્રેસ એનાલાઇઝર અને કલેક્ટર લોન્ચ કરવા માટે પર્યાવરણ સેટ કરો
    નોંધ
    મૂળભૂત રીતે, ઇન્ટેલ ટ્રેસ એનાલાઇઝર અને કલેક્ટર Linux* OS માટે /opt/intel/oneapi/itac અને પ્રોગ્રામમાં ઇન્સ્ટોલ કરેલ છે. Files (x86)\Intel\oneAPI\itac\Windows* OS માટે નવીનતમ.
    Linux પર:
    $ source /opt/intel/oneapi/setvars.sh
    વિન્ડોઝ પર:
    "C:\પ્રોગ્રામ Files (x86)\Intel\oneAPI\setvars.bat”
  2. તમારી MPI એપ્લિકેશન ચલાવો અને -ટ્રેસ વિકલ્પ સાથે ટ્રેસ જનરેટ કરો.
    Linux પર:
    $ 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 ઇન્ટેલ ટ્રેસ એનાલાઇઝર અને કલેક્ટર સાથે ઇન્ટેલ ટ્રેસ એનાલાઇઝર સાથે.
    Linux પર:
    $ 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 ટૅબ (A) તમે જે ટાઈમ પોઈન્ટમાં એક્ઝીક્યુટીંગ ફંક્શન્સને નજીકથી જોવા માટે ( ઈવેન્ટ ટાઈમલાઈનમાં પસંદ કરેલ છે.ઇન્ટેલ-ટ્રેસ-વિશ્લેષક-અને-કલેક્ટર-ફિગ-4 સાથે-પ્રારંભ કરો
  4. તમારી એપ્લિકેશનમાં MPI પ્રક્રિયા પ્રવૃત્તિનું પૃથ્થકરણ કરવા માટે MPI ફંક્શન્સને અનગ્રુપ કરો.
    આ કરવા માટે, ફ્લેટ પ્રોમાં બધી પ્રક્રિયાઓ > ગ્રુપ MPI (B) પર જમણું-ક્લિક કરોfile અને UngroupMPI પસંદ કરો. આ ઑપરેશન વ્યક્તિગત MPI કૉલ્સને બહાર કાઢે છે.
  5. પુનરાવર્તનની શરૂઆતમાં MPI_Sendrecv નો ઉપયોગ કરીને તેમના સીધા પડોશીઓ સાથે વાતચીત કરતી પ્રક્રિયાઓનું વિશ્લેષણ કરો. માજી માટેampલે:ઇન્ટેલ-ટ્રેસ-વિશ્લેષક-અને-કલેક્ટર-ફિગ-5 સાથે-પ્રારંભ કરો
    • a માં એસample, MPI_Sendrecv ડેટા એક્સચેન્જમાં અવરોધ છે: જ્યાં સુધી પાછલા એક સાથેનું વિનિમય પૂર્ણ ન થાય ત્યાં સુધી પ્રક્રિયા તેના આગામી પાડોશી સાથે ડેટાનું વિનિમય કરતી નથી. ઘટના સમયરેખા view આ અડચણને દાદર તરીકે દર્શાવે છે.
    • b પુનરાવર્તનના અંતે MPI_Allreduce બધી પ્રક્રિયાઓને ફરીથી સુમેળ કરે છે; તેથી જ આ બ્લોકમાં સીડીનો ઉલટો દેખાવ છે.
  6. ફંક્શન પ્રોનો ઉપયોગ કરીને સીરીયલાઇઝેશનને ઓળખોfile અને મેસેજ પ્રોfile views.
    • a તે જ સમયે ચાર્ટ ખોલો:
      ફંકશનમાં પ્રોfile ચાર્ટ, લોડ બેલેન્સટેબ ખોલો.
    • Message Pro ખોલવા માટે ચાર્ટ મેનૂ પર જાઓfile.
    • b લોડ બેલેન્સ ટેબમાં, MPI_Sendrecv અને MPI_Allreduce ને વિસ્તૃત કરો. લોડ બેલેન્સીંગ સૂચવે છે કે MPI_Sendrecv માં વિતાવેલો સમય પ્રક્રિયા સંખ્યા સાથે વધે છે, જ્યારે MPI_Allreduce માટેનો સમય ઘટે છે.
    • c સંદેશ પ્રો તપાસોfile નીચેના જમણા ખૂણે નીચે ચાર્ટ કરો.
      બ્લોક્સનું કલર કોડિંગ સૂચવે છે કે ઉચ્ચ રેન્કથી નીચા રેન્ક સુધી મુસાફરી કરતા સંદેશાઓને પ્રમાણસર વધુ સમયની જરૂર પડે છે જ્યારે નીચલા રેન્કથી ઉચ્ચ રેન્ક સુધી મુસાફરી કરતા સંદેશાઓ નબળા સમાન-વિષમ પ્રકારની પેટર્ન દર્શાવે છે:ઇન્ટેલ-ટ્રેસ-વિશ્લેષક-અને-કલેક્ટર-ફિગ-6 સાથે-પ્રારંભ કરો

તુલનાત્મક વિશ્લેષણના પરિણામો દર્શાવે છે કે એપ્લિકેશનમાં કોઈ જટિલ વિનિમય પેટર્ન નથી, વિનિમય ફક્ત પડોશી પ્રક્રિયાઓ સાથે જ હાથ ધરવામાં આવે છે. એપ્લિકેશનના કોમ્યુનિકેશન મોડલને ઑપ્ટિમાઇઝ કરવા માટે સંદેશાવ્યવહારના પગલાને બદલીને તમારા એપ્લિકેશન પ્રદર્શનમાં સુધારો કરવા માટે માહિતી આવશ્યક હશે.

અસંતુલિત સંચાર ઓળખો

આદર્શ સંજોગોમાં તમારી અરજી જુઓ અને મૂળ ટ્રેસની તુલના કરો file સમસ્યારૂપ ક્રિયાપ્રતિક્રિયાઓને અલગ કરવા માટે આદર્શ સાથે.

  1. એક આદર્શ બનાવો file:
    • a અદ્યતન > આદર્શીકરણ પસંદ કરો અથવા ક્લિક કરોઇન્ટેલ-ટ્રેસ-વિશ્લેષક-અને-કલેક્ટર-ફિગ-7 સાથે-પ્રારંભ કરો (આદર્શીકરણ) ટૂલબાર બટન.
    • b આદર્શીકરણ સંવાદ બોક્સમાં આદર્શીકરણ પરિમાણો તપાસો (આદર્શ ટ્રેસ file રૂપાંતર માટે નામ અને સમય શ્રેણી).
    • c તમારા ટ્રેસને આદર્શ બનાવવા માટે પ્રારંભ પર ક્લિક કરો.
  2. આદર્શ ટ્રેસ સાથે મૂળ ટ્રેસની તુલના કરો:
    • a ઉન્નત > અસંતુલન ડાયાગ્રામ પસંદ કરો અથવા ક્લિક કરો ઇન્ટેલ-ટ્રેસ-વિશ્લેષક-અને-કલેક્ટર-ફિગ-8 સાથે-પ્રારંભ કરો(અસંતુલન ડાયાગ્રામ) ટૂલબાર બટન.
    • b અસંતુલન ડાયાગ્રામ સંવાદ બોક્સમાં, અન્ય ખોલો પર ક્લિક કરો File બટન, આદર્શ ટ્રેસ પર નેવિગેટ કરો અને તેને પસંદ કરો.
    • c અસંતુલન ડાયાગ્રામ વિંડોમાં, ટોટલ મોડ બટન પર ક્લિક કરો અને બ્રેકડાઉન મોડ પસંદ કરો.

ઇન્ટેલ-ટ્રેસ-વિશ્લેષક-અને-કલેક્ટર-ફિગ-9 સાથે-પ્રારંભ કરો

તમે જોઈ શકો છો કે MPI_Sendrecv એ સૌથી વધુ સમય લેતું કાર્ય છે. માં અસંતુલન વજન પ્રદર્શિત થાય છે
હળવો રંગ અને MPI_Sendrecv કાર્ય માટે લગભગ 10% સમાવે છે. આ તે સમય છે જ્યારે પ્રક્રિયાઓ એકબીજાની રાહ જોવામાં વિતાવે છે.

સંદેશાવ્યવહાર બદલીને તમારા એપ્લિકેશન પ્રદર્શનમાં સુધારો કરો

  1. બ્લોકીંગને નોન-બ્લોકીંગ કોમ્યુનિકેશનમાં બદલીને MPI એપ્લીકેશનની કામગીરી બહેતર બનાવો.
    તમારા કોડમાં સીરીયલ MPI_Sendrcv ને નોન-બ્લોકીંગ કોમ્યુનિકેશન સાથે બદલો: MPI_Isend અને MPI_Irecv. માજી માટેample: મૂળ કોડ સ્નિપેટ:
    // સીમા વિનિમય
    રદબાતલ વિનિમય (પેરા* p, ગ્રીડ* gr){
    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->up, 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);
    ઇન્ટેલ ટ્રેસ એનાલાઇઝર સરખામણીનો ઉપયોગ કરો view શ્રેણીબદ્ધ એપ્લિકેશનને સુધારેલ સાથે સરખાવવા માટે
    // ડાબી કૉલમને tmp એરેમાં કૉપિ કરો
    જો(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® Advisor નો ઉપયોગ કરીને Intel® MPI એપ્લિકેશન્સનું વિશ્લેષણ.

વધુ જાણો

ઇન્ટેલ ટ્રેસ એનાલાઇઝર અને કલેક્ટર વિશે વધુ માહિતી માટે નીચેના સંસાધનોનું અન્વેષણ કરો.ઇન્ટેલ-ટ્રેસ-વિશ્લેષક-અને-કલેક્ટર-ફિગ-12 સાથે-પ્રારંભ કરોઇન્ટેલ-ટ્રેસ-વિશ્લેષક-અને-કલેક્ટર-ફિગ-13 સાથે-પ્રારંભ કરો

સૂચનાઓ અને અસ્વીકરણ

  • ઇન્ટેલ ટેક્નોલજીઓને સક્ષમ હાર્ડવેર, સ softwareફ્ટવેર અથવા સેવા સક્રિયકરણની જરૂર પડી શકે છે.
  • કોઈપણ ઉત્પાદન અથવા ઘટક સંપૂર્ણપણે સુરક્ષિત હોઈ શકતું નથી.
  • તમારા ખર્ચ અને પરિણામો અલગ અલગ હોઈ શકે છે.
  • © ઇન્ટેલ કોર્પોરેશન. ઇન્ટેલ, ઇન્ટેલ લોગો અને અન્ય ઇન્ટેલ માર્કસ એ ઇન્ટેલ કોર્પોરેશન અથવા તેની પેટાકંપનીઓના ટ્રેડમાર્ક છે. અન્ય નામો અને બ્રાન્ડનો દાવો અન્યની મિલકત તરીકે થઈ શકે છે.
  • આ દસ્તાવેજ દ્વારા કોઈપણ બૌદ્ધિક સંપદા અધિકારો માટે કોઈ લાઇસન્સ (વ્યક્ત અથવા ગર્ભિત, એસ્ટોપલ દ્વારા અથવા અન્યથા) આપવામાં આવતું નથી.
  • વર્ણવેલ ઉત્પાદનોમાં ડિઝાઇન ખામીઓ અથવા ભૂલો હોઈ શકે છે જેને ત્રુટિસૂચી તરીકે ઓળખવામાં આવે છે જે ઉત્પાદનને પ્રકાશિત સ્પષ્ટીકરણોથી વિચલિત થવાનું કારણ બની શકે છે. વર્તમાન લાક્ષણિકતા ત્રુટિસૂચી વિનંતી પર ઉપલબ્ધ છે.
  • ઇન્ટેલ તમામ સ્પષ્ટ અને ગર્ભિત વોરંટીનો અસ્વીકાર કરે છે, જેમાં મર્યાદા વિના, વેપારીતાની ગર્ભિત વોરંટી, ચોક્કસ હેતુ માટે યોગ્યતા અને બિન-ઉલ્લંઘન, તેમજ કામગીરી, વ્યવહારના અભ્યાસક્રમ અથવા વેપારમાં ઉપયોગથી ઉદ્ભવતી કોઈપણ વોરંટીનો સમાવેશ થાય છે.

દસ્તાવેજો / સંસાધનો

ઇન્ટેલ ઇન્ટેલ ટ્રેસ એનાલાઇઝર અને કલેક્ટર સાથે પ્રારંભ કરો [પીડીએફ] વપરાશકર્તા માર્ગદર્શિકા
ઇન્ટેલ ટ્રેસ એનાલાઇઝર અને કલેક્ટર સાથે પ્રારંભ કરો, ઇન્ટેલ, ટ્રેસ એનાલાઇઝર અને કલેક્ટર, કલેક્ટર સાથે પ્રારંભ કરો

સંદર્ભો

એક ટિપ્પણી મૂકો

તમારું ઇમેઇલ સરનામું પ્રકાશિત કરવામાં આવશે નહીં. જરૂરી ક્ષેત્રો ચિહ્નિત થયેલ છે *