ఇంటెల్ ట్రేస్ ఎనలైజర్ మరియు కలెక్టర్తో ప్రారంభించండి
Intel® ట్రేస్ ఎనలైజర్ మరియు కలెక్టర్తో ప్రారంభించండి
ఈ ప్రారంభ పత్రాన్ని మరియు ముందుగా సేకరించిన ట్రేస్ని ఉపయోగించండి file Intel® ట్రేస్ ఎనలైజర్ మరియు కలెక్టర్తో ప్రాథమిక MPI పనితీరు విశ్లేషణ ద్వారా నడవడానికి.
ఇంటెల్ ట్రేస్ ఎనలైజర్ మరియు కలెక్టర్ మెసేజ్ పాసింగ్ ఇంటర్ఫేస్ (MPI) వినియోగ సామర్థ్యాన్ని అన్వేషించడంలో మరియు కమ్యూనికేషన్ హాట్స్పాట్లు, సింక్రొనైజేషన్ అడ్డంకులు మరియు లోడ్ బ్యాలెన్సింగ్ను గుర్తించడంలో సహాయపడతాయి. ఉత్పత్తి గురించి మరింత సమాచారం కోసం, ఇంటెల్ ట్రేస్ ఎనలైజర్ మరియు కలెక్టర్ ఉత్పత్తి పేజీని చూడండి.
ఇంటెల్ ట్రేస్ ఎనలైజర్ మరియు కలెక్టర్ని డౌన్లోడ్ చేయండి
- Intel® oneAPI HPC టూల్కిట్లో భాగంగా
- స్వతంత్ర సాధనంగా
ముందస్తు అవసరాలు
- Intel ట్రేస్ ఎనలైజర్ మరియు కలెక్టర్ని అమలు చేయడానికి ముందు, మీరు సరికొత్త Intel® MPI లైబ్రరీ మరియు Intel® oneAPI DPC++/C++ కంపైలర్ లేదా Intel® Fortran కంపైలర్ని ఇన్స్టాల్ చేశారని నిర్ధారించుకోండి.
- ఇది కంపైలర్లు, ఇంటెల్ MPI లైబ్రరీ మరియు ఇంటెల్ ట్రేస్ ఎనలైజర్ మరియు కలెక్టర్ కోసం అవసరమైన ఎన్విరాన్మెంట్ వేరియబుల్లను సెట్ చేస్తుంది మరియు మీరు మీ అప్లికేషన్లను ట్రేస్ చేయడానికి సిద్ధంగా ఉన్నారు.
- మరింత సమాచారం కోసం, చూడండి: Intel® oneAPI HPC టూల్కిట్ సిస్టమ్ అవసరాలు.
వర్క్ఫ్లో అర్థం చేసుకోండి
- మీ దరఖాస్తును కనుగొనండి
- అత్యంత క్రియాశీల MPI ఫంక్షన్లను విశ్లేషించండి
- సమస్యాత్మక పరస్పర చర్యలను గుర్తించండి
- సమస్య కలిగించే ఫంక్షన్ను భర్తీ చేయడం ద్వారా మీ అప్లికేషన్ పనితీరును మెరుగుపరచండి
మీ MPI అప్లికేషన్ను కనుగొనండి
ఒక ట్రేస్ను రూపొందించండి file కింది అప్లికేషన్ ప్రవర్తన విశ్లేషణ కోసం ఈవెంట్ లాగ్లను సేకరించడానికి.
- oneAPI ఇన్స్టాలేషన్ డైరెక్టర్ నుండి setvars స్క్రిప్ట్ను అమలు చేయడం ద్వారా Intel® ట్రేస్ ఎనలైజర్ మరియు కలెక్టర్ను ప్రారంభించడం కోసం వాతావరణాన్ని సెటప్ చేయండి
గమనిక
డిఫాల్ట్గా, Linux* OS కోసం మరియు ప్రోగ్రామ్కు Intel ట్రేస్ ఎనలైజర్ మరియు కలెక్టర్ /opt/intel/oneapi/itacకి ఇన్స్టాల్ చేయబడ్డాయి. FileWindows* OS కోసం s (x86)\Intel\oneAPI\itac\తాజా.
Linuxలో:
$ సోర్స్ /opt/intel/oneapi/setvars.sh
Windowsలో:
“సి:\ ప్రోగ్రామ్ Files (x86)\Intel\oneAPI\setvars.bat” - మీ MPI అప్లికేషన్ని అమలు చేయండి మరియు -trace ఎంపికతో ట్రేస్ను రూపొందించండి.
Linuxలో:
$ mpirun -trace -n 4 ./poisson_sendrecv.single
Windowsలో:
అనువర్తనాన్ని కంపైల్ చేయండి మరియు ట్రేస్ను సేకరించండి.
Intel oneAPI DPC++/C++ కంపైలర్ కోసం, అమలు చేయండి:
> mpiicc -trace poisson_sendrecv.single.c
ఇంటెల్ ఫోర్ట్రాన్ కంపైలర్ కోసం, అమలు చేయండి:
> mpiifort -trace poisson_sendrecv.single.f
ఈ మాజీample కోసం ఒక ట్రేస్ (stf*)ని ఉత్పత్తి చేస్తుందిample poisson_sendrcv.single MPI అప్లికేషన్ - రూపొందించబడిన .stfని తెరవండి file ఇంటెల్ ట్రేస్ ఎనలైజర్ మరియు కలెక్టర్తో ఇంటెల్ ట్రేస్ ఎనలైజర్తో.
Linuxలో:
$ ట్రేసనలైజర్ ./ poisson_sendrecv.single.stf
Windowsలో:
ట్రేసిఅనలైజర్ poisson_sendrecv.single.stf
గమనిక
పరీక్ష ప్రయోజనాల కోసం, మీరు ముందుగా సేకరించిన ట్రేస్ని డౌన్లోడ్ చేసుకోవచ్చు file ఈ పత్రంలో ఉపయోగించిన పాయిజన్ కోసం poisson_sendrecv.single.stf మరియు దానిని Intel ట్రేస్ ఎనలైజర్ మరియు కలెక్టర్తో తెరవండి.
ది .stf file సారాంశం పేజీలో తెరవబడుతుంది view, ఇది మీ అప్లికేషన్ పనితీరు గురించి సాధారణ సమాచారాన్ని సూచిస్తుంది:గమనిక ఇంటెల్ ట్రేస్ ఎనలైజర్ మరియు కలెక్టర్ ఫంక్షనాలిటీ గురించి మరింత సమాచారం కోసం, మరింత తెలుసుకోండి చూడండి.
అత్యంత క్రియాశీల MPI ఫంక్షన్లను విశ్లేషించండి
MPI అప్లికేషన్ ప్రవర్తనను విశ్లేషించండి, అడ్డంకులను కనుగొనండి మరియు అప్లికేషన్ పనితీరును మెరుగుపరచడానికి మార్గాలను కనుగొనడానికి సీరియలైజేషన్ను గుర్తించండి.
- సారాంశం పేజీ నుండి ఈవెంట్ టైమ్లైన్ను తెరవండి view అగ్ర MPI ఫంక్షన్ల లోతైన విశ్లేషణ కోసం కొనసాగించు > చార్ట్లు > ఈవెంట్ టైమ్లైన్ క్లిక్ చేయడం ద్వారా.
చార్ట్ కాలక్రమేణా వ్యక్తిగత ప్రక్రియ కార్యకలాపాలను ప్రదర్శిస్తుంది.
అప్లికేషన్ పని పునరావృతమవుతుంది, ఇక్కడ ప్రతి పునరావృతం గణన భాగం మరియు MPI కమ్యూనికేషన్లను కలిగి ఉంటుంది. - అవసరమైన సమయ వ్యవధిలో మీ మౌస్ని లాగడం ద్వారా దృష్టి పెట్టడానికి మరియు జూమ్ చేయడానికి ఒకే పునరావృతాన్ని గుర్తించండి:
జాడ view మీరు ఎంచుకున్న ట్రేస్లోని విభాగాన్ని చూపుతుంది. ఈవెంట్ టైమ్లైన్ చార్ట్ ఎంచుకున్న పునరావృత సమయంలో సక్రియంగా ఉన్న ఈవెంట్లను చూపుతుంది.
- క్షితిజసమాంతర బార్లు ఈ ప్రక్రియలలో పిలువబడే ఫంక్షన్లతో ప్రక్రియలను సూచిస్తాయి.
- నలుపు గీతలు ప్రక్రియల మధ్య పంపిన సందేశాలను సూచిస్తాయి. ఈ పంక్తులు పంపడం మరియు స్వీకరించడం ప్రక్రియలను కలుపుతాయి.
- బ్లూ లైన్లు ప్రసారాలు లేదా కార్యకలాపాలను తగ్గించడం వంటి సామూహిక కార్యకలాపాలను సూచిస్తాయి.
- ఫ్లాట్ ప్రోకి మారండిfile టాబ్ (A) మీరు (ఈవెంట్ టైమ్లైన్లో ఎంచుకోబడిన టైమ్ పాయింట్లో అమలు చేసే ఫంక్షన్లను నిశితంగా పరిశీలించండి.
- మీ అప్లికేషన్లోని MPI ప్రాసెస్ యాక్టివిటీని విశ్లేషించడానికి MPI ఫంక్షన్లను అన్గ్రూప్ చేయండి.
దీన్ని చేయడానికి, ఫ్లాట్ ప్రోలో అన్ని ప్రక్రియలు > గ్రూప్ MPI (B)పై కుడి-క్లిక్ చేయండిfile మరియు UngroupMPI ఎంచుకోండి. ఈ ఆపరేషన్ వ్యక్తిగత MPI కాల్లను బహిర్గతం చేస్తుంది. - పునరావృతం ప్రారంభంలో MPI_Sendrecv ఉపయోగించి వారి ప్రత్యక్ష పొరుగువారితో కమ్యూనికేట్ చేసే ప్రక్రియలను విశ్లేషించండి. ఉదాహరణకుampలే:
- a. ఎస్ లోample, MPI_Sendrecv డేటా మార్పిడికి అడ్డంకి ఉంది: మునుపటి దానితో మార్పిడి పూర్తయ్యే వరకు ప్రక్రియ దాని తదుపరి పొరుగువారితో డేటాను మార్పిడి చేయదు. ఈవెంట్ టైమ్లైన్స్ view ఈ అడ్డంకిని మెట్ల వలె ప్రదర్శిస్తుంది.
- బి. పునరావృతం ముగింపులో MPI_Allreduce అన్ని ప్రక్రియలను పునఃసమకాలీకరించింది; అందుకే ఈ బ్లాక్ రివర్స్ మెట్ల రూపాన్ని కలిగి ఉంది.
- ఫంక్షన్ ప్రోని ఉపయోగించి సీరియలైజేషన్ను గుర్తించండిfile మరియు సందేశం ప్రోfile views.
- a. అదే సమయంలో చార్ట్లను తెరవండి:
ఫంక్షన్ ప్రోలోfile చార్ట్, లోడ్ బ్యాలెన్స్టాబ్ను తెరవండి. - మెసేజ్ ప్రోని తెరవడానికి చార్ట్ల మెనుకి వెళ్లండిfile.
- బి. లోడ్ బ్యాలెన్స్ ట్యాబ్లో, MPI_Sendrecv మరియు MPI_Allreduce విస్తరించండి. MPI_Sendrecvలో గడిపిన సమయం ప్రాసెస్ సంఖ్యతో పెరుగుతుందని లోడ్ బ్యాలెన్సింగ్ సూచిస్తుంది, అయితే MPI_Allreduce కోసం సమయం తగ్గుతుంది.
- సి. మెసేజ్ ప్రోని పరిశీలించండిfile దిగువ కుడి మూలలో చార్ట్ చేయండి.
బ్లాక్ల కలర్ కోడింగ్ అధిక ర్యాంక్ నుండి తక్కువ ర్యాంక్కు ప్రయాణించే సందేశాలకు దామాషా ప్రకారం ఎక్కువ సమయం అవసరమని సూచిస్తుంది, అయితే తక్కువ ర్యాంక్ నుండి అధిక ర్యాంక్కు ప్రయాణించే సందేశాలు బలహీనమైన సరి-బేసి రకమైన నమూనాను వెల్లడిస్తాయి:
- a. అదే సమయంలో చార్ట్లను తెరవండి:
తులనాత్మక విశ్లేషణ యొక్క ఫలితాలు అప్లికేషన్లో సంక్లిష్ట మార్పిడి నమూనాలు లేవని చూపిస్తుంది, మార్పిడి పొరుగు ప్రక్రియలతో మాత్రమే నిర్వహించబడుతుంది. అప్లికేషన్ యొక్క కమ్యూనికేషన్ మోడల్ను ఆప్టిమైజ్ చేయడానికి కమ్యూనికేషన్ల దశను మార్చడం ద్వారా మీ అప్లికేషన్ పనితీరును మెరుగుపరచడానికి సమాచారం చాలా అవసరం.
అసమతుల్య కమ్యూనికేషన్లను గుర్తించండి
ఆదర్శ పరిస్థితుల్లో మీ దరఖాస్తును చూడండి మరియు అసలు ట్రేస్ను సరిపోల్చండి file సమస్యాత్మక పరస్పర చర్యలను వేరుచేయడానికి ఆదర్శవంతమైన వాటితో.
- ఆదర్శవంతమైనదాన్ని సృష్టించండి file:
- a. అధునాతన > ఆదర్శీకరణను ఎంచుకోండి లేదా క్లిక్ చేయండి
(ఆదర్శీకరణ) టూల్బార్ బటన్.
- బి. ఆదర్శీకరణ డైలాగ్ బాక్స్లో ఆదర్శీకరణ పారామితులను తనిఖీ చేయండి (ఆదర్శ ట్రేస్ file మార్పిడి కోసం పేరు మరియు సమయ పరిధి).
- సి. మీ ట్రేస్ను ఆదర్శంగా మార్చడానికి ప్రారంభం క్లిక్ చేయండి.
- a. అధునాతన > ఆదర్శీకరణను ఎంచుకోండి లేదా క్లిక్ చేయండి
- అసలు ట్రేస్ను ఆదర్శీకరించిన ట్రేస్తో పోల్చండి:
- a. అధునాతన > అసమతుల్యత రేఖాచిత్రాన్ని ఎంచుకోండి లేదా క్లిక్ చేయండి
(అసమతుల్యత రేఖాచిత్రం) టూల్బార్ బటన్.
- బి. అసమతుల్యత రేఖాచిత్రం డైలాగ్ బాక్స్లో, మరో ఓపెన్ క్లిక్ చేయండి File బటన్, ఆదర్శవంతమైన ట్రేస్కి నావిగేట్ చేసి, దాన్ని ఎంచుకోండి.
- సి. అసమతుల్యత రేఖాచిత్రం విండోలో, టోటల్ మోడ్ బటన్ను క్లిక్ చేసి, బ్రేక్డౌన్ మోడ్ని ఎంచుకోండి.
- a. అధునాతన > అసమతుల్యత రేఖాచిత్రాన్ని ఎంచుకోండి లేదా క్లిక్ చేయండి
MPI_Sendrecv అనేది ఎక్కువ సమయం తీసుకునే ఫంక్షన్ అని మీరు చూడవచ్చు. అసమతుల్యత బరువు ప్రదర్శించబడుతుంది
లేత రంగు మరియు MPI_Sendrecv ఫంక్షన్ కోసం దాదాపు 10% ఉంటుంది. ప్రక్రియలు ఒకదానికొకటి వేచి ఉండే సమయం ఇది.
కమ్యూనికేషన్లను మార్చడం ద్వారా మీ అప్లికేషన్ పనితీరును మెరుగుపరచండి
- బ్లాక్ చేయడాన్ని నాన్-బ్లాకింగ్ కమ్యూనికేషన్లుగా మార్చడం ద్వారా MPI అప్లికేషన్ పనితీరును మెరుగుపరచండి.
మీ కోడ్లో సీరియల్ MPI_Sendrcvని నాన్-బ్లాకింగ్ కమ్యూనికేషన్తో భర్తీ చేయండి: MPI_Isend మరియు MPI_Irecv. ఉదాహరణకుample: ఒరిజినల్ కోడ్ స్నిప్పెట్:
// సరిహద్దు మార్పిడి
శూన్య మార్పిడి(పారా* p, గ్రిడ్* gr){
int i,j;
MPI_స్థితి స్థితి_100, స్థితి_200, స్థితి_300, స్థితి_400;
// మొదటి వరుసను పంపండి
MPI_Send(gr->x_new[1], gr->lcol+2, MPI_DOUBLE, gr->down, 100, MPI_COMM_WORLD); MPI_Recv(gr->x_new[gr->lrow+1], gr->lcol+2, MPI_DOUBLE, gr->up, 100, MPI_COMM_WORLD,
&స్థితి_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->down, 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->right, 400, MPI_COMM_WORLD); }
if(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->down, 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లే: - ఇంటెల్ ట్రేస్ ఎనలైజర్ పోలికను ఉపయోగించండి view సీరియలైజ్డ్ అప్లికేషన్ను రివైజ్ చేసిన దానితో పోల్చడానికి. పోలిక సహాయంతో రెండు జాడలను సరిపోల్చండి View, వెళ్తున్నాను View > సరిపోల్చండి. పోలిక View ఇలా కనిపిస్తుంది:
పోలికలో View, నాన్-బ్లాకింగ్ కమ్యూనికేషన్ని ఉపయోగించడం సీరియలైజేషన్ను తీసివేయడానికి మరియు ప్రక్రియల కమ్యూనికేషన్ సమయాన్ని తగ్గించడానికి సహాయపడుతుందని మీరు చూడవచ్చు.
గమనిక మీ అప్లికేషన్ యొక్క నోడ్-స్థాయి పనితీరు గురించి మరింత సమాచారం కోసం, సంబంధిత సాధనాల కోసం డాక్యుమెంటేషన్ చూడండి: Intel® VTune™ Profiler MPI కోడ్ విశ్లేషణ మరియు Intel® సలహాదారుని ఉపయోగించి Intel® MPI అప్లికేషన్లను విశ్లేషించడం.
మరింత తెలుసుకోండి
ఇంటెల్ ట్రేస్ ఎనలైజర్ మరియు కలెక్టర్ గురించి మరింత సమాచారం కోసం క్రింది వనరులను అన్వేషించండి.
నోటీసులు మరియు నిరాకరణలు
- ఇంటెల్ టెక్నాలజీలకు ప్రారంభించబడిన హార్డ్వేర్, సాఫ్ట్వేర్ లేదా సేవా క్రియాశీలత అవసరం కావచ్చు.
- ఏ ఉత్పత్తి లేదా భాగం ఖచ్చితంగా సురక్షితంగా ఉండదు.
- మీ ఖర్చులు మరియు ఫలితాలు మారవచ్చు.
- © ఇంటెల్ కార్పొరేషన్. ఇంటెల్, ఇంటెల్ లోగో మరియు ఇతర ఇంటెల్ గుర్తులు ఇంటెల్ కార్పొరేషన్ లేదా దాని అనుబంధ సంస్థల ట్రేడ్మార్క్లు. ఇతర పేర్లు మరియు బ్రాండ్లు ఇతరుల ఆస్తిగా క్లెయిమ్ చేయబడవచ్చు.
- ఈ పత్రం ద్వారా ఏదైనా మేధో సంపత్తి హక్కులకు లైసెన్స్ (ఎక్స్ప్రెస్ లేదా ఇంప్లీడ్, ఎస్టోపెల్ ద్వారా లేదా ఇతరత్రా) మంజూరు చేయబడదు.
- వివరించిన ఉత్పత్తులు డిజైన్ లోపాలు లేదా ఎర్రాటా అని పిలువబడే ఎర్రర్లను కలిగి ఉండవచ్చు, దీని వలన ఉత్పత్తి ప్రచురించబడిన స్పెసిఫికేషన్ల నుండి వైదొలగవచ్చు. అభ్యర్థనపై ప్రస్తుత క్యారెక్టరైజ్డ్ ఎర్రాటా అందుబాటులో ఉన్నాయి.
- Intel అన్ని ఎక్స్ప్రెస్ మరియు ఇంప్లైడ్ వారెంటీలను నిరాకరిస్తుంది, పరిమితి లేకుండా, వర్తకం యొక్క సూచిత వారెంటీలు, నిర్దిష్ట ప్రయోజనం కోసం ఫిట్నెస్ మరియు ఉల్లంఘన రహితం, అలాగే పనితీరు, లావాదేవీల విధానం లేదా వాణిజ్యంలో వినియోగం నుండి ఉత్పన్నమయ్యే ఏదైనా వారంటీ.
పత్రాలు / వనరులు
![]() |
intel ఇంటెల్ ట్రేస్ ఎనలైజర్ మరియు కలెక్టర్తో ప్రారంభించండి [pdf] యూజర్ గైడ్ ఇంటెల్ ట్రేస్ ఎనలైజర్ మరియు కలెక్టర్తో ప్రారంభించండి, ఇంటెల్, ట్రేస్ ఎనలైజర్ మరియు కలెక్టర్, కలెక్టర్తో ప్రారంభించండి |