በIntel Trace Analyzer እና ሰብሳቢ ይጀምሩ
በIntel® Trace Analyzer እና ሰብሳቢ ይጀምሩ
ይህን የጀምር ሰነድ እና አስቀድሞ የተሰበሰበ ዱካ ይጠቀሙ file ከIntel® Trace Analyzer እና ሰብሳቢ ጋር በመሠረታዊ የ MPI አፈጻጸም ትንተና ውስጥ ለመራመድ።
የኢንቴል ትሬስ ተንታኝ እና ሰብሳቢ የመልእክት ማለፊያ በይነገጽን (MPI) አጠቃቀምን ውጤታማነት ለመዳሰስ እና የመገናኛ ቦታዎችን፣ የማመሳሰል ማነቆዎችን እና የጭነት ሚዛንን ለመለየት ይረዳል። ስለ ምርቱ ተጨማሪ መረጃ ለማግኘት የኢንቴል ትሬስ ተንታኝ እና ሰብሳቢ ምርት ገጽን ይመልከቱ።
Intel Trace Analyzer እና ሰብሳቢን ያውርዱ
- እንደ Intel® oneAPI HPC Toolkit አካል
- እንደ ገለልተኛ መሣሪያ
ቅድመ-ሁኔታዎች
- Intel Trace Analyzer እና Collectorን ከማሄድዎ በፊት የቅርብ ጊዜውን Intel® MPI Library እና Intel® oneAPI DPC++/C++ Compiler ወይም Intel® Fortran Compiler መጫኑን ያረጋግጡ።
- ይህ ለአቀነባባሪዎች፣ ለኢንቴል MPI ቤተ-መጽሐፍት እና ለኢንቴል ትሬስ ተንታኝ እና ሰብሳቢ የሚፈለጉትን የአካባቢ ተለዋዋጮች ያዘጋጃል፣ እና መተግበሪያዎችዎን ለመፈለግ ዝግጁ ነዎት።
- ለበለጠ መረጃ፡ Intel® oneAPI HPC Toolkit System መስፈርቶችን ይመልከቱ።
የስራ ሂደትን ይረዱ
- ማመልከቻዎን ይከታተሉ
- በጣም ንቁ የሆኑትን MPI ተግባራትን ይተንትኑ
- ችግር ያለባቸውን መስተጋብሮች መለየት
- ችግር የሚፈጥር ተግባርን በመተካት የመተግበሪያዎን አፈጻጸም ያሻሽሉ።
የእርስዎን MPI መተግበሪያ ይከታተሉ
ዱካ ይፍጠሩ file ለሚከተለው የመተግበሪያ ባህሪ ትንተና የክስተት ምዝግብ ማስታወሻዎችን ለመሰብሰብ.
- የ setvars ስክሪፕትን ከአንድ ኤፒአይ የመጫኛ ዳይሬክተር በማስኬድ የ Intel® Trace Analyzer እና ሰብሳቢን ለመጀመር አካባቢን ያዘጋጁ
ማስታወሻ
በነባሪ፣ Intel Trace Analyzer እና ሰብሳቢው ለሊኑክስ * ኦፕሬቲንግ ሲስተም እና ለፕሮግራም /opt/intel/oneapi/itac ተጭኗል። Files (x86)\Intel\oneAPI\itac\nለዊንዶውስ* ስርዓተ ክወና የቅርብ ጊዜ።
በሊኑክስ ላይ፡-
$ ምንጭ /opt/intel/oneapi/setvars.sh
በዊንዶው ላይ:
"C:\ፕሮግራም። Files (x86)\Intel\oneAPI\setvars.bat" - የእርስዎን MPI መተግበሪያ ያሂዱ እና ከ -trace አማራጭ ጋር ዱካ ይፍጠሩ።
በሊኑክስ ላይ፡-
$ mpirun -trace -n 4 ./poisson_sendrecv.single
በዊንዶው ላይ:
መተግበሪያውን ሰብስቡ እና ፈለጉን ይሰብስቡ።
ለIntel oneAPI DPC++/C++ Compiler፣ አሂድ፡
> mpicc -trace poisson_sendrecv.single.c
ለIntel Fortran Compiler፣ አሂድ፡-
> mpifort -trace poisson_sendrecv.single.f
ይህ ለምሳሌample ዱካ (stf*) ያመነጫል።ample poisson_sendrcv.ነጠላ MPI መተግበሪያ - የመነጨውን .stf ይክፈቱ file ከIntel Trace Analyzer ጋር ከኢንቴል ትሬስ ተንታኝ እና ሰብሳቢ ጋር።
በሊኑክስ ላይ፡-
$ traceanalyzer ./ poisson_sendecv.single.stf
በዊንዶው ላይ:
traceanalyzer poisson_sendecv.single.stf
ማስታወሻ
ለሙከራ ዓላማዎች አስቀድመው የተሰበሰበ ዱካ ማውረድ ይችላሉ። file poisson_sendecv.single.stf በዚህ ሰነድ ውስጥ ጥቅም ላይ የዋለውን መርዝ እና በIntel Trace Analyzer እና ሰብሳቢ ይክፈቱት።
የ .stf file በማጠቃለያ ገጹ ይከፈታል። viewስለመተግበሪያዎ አፈጻጸም አጠቃላይ መረጃን የሚወክል፡ማስታወሻ ስለ Intel Trace Analyzer እና ሰብሳቢ ተግባር የበለጠ መረጃ ለማግኘት የበለጠ ለመረዳት ይመልከቱ።
በጣም ንቁ የMPI ተግባራትን ይተንትኑ
የኤምፒአይ መተግበሪያ ባህሪን ይተንትኑ፣ ማነቆዎችን ያግኙ እና የመተግበሪያውን አፈጻጸም ለማሻሻል መንገዶችን ለማግኘት ተከታታይነትን ይለዩ።
- ከማጠቃለያ ገጹ የክስተት ጊዜ መስመርን ይክፈቱ view የከፍተኛ MPI ተግባራትን በጥልቀት ለመተንተን ቀጥል > ገበታዎች > የክስተት የጊዜ መስመርን ጠቅ በማድረግ።
ሰንጠረዡ በጊዜ ሂደት የግለሰብ ሂደት እንቅስቃሴዎችን ያሳያል.
የመተግበሪያ ስራ ተደጋጋሚ ነው፣እያንዳንዱ ድግግሞሹ ስሌት ክፍል እና MPI ግንኙነቶችን ያቀፈ ነው። - ለማተኮር አንድ ነጠላ ድግግሞሽ ይለዩ እና አይጥዎን በሚፈለገው የጊዜ ክፍተት ውስጥ በመጎተት ወደ እሱ ያሳድጉ፡
ዱካው view በመረጡት ፈለግ ውስጥ ያለውን ክፍል ያሳያል። የክስተት ጊዜ መስመር ገበታ በተመረጠው ድግግሞሽ ወቅት ንቁ የነበሩትን ክስተቶች ያሳያል።
- አግድም አሞሌዎች በእነዚህ ሂደቶች ውስጥ ከሚጠሩት ተግባራት ጋር ሂደቶችን ይወክላሉ.
- ጥቁር መስመሮች በሂደቶች መካከል የተላኩ መልዕክቶችን ያመለክታሉ. እነዚህ መስመሮች የመላክ እና የመቀበል ሂደቶችን ያገናኛሉ.
- ሰማያዊ መስመሮች እንደ ማሰራጫ ወይም መቀነስ የመሳሰሉ የጋራ ስራዎችን ይወክላሉ.
- ወደ Flat Pro ቀይርfile ትር (ሀ) እርስዎ ባሉበት ጊዜ ውስጥ የሚከናወኑ ተግባራትን በቅርበት ለመመልከት (በክስተት ጊዜ መስመር ላይ ተመርጧል።
- በመተግበሪያዎ ውስጥ የMPI ሂደት እንቅስቃሴን ለመተንተን MPI ተግባራትን ይንቀሉ።
ይህንን ለማድረግ በ Flat Pro ውስጥ ያሉትን ሁሉንም ሂደቶች> የቡድን MPI (B) በቀኝ ጠቅ ያድርጉfile እና UngroupMPI ን ይምረጡ። ይህ ክዋኔ የግለሰብ MPI ጥሪዎችን ያጋልጣል። - በድግግሞሹ መጀመሪያ ላይ MPI_Sendrecvን በመጠቀም ከጎረቤቶቻቸው ጋር የሚገናኙትን ሂደቶች ይተንትኑ። ለ exampላይ:
- ሀ. በኤስample, MPI_Sendrecv የውሂብ ልውውጥ ማነቆ አለው፡ ሂደቱ ከቀዳሚው ጋር ያለው ልውውጥ እስኪጠናቀቅ ድረስ ከጎረቤት ጋር ውሂብ አይለዋወጥም. የዝግጅቱ የጊዜ መስመር view ይህንን ማነቆ እንደ ደረጃ ያሳያል።
- ለ. በድግግሞሹ መጨረሻ ላይ ያለው MPI_Allreduce ሁሉንም ሂደቶች እንደገና ያመሳስላል; ለዚህ ነው ይህ ብሎክ የተገላቢጦሽ የደረጃ መውጣት ገጽታ ያለው።
- የተግባር ፕሮን በመጠቀም ተከታታይነትን ይለዩfile እና መልእክት ፕሮfile views.
- ሀ. ሰንጠረዦቹን በተመሳሳይ ጊዜ ይክፈቱ፡-
በተግባር ፕሮfile ገበታ፣ Load Balancetab ን ይክፈቱ። - መልእክት ፕሮ ለመክፈት ወደ ገበታዎች ምናሌ ይሂዱfile.
- ለ. በ Load Balance ትሩ ውስጥ MPI_Sendrecv እና MPI_Allreduceን ዘርጋ። የሎድ ሚዛኑ የሚያሳየው በMPI_Sendrecv ውስጥ ያለው ጊዜ በሂደቱ ቁጥር እንደሚጨምር፣ የMPI_Allreduce ጊዜ ግን ይቀንሳል።
- ሐ. መልእክቱን መርምርfile ወደ ታችኛው ቀኝ ጥግ ላይ ወደ ታች ገበታ።
የብሎኮች ቀለም ኮድ ከከፍተኛ ማዕረግ ወደ ዝቅተኛ ደረጃ የሚጓዙ መልእክቶች በተመጣጣኝ ሁኔታ ብዙ ጊዜ እንደሚፈልጉ ያሳያል ፣ ከዝቅተኛ ማዕረግ ወደ ከፍተኛ ማዕረግ የሚጓዙ መልእክቶች ደካማ እንኳን-ያልተለመደ ስርዓተ-ጥለት ያሳያሉ።
- ሀ. ሰንጠረዦቹን በተመሳሳይ ጊዜ ይክፈቱ፡-
የንጽጽር ትንተና ውጤቶች በመተግበሪያው ውስጥ ምንም ውስብስብ የልውውጥ ዘይቤዎች እንደሌሉ ያሳያሉ, ልውውጡ የሚከናወነው በአጎራባች ሂደቶች ብቻ ነው. የመተግበሪያውን የግንኙነት ሞዴል ለማመቻቸት የግንኙነት ደረጃን በመቀየር የመተግበሪያዎን አፈጻጸም ለማሻሻል መረጃው አስፈላጊ ይሆናል።
ሚዛናዊ ያልሆኑ ግንኙነቶችን መለየት
ማመልከቻዎን በጥሩ ሁኔታ ውስጥ ይመልከቱ እና የመጀመሪያውን ፈለግ ያወዳድሩ file ችግር ያለባቸውን መስተጋብሮች ለመለየት ከታሰበው ጋር።
- ሃሳባዊ ፍጠር file:
- ሀ. የላቀ > Idealization የሚለውን ይምረጡ ወይም ጠቅ ያድርጉ
(Idealization) የመሳሪያ አሞሌ አዝራር።
- ለ. በ Idealization የንግግር ሳጥን ውስጥ ያለውን ሃሳባዊነት መለኪያዎችን ያረጋግጡ (ጥሩ ዱካ file ለመለወጥ ስም እና የጊዜ ክልል)።
- ሐ. ፈለግዎን በትክክል ለማስተካከል ጀምርን ጠቅ ያድርጉ።
- ሀ. የላቀ > Idealization የሚለውን ይምረጡ ወይም ጠቅ ያድርጉ
- ዋናውን ዱካ ከትክክለኛው ዱካ ጋር ያወዳድሩ፡
- ሀ. የላቀ > Imbalance Diagram የሚለውን ይምረጡ ወይም ጠቅ ያድርጉ
(የተዛባ ዲያግራም) የመሳሪያ አሞሌ አዝራር።
- ለ. በ Imbalance Diagram ሣጥን ውስጥ ሌላ ክፈት የሚለውን ጠቅ ያድርጉ File አዝራር፣ ወደ ሃሳባዊው ፈለግ ሂድ እና ምረጥ።
- ሐ. በ Imbalance Diagram መስኮት ውስጥ የጠቅላላ ሁነታ አዝራሩን ጠቅ ያድርጉ እና Breakdown Mode የሚለውን ይምረጡ.
- ሀ. የላቀ > Imbalance Diagram የሚለውን ይምረጡ ወይም ጠቅ ያድርጉ
MPI_Sendrecv በጣም ጊዜ የሚወስድ ተግባር መሆኑን ማየት ይችላሉ። ሚዛናዊ ያልሆነ ክብደት በ ውስጥ ይታያል
ቀላል ቀለም እና ለMPI_Sendrecv ተግባር 10% ያህል ያካትታል። ይህ ሂደቶቹ እርስ በርስ በመጠባበቅ የሚያሳልፉት ጊዜ ነው.
ግንኙነቶችን በመቀየር የማመልከቻዎን አፈጻጸም ያሻሽሉ።
- እገዳን ወደ የማይከለክሉ ግንኙነቶች በመቀየር የMPI መተግበሪያን አፈፃፀም አሻሽል።
በ ኮድዎ ውስጥ MPI_Sendrcvን በማይከለክል ግንኙነት ይተኩ፡ MPI_Isend እና MPI_Irecv። ለ exampለ፡ ኦሪጅናል ኮድ ቁርጥራጭ፡
// የድንበር ልውውጥ
ባዶ ልውውጥ (ፓራ * ፒ ፣ ፍርግርግ * gr){
int i,j;
MPI_ሁኔታ_100፣ ሁኔታ_200፣ ሁኔታ_300፣ ሁኔታ_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፣
& ሁኔታ_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);
የIntel Trace Analyzer ንጽጽርን ተጠቀም view የተከታታይ መተግበሪያን ከተሻሻለው ጋር ለማነፃፀር
// የግራ ዓምድ ወደ tmp ድርድሮች ይቅዱ
ከሆነ(gr->ግራ!= MPI_PROC_NULL){
gr->x_new[i][gr->lcol+1] = ቀኝ_col[i]; right_col[i] = gr-> x_new[i][gr->lcol];
// በትክክል ላክ
MPI_Send (ቀኝ_col፣ gr->lrow+2፣ MPI_DOUBLE፣ gr->ቀኝ፣ 400፣ MPI_COMM_WORLD); }
ከሆነ(gr->ግራ!= MPI_PROC_NULL)
{
MPI_Recv (ግራ_col፣ gr-> lrow+2፣ MPI_DOUBLE፣ gr->ግራ፣ 400፣ MPI_COMM_WORLD፣&status_400); ለ(i=0፤ i< gr->lrow+2፤ i++
{
gr-> x_new[i][0] = ግራ_col[i];
}
}
የዘመነ የኮድ ቅንጣቢ
MPI_ጥያቄ ጥያቄ[7];
// የመጀመሪያውን ረድፍ ላክ
MPI_Isend (gr-> x_new [1]፣ gr-> col+2፣ MPI_DOUBLE፣ GR-> ታች፣ 100፣ MPI_COMM_WORLD፣ & req [0]);
MPI_Irecv (gr-> x_new [gr-> lrow +1]፣ gr-> col+2፣ MPI_DOUBLE፣ gr->ላይ፣ 100፣ MPI_COMM_WORLD፣ & req [1]);
……..
MPI_Waitall(7፣ req፣ MPI_STATUSES_IGNORE);
አንዴ ከተስተካከለ፣ የተሻሻለው መተግበሪያ ነጠላ ድግግሞሽ የሚከተለውን ይመስላልampላይ: - የIntel Trace Analyzer ንጽጽርን ተጠቀም view የተከታታይ መተግበሪያን ከተሻሻለው ጋር ለማነፃፀር። በንጽጽር እርዳታ ሁለት ዱካዎችን ያወዳድሩ View, መሄድ View > አወዳድር። ንጽጽር View ተመሳሳይ ይመስላል፡-
በንፅፅር View, የማያግድ ግንኙነትን መጠቀም ተከታታይነትን ለማስወገድ እና የሂደቶችን ግንኙነት ጊዜ ለመቀነስ እንደሚረዳ ማየት ይችላሉ.
ማስታወሻ ስለ መተግበሪያዎ የመስቀለኛ ደረጃ አፈጻጸም የበለጠ መረጃ ለማግኘት ለሚመለከታቸው መሳሪያዎች ሰነዶችን ይመልከቱ፡ Intel® VTune™ Profiler MPI Code Analysis እና Intel® MPI አፕሊኬሽኖችን Intel® አማካሪን በመጠቀም መተንተን።
የበለጠ ተማር
ስለ Intel Trace Analyzer እና ሰብሳቢ ተጨማሪ መረጃ ለማግኘት የሚከተሉትን መርጃዎች ያስሱ።
ማሳሰቢያዎች እና ማስተባበያዎች
- የኢንቴል ቴክኖሎጂዎች የነቃ ሃርድዌር ፣ ሶፍትዌር ወይም የአገልግሎት ማግበር ሊፈልጉ ይችላሉ ፡፡
- ምንም ምርት ወይም አካል በፍፁም አስተማማኝ ሊሆን አይችልም ፡፡
- የእርስዎ ወጪዎች እና ውጤቶች ሊለያዩ ይችላሉ።
- © ኢንቴል ኮርፖሬሽን. ኢንቴል፣ የኢንቴል አርማ እና ሌሎች የኢንቴል ምልክቶች የኢንቴል ኮርፖሬሽን ወይም የስርጭቱ የንግድ ምልክቶች ናቸው። ሌሎች ስሞች እና የንግድ ምልክቶች እንደ ሌሎች ንብረት ሊጠየቁ ይችላሉ።
- በዚህ ሰነድ ማንኛውም የአእምሯዊ ንብረት መብቶች (የተገለጸ ወይም በተዘዋዋሪ፣ በኤስቶፔል ወይም በሌላ መንገድ) ፈቃድ አልተሰጠም።
- የተገለጹት ምርቶች የንድፍ ጉድለቶች ወይም ኢራታ በመባል የሚታወቁ ስህተቶች ሊይዙ ይችላሉ ይህም ምርቱ ከታተመ ዝርዝር መግለጫዎች እንዲወጣ ሊያደርግ ይችላል። አሁን ያለው ተለይቶ የሚታወቅ ኢራታ በጥያቄ ላይ ይገኛል።
- ኢንቴል ሁሉንም ግልጽ እና የተዘዋዋሪ ዋስትናዎች፣ ያለ ገደብ፣ የተዘዋዋሪ የሸቀጣሸቀጥ ዋስትናዎች፣ ለተወሰነ ዓላማ የአካል ብቃት እና ያለመብት እንዲሁም በአፈጻጸም ሂደት፣ በንግዱ ሂደት ወይም በንግድ አጠቃቀም ላይ የሚነሱ ማናቸውንም ዋስትናዎች ጨምሮ ውድቅ ያደርጋል።
ሰነዶች / መርጃዎች
![]() |
intel በ Intel Trace Analyzer እና ሰብሳቢ ይጀምሩ [pdf] የተጠቃሚ መመሪያ በIntel Trace Analyzer እና ሰብሳቢ ይጀምሩ፣ በ Intel ይጀምሩ፣ መከታተያ አናሊዘር እና ሰብሳቢ፣ ሰብሳቢ |