באַקומען סטאַרטעד מיט Intel Trace Analyzer און קאַלעקטער
באַקומען סטאַרטעד מיט Intel® Trace Analyzer און קאַלעקטער
ניצן דעם באַקומען סטאַרטעד דאָקומענט און אַ פאַר-געזאמלט שפּור file צו גיין דורך אַ יקערדיק MPI פאָרשטעלונג אַנאַליסיס מיט Intel® Trace Analyzer און Collector.
ינטעל טראַסע אַנאַליזער און קאַלעקטער העלפּס ויספאָרשן די נוצן פון אָנזאָג דורכפאָר צובינד (MPI) עפעקטיווקייַט און ידענטיפיצירן קאָמוניקאַציע האָצפּאָץ, סינגקראַנאַזיישאַן באַטאַלנעקס און מאַסע באַלאַנסינג. פֿאַר מער אינפֿאָרמאַציע וועגן דעם פּראָדוקט, זען Intel Trace Analyzer און קאַלעקטער פּראָדוקט בלאַט.
אראפקאפיע Intel Trace Analyzer and Collector
- ווי אַ טייל פון Intel® oneAPI HPC Toolkit
- ווי אַ סטאַנדאַלאָנע געצייַג
פּרירעקוואַזאַץ
- איידער איר לויפן Intel Trace Analyzer און Collector, מאַכן זיכער אַז איר האָט אינסטאַלירן די לעצטע Intel® MPI ביבליאָטעק און Intel® oneAPI DPC ++/C++ קאַמפּיילער אָדער Intel® Fortran Compiler.
- דאָס באַשטעטיקט די פארלאנגט סוויווע וועריאַבאַלז פֿאַר קאָמפּילערס, די Intel MPI ביבליאָטעק, און Intel Trace Analyzer and Collector, און איר זענט גרייט צו שפּור דיין אַפּלאַקיישאַנז.
- פֿאַר מער אינפֿאָרמאַציע, זען: Intel® oneAPI HPC Toolkit סיסטעם רעקווירעמענץ.
פֿאַרשטיין די וואָרקפלאָוו
- שפּור דיין אַפּלאַקיישאַן
- פונאַנדערקלייַבן די מערסט אַקטיוו MPI פאַנגקשאַנז
- ידענטיפיצירן פּראָבלעמאַטיק ינטעראַקשאַנז
- פֿאַרבעסערן דיין אַפּלאַקיישאַן פאָרשטעלונג דורך ריפּלייסינג די פּראָבלעם קאָזינג פונקציע
שפּור דיין MPI אַפּלאַקיישאַן
שאַפֿן אַ שפּור file צו זאַמלען געשעעניש לאָגס פֿאַר די פאלגענדע אַפּלאַקיישאַן נאַטור אַנאַליסיס.
- באַשטעטיקן די סוויווע פֿאַר קאַטער די Intel® Trace Analyzer און קאַלעקטער דורך לויפן די סעטוואַרס שריפט פֿון די OneAPI ייַנמאָנטירונג דירעקטאָר
נאָטיץ
דורך פעליקייַט, Intel Trace Analyzer and Collector איז אינסטאַלירן צו /opt/intel/oneapi/itac פֿאַר לינוקס * אַס און צו פּראָגראַם Files (x86)\Intel\oneAPI\itac\לעצטע פֿאַר Windows* אַס.
אויף לינוקס:
$ מקור /opt/intel/oneapi/setvars.sh
אויף Windows:
"C: \ פּראָגראַם Files (x86)\Intel\oneAPI\setvars.bat" - לויפן דיין MPI אַפּלאַקיישאַן און דזשענערייט אַ שפּור מיט די -שפּור אָפּציע.
אויף לינוקס:
$ mpirun -trace -n 4 ./poisson_sendrecv.single
אויף Windows:
צונויפשטעלנ די אַפּ און קלייַבן די שפּור.
פֿאַר Intel oneAPI DPC ++/C++ קאַמפּיילער, לויפן:
> mpiicc -trace poisson_sendrecv.single.c
פֿאַר Intel Fortran קאַמפּיילער, לויפן:
> mpiifort -trace poisson_sendrecv.single.f
דעם עקסample דזשענערייץ אַ שפּור (סטף *) פֿאַר וויample poisson_sendrcv.single MPI אַפּלאַקיישאַן - עפענען די דזשענערייטאַד .סטף file מיט Intel Trace Analyzer מיט Intel Trace Analyzer און קאַלעקטער.
אויף לינוקס:
$ טראַסעאַנאַליזער ./ poisson_sendrecv.single.stf
אויף Windows:
traceanalyzer poisson_sendrecv.single.stf
נאָטיץ
פֿאַר טעסטינג צוועקן, איר קענען אראפקאפיע אַ פאַר-געזאמלט שפּור file poisson_sendrecv.single.stf פֿאַר די פּאָיססאָן געניצט אין דעם דאָקומענט און עפֿענען עס מיט Intel Trace Analyzer און Collector.
די .סטף file אָפּענס אין די קיצער בלאַט view, וואָס רעפּראַזענץ גענעראַל אינפֿאָרמאַציע וועגן דיין אַפּלאַקיישאַן פאָרשטעלונג:נאָטיץ פֿאַר מער אינפֿאָרמאַציע וועגן Intel Trace Analyzer און קאַלעקטער פאַנגקשאַנאַליטי, זען לערנען מער.
אַנאַלייז די מערסט אַקטיוו MPI פאַנגקשאַנז
פונאַנדערקלייַבן אַ MPI אַפּלאַקיישאַן נאַטור, געפֿינען באַטאַלנעקס און ידענטיפיצירן סיריאַליזיישאַן צו געפֿינען די וועגן צו פֿאַרבעסערן די אַפּלאַקיישאַן פאָרשטעלונג.
- פֿון די קיצער בלאַט עפענען די געשעעניש טיימליין view דורך געבן אַ קליק פאָרזעצן > טשאַרץ > געשעעניש טיימליין פֿאַר טיף אַנאַליסיס פון די שפּיץ MPI פאַנגקשאַנז.
די טשאַרט דיספּלייז יחיד פּראָצעס אַקטיוויטעטן איבער צייַט.
אַפּפּליקאַטיאָן אַרבעט איז יטעראַטיוו, ווו יעדער יטעראַטיאָן באשטייט פון אַ קאַמפּיוטיישאַנאַל טייל און MPI קאָמוניקאַציע. - ידענטיפיצירן אַ איין יטעראַטיאָן צו פאָקוס אויף און פארגרעסער אין עס דורך שלעפּן דיין מויז איבער די פארלאנגט צייט מעהאַלעך:
דער שפּור view ווייזט די אָפּטיילונג אין די שפּור אַז איר האָט אויסגעקליבן. די געשעעניש טיימליין טשאַרט ווייזט די געשעענישן וואָס זענען געווען אַקטיוו בעשאַס די אויסגעקליבן יטעראַטיאָן.
- האָריזאָנטאַל באַרס פאָרשטעלן די פּראַסעסאַז מיט די פאַנגקשאַנז גערופן אין די פּראַסעסאַז.
- שוואַרץ שורות אָנווייַזן אַרטיקלען געשיקט צווישן פּראַסעסאַז. די שורות פאַרבינדן שיקט און ריסיווינג פּראַסעסאַז.
- בלוי שורות פאָרשטעלן קאָלעקטיוו אַפּעריישאַנז, אַזאַ ווי בראָדקאַסט אָדער רעדוצירן אַפּעריישאַנז.
- באַשטימען צו די Flat Profile קוויטל (א) צו האָבן אַ נעענטער קוק אין פאַנגקשאַנז עקסאַקיוטינג אין די צייט פונט איר (סעלעקטעד אין די געשעעניש טיימליין.
- ונגראָופּ MPI פאַנגקשאַנז צו אַנאַלייז די MPI פּראָצעס טעטיקייט אין דיין אַפּלאַקיישאַן.
צו טאָן דאָס, רעכט גיט די אַלע פּראַסעסאַז> גרופע MPI (ב) אין די Flat Profile און קלייַבן UngroupMPI. דעם אָפּעראַציע יקספּאָוזיז די יחיד MPI רופט. - פונאַנדערקלייַבן די פּראַסעסאַז קאַמיונאַקייטינג מיט זייער דירעקט שכנים ניצן MPI_Sendrecv אין די אָנהייב פון די יטעראַטיאָן. פֿאַר עקסampלאַ:
- א. אין די סampליי, די MPI_Sendrecv דאַטן וועקסל האט אַ באַטאַלנעק: דער פּראָצעס טוט נישט וועקסל דאַטן מיט זיין ווייַטער חבר ביז דער וועקסל מיט די פריערדיקע איז גאַנץ. די געשעעניש טיימליינז view דיספּלייז דעם באַטאַלנעק ווי אַ לייטער.
- ב. די MPI_Allreduce אין די סוף פון די יטעראַטיאָן ריסינטשראָניזעס אַלע פּראַסעסאַז; אַז איז וואָס דעם בלאָק האט די פאַרקערט לייטער אויסזען.
- ידענטיפיצירן סיריאַליזיישאַן מיט די Function Profile און אָנזאָג פּראָfile views.
- א. עפענען די טשאַרץ אין דער זעלביקער צייט:
אין די פונקציע פּראָfile טשאַרט, עפענען די לאָדן באַלאַנסטאַב. - גיין צו די טשאַרץ מעניו צו עפֿענען אַ אָנזאָג פּראָfile.
- ב. אין די Load Balance קוויטל, יקספּאַנד MPI_Sendrecv און MPI_Allreduce. די מאַסע באַלאַנסינג ינדיקייץ אַז די צייט פארבראכט אין MPI_Sendrecv ינקריסיז מיט דעם פּראָצעס נומער, בשעת די צייט פֿאַר MPI_Allreduce דיקריסאַז.
- ג. ונטערזוכן די אָנזאָג פּראָfile טשאַרט אַראָפּ צו דער נידעריקער רעכט ווינקל.
די קאָליר קאָדירונג פון די בלאַקס ינדיקייץ אַז אַרטיקלען וואָס אַרומפאָרן פון אַ העכער ריי צו אַ נידעריקער ריי דאַרפֿן פּראַפּאָרשנאַלי מער צייט בשעת די אַרטיקלען וואָס אַרומפאָרן פון אַ נידעריקער ריי צו אַ העכער ריי אַנטדעקן אַ שוואַך אפילו-מאָדנע מין פון מוסטער:
- א. עפענען די טשאַרץ אין דער זעלביקער צייט:
די רעזולטאטן פון די קאָמפּאַראַטיווע אַנאַליסיס ווייזט אַז עס זענען קיין קאָמפּלעקס וועקסל פּאַטערנז אין די אַפּלאַקיישאַן, דער וועקסל איז געפירט אויס בלויז מיט ארומיקע פּראַסעסאַז. די אינפֿאָרמאַציע וועט זיין יקערדיק פֿאַר פֿאַרבעסערן דיין אַפּפּליקאַטיאָן פאָרשטעלונג דורך טשאַנגינג קאָמוניקאַציע סטעפּס צו אַפּטאַמייז די קאָמוניקאַציע מאָדעל פון די אַפּלאַקיישאַן.
ידענטיפיצירן דיסבאַלאַנסט קאָמוניקאַציע
היטן דיין אַפּלאַקיישאַן אונטער די ידעאַל צושטאנדן און פאַרגלייַכן די אָריגינעל שפּור file מיט די ידעאַליזעד צו יזאָלירן פּראָבלעמאַטיק ינטעראַקשאַנז.
- שאַפֿן אַ ידעאַליזעד file:
- א. אויסקלייַבן אַוואַנסירטע> ידעאַליזאַטיאָן אָדער גיט די
(ידעאַליזאַטיאָן) מכשיר קנעפּל.
- ב. קאָנטראָלירן די ידעאַליזאַטיאָן פּאַראַמעטערס אין די ידעאַליזאַטיאָן דיאַלאָג קעסטל (ידעאַל שפּור file נאָמען און צייט קייט פֿאַר קאַנווערזשאַן).
- ג. דריקט אָנהייב צו ידעאַליזירן דיין שפּור.
- א. אויסקלייַבן אַוואַנסירטע> ידעאַליזאַטיאָן אָדער גיט די
- פאַרגלייַכן די אָריגינעל שפּור מיט די ידעאַליזעד שפּור:
- א. אויסקלייַבן אַוואַנסירטע > ימבאַלאַנס דיאַגראַמע אָדער גיט די
(ימבאַלאַנס דיאַגראַמע) מכשיר קנעפּל.
- ב. אין די ימבאַלאַנס דיאַגראַמע דיאַלאָג קעסטל, גיט די עפֿן אנדערן File קנעפּל, נאַוויגירן צו די ידעאַליזעד שפּור און סעלעקטירן עס.
- ג. אין די ימבאַלאַנס דיאַגראַמע פֿענצטער, גיט די גאַנץ מאָדע קנעפּל און סעלעקטירן ברעאַקדאָוון מאָדע.
- א. אויסקלייַבן אַוואַנסירטע > ימבאַלאַנס דיאַגראַמע אָדער גיט די
איר קענען זען אַז MPI_Sendrecv איז די מערסט צייט-קאַנסומינג פונקציע. די ימבאַלאַנס וואָג איז געוויזן אין
ליכט קאָליר און קאַמפּרייזיז וועגן 10% פֿאַר די MPI_Sendrecv פונקציע. דאָס איז די צייט וואָס די פּראַסעסאַז פאַרברענגען ווארטן פֿאַר יעדער אנדערער.
פֿאַרבעסערן דיין אַפּלאַקיישאַן פאָרשטעלונג דורך טשאַנגינג קאָמוניקאַציע
- פֿאַרבעסערן די פאָרשטעלונג פון די MPI אַפּלאַקיישאַן דורך טשאַנגינג בלאַקינג צו ניט-בלאַקינג קאָמוניקאַציע.
אין דיין קאָד פאַרבייַטן די סיריאַל MPI_Sendrcv מיט ניט-בלאַקינג קאָמוניקאַציע: MPI_Isend און MPI_Irecv. פֿאַר עקסample: אָריגינעל קאָד סניפּאַט:
// גרענעץ וועקסל
פּאָסל וועקסל (פּאַראַ* פּ, גריד* גר) {
int i,j;
MPI_Status Status_100, Status_200, Status_300, Status_400;
// שיקן אַראָפּ ערשטער רודערן
MPI_Send(גר->קס_נייַ[1], גר->לקאָל+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->down, 200, MPI_COMM_WORLD, &status_200);
ניצן די Intel Trace Analyzer Comparison view צו פאַרגלייַכן די סיריאַלייזד אַפּלאַקיישאַן מיט די ריווייזד
// קאָפּיע לינקס זייַל צו טמפּ ערייז
אויב (גר-> לינקס != MPI_PROC_NULL){
gr->x_new[i][gr->lcol+1] = רעכט_קאָל[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); }
אויב (גר-> לינקס != MPI_PROC_NULL)
{
MPI_Recv (left_col, gr->lrow+2, MPI_DOUBLE, gr->left, 400, MPI_COMM_WORLD,&status_400); פֿאַר(איך=0; איך <גר->לראָוו+2; איך++
{
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, רעק, MPI_STATUSES_IGNORE);
אַמאָל קערעקטאַד, די איין יטעראַטיאָן פון די ריווייזד אַפּלאַקיישאַן וועט קוקן ווי די פאלגענדע עקסampלאַ: - ניצן די Intel Trace Analyzer Comparison view צו פאַרגלייַכן די סיריאַלייזד אַפּלאַקיישאַן מיט די ריווייזד. פאַרגלייַכן צוויי טראַסעס מיט די הילף פון די פאַרגלייַך View, גיי צו View > פאַרגלייַכן. די פאַרגלייַך View קוקט ענלעך צו:
אין די פאַרגלייַך View, איר קענען זען אַז ניצן ניט-בלאַקינג קאָמוניקאַציע העלפּס צו באַזייַטיקן סיריאַליזיישאַן און פאַרמינערן די צייט פון קאָמוניקאַציע פון פּראַסעסאַז.
נאָטיץ פֿאַר מער אינפֿאָרמאַציע וועגן נאָדע-מדרגה פאָרשטעלונג פון דיין אַפּלאַקיישאַן, זען דאַקיומענטיישאַן פֿאַר די ריספּעקטיוו מכשירים: Intel® VTune™ Profileר MPI קאָוד אַנאַליסיס און אַנאַלייזינג Intel® MPI אַפּלאַקיישאַנז ניצן Intel® אַדווייזער.
לערן מער
ויספאָרשן די פאלגענדע רעסורסן פֿאַר מער אינפֿאָרמאַציע וועגן Intel Trace Analyzer און קאַלעקטער.
נאָטעס און אָפּלייקענונג
- ינטעל טעקנאַלאַדזשיז קען דאַרפן ענייבאַלד ייַזנוואַרג, ווייכווארג אָדער דינען אַקטאַוויישאַן.
- קיין פּראָדוקט אָדער קאָמפּאָנענט קענען זיין לעגאַמרע זיכער.
- דיין קאָס און רעזולטאַטן קען בייַטן.
- © Intel Corporation. ינטעל, די ינטעל לאָגאָ און אנדערע ינטעל מאַרקס זענען טריידמאַרקס פון ינטעל קאָרפּאָראַטיאָן אָדער זייַן סאַבסידיעריז. אנדערע נעמען און בראַנדז קענען זיין קליימד ווי די פאַרמאָג פון אנדערע.
- קיין דערלויבעניש (אויסדריקט אָדער ימפּלייד, דורך עסטאָפּעל אָדער אַנדערש) צו קיין אינטעלעקטואַל פאַרמאָג רעכט איז געגעבן דורך דעם דאָקומענט.
- די דיסקרייבד פּראָדוקטן קען אַנטהאַלטן פּלאַן חסרונות אָדער ערראָרס, באקאנט ווי ערראַטאַ, וואָס קען פאַרשאַפן די פּראָדוקט צו אָפּנייגן פון ארויס ספּעסאַפאַקיישאַנז. קראַנט קעראַקטערייזד ערראַטאַ זענען בנימצא אויף בעטן.
- ינטעל דיסקליימז אַלע אויסדריקן און ימפּלייד וואָראַנטיז, אַרייַנגערעכנט אָן באַגרענעצונג, די ימפּלייד וואָראַנטיז פון סחרחורות, טויגיקייט פֿאַר אַ באַזונדער ציל, און ניט-ינפרינדזשמאַנט, ווי געזונט ווי קיין וואָראַנטי ערייזינג פון לויף פון פאָרשטעלונג, לויף פון האַנדלינג אָדער נוצן אין האַנדל.
דאָקומענטן / רעסאָורסעס
![]() |
ינטעל באַקומען סטאַרטעד מיט Intel Trace Analyzer און קאַלעקטער [pdfבאַניצער גייד באַקומען סטאַרטעד מיט Intel Trace Analyzer און קאַלעקטער, באַקומען סטאַרטעד מיט Intel, Trace Analyzer און Collector, Collector |