рдорд▓реНрдЯреА-рдХреЛрд░ рдЗрдВрдЯреЗрд▓ рдХреЛрд░ 2 рдкреНрд░реЛрд╕реЗрд╕рд░ (рднрд╛рдЧ 4) рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЦреЛрдЬреЗрдВ рдФрд░ рд╣рд▓ рдХрд░реЗрдВ

рд▓реЗрдЦ рдХреА рдирд┐рд░рдВрддрд░рддрд╛: рднрд╛рдЧ 1 , рднрд╛рдЧ 2 , рднрд╛рдЧ 3





рд╕рдВрднрд╡рдд: рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╕рд░рдгреА рддрддреНрд╡реЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдереНрд░реЗрдб рддрддреНрд╡реЛрдВ рдХреЗ рдЕрдкрдиреЗ рд╕реЗрдЯ рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдЧрд╛ред рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:

int sum(int* data, int* sum, int size, int tid) { int i; for(i=0; i < size; i++) *sum += data[i]*data[i]; return *sum; }
      
      





рдпрджрд┐ рд╕реВрдЪрдХ рдХреЛ рдзрд╛рд░рд╛ рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рд▓ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рд╕рд░рдгреА рддрддреНрд╡ рд╡рд╛рд▓реЗ рдХреИрд╢ рд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдирд╛рдВрддрд░ рдкреНрд░рд╡рд╛рд╣ рдХреА рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рд╕рдВрдХрд▓рдХ рд░рдЬрд┐рд╕реНрдЯрд░ ("рдпреЛрдЧ" рдЪрд░ рдХреЗ рд▓рд┐рдП рдХреА рдЬрд░реВрд░рдд рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реБрдП) рдореЗрдВ рдХрдВрдкрд╛рдЗрд▓рд░ рдорд╛рдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рддрд░рд╣ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдмрдЪрддрд╛ рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрдВрдЯреЗрд▓ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд░рддрд╛ рд╣реИред



рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рднреА рдХрдВрдкрд╛рдЗрд▓рд░ рдЗрддрдиреЗ рд╕реНрдорд╛рд░реНрдЯ рдирд╣реАрдВ рд╣реИрдВред рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди рдЗрд╕ рддрд░рд╣ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

int sum(int* data, volatile int* sum, int size, int tid)





рддрдм рд╕рдВрдХрд▓рдХ рдХреЛ "рдореЗрдореЛрд░реА" рдХреЛ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдореЛрд░реА рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордирд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХреИрд╢ рд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рдбрд╝рд╛рдИ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реИред рдКрдкрд░ рдмрддрд╛рдИ рдЧрдИ рдШрдЯрдирд╛рдПрдВ рдирджреА рдореЗрдВ рдмрд╛рдврд╝ рд▓рд╛ рджреЗрдВрдЧреАред



рджреВрд╕рд░реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдЗрдП рдПрдХ рд╕рд░рдгреА рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рддреАрди-рдиреЗрд╕реНрдЯреЗрдб рдХреНрд░рдордмрджреНрдз рд▓реВрдк рд▓реЗрдВ рдЬреЛ рд╣рдорд╛рд░реА рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдЙрддреНрдХреГрд╖реНрдЯ рд╣реИред

 #define MAXTHR 4 #define ITERS 1000 #define SIZE 1000 int aa[MAXTHR][SIZE]; volatile int i[MAXTHR], j[MAXTHR], k[MAXTHR], n[MAXTHR], tmp[MAXTHR]; int sort(int *a, int size, int tid) //a = aa[tid][0] { n[tid] = 0; for (k[tid]=0; k[tid] < ITERS/2; k[tid]++){ for (i[tid] = 0; i[tid] < size-1; i[tid]++){ for (j[tid] = i[tid]+1; j[tid] < size; j[tid]++){ if (a[i[tid]] > a[j[tid]]){ tmp[tid] = a[i[tid]]; a[i[tid]] = a[j[tid]]; a[j[tid]] = tmp[tid]; n[tid]++; } } } for (i[tid] = 0; i[tid] < size-1; i[tid]++){ for (j[tid] = i[tid]+1; j[tid] < size; j[tid]++){ if (a[i[tid]] < a[j[tid]]){ tmp[tid] = a[i[tid]]; a[i[tid]] = a[j[tid]]; a[j[tid]] = tmp[tid]; n[tid]++; } } } } return n[tid]; }
      
      





рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕реВрдЪрдХрд╛рдВрдХ рд╕рд░рдгрд┐рдпрд╛рдБ i, j, k рдФрд░ tmp рд╕рд░рдгреА рдПрдХ рд╣реА рдХреИрд╢ рд▓рд╛рдЗрди рдореЗрдВ рд╣реЛрдиреЗ рдХреА рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдзрд╛рдЧреЗ рдкреНрд░рддреНрдпреЗрдХ рдЪрдХреНрд░ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░ рд▓рдбрд╝реЗрдВрдЧреЗред рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдореЗрдВ рд░рдЦрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрд╕реНрдерд┐рд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рднрд╛рд╖рд╛ рдорд╛рдирдХ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рддреА рд╣реИред рднрд╛рд╖рд╛ рдорд╛рдирдХ рдЖрдорддреМрд░ рдкрд░ рдЕрдиреБрдХреВрд▓рди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЙрдирдХреЗ рд▓рд┐рдП рдЕрд╕реНрдерд┐рд░рддрд╛ рдЬреИрд╕реА рдХреЛрдИ рдЪреАрдЬ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдВрдХрд▓рдХ рдХреЛ рдпрд╣ рд╕реЛрдЪрдирд╛ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рдХрд╛рд░реНрдп рдХрдИ рдереНрд░реЗрдб рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред



Intel 64 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдЗрдВрдЯреЗрд▓ рдХрдВрдкрд╛рдЗрд▓рд░ (10.0) O3 рдЕрдиреБрдХреВрд▓рди рдХреЗ рджреМрд░рд╛рди рдЭреВрдареА рдХреИрд╢ рд▓рд╛рдЗрди рд╕рд╛рдЭрд╛рдХрд░рдг рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореБрдХреНрдд рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдмрдирд╛ рджреЗрдЧрд╛ рдпрджрд┐ рдЙрдкрд░реЛрдХреНрдд рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдЕрд╕реНрдерд┐рд░ рдШреЛрд╖рдгрд╛ рд╣рдЯрд╛ рджреА рдЬрд╛рддреА рд╣реИред рд╕реНрдерд╛рдиреАрдп рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА, рдФрд░ рди рд╣реА рдЕрд╕реНрдерд╛рдпреА рдЪрд░ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЛ рднреА рдореЗрдореЛрд░реА рдореЗрдВ рдбрдВрдк рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдХреЗрд╡рд▓ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдореЗрдВ рдореМрдЬреВрдж рд╣реИред рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз рдЭреВрдареА рд▓рд╛рдЗрди рд╕рд╛рдЭрд╛рдХрд░рдг рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдЖрдорддреМрд░ рдкрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд┐рд░реНрднрд░ рд╣реЛрддреА рд╣реИред рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЕрд╕рдВрдЦреНрдп рдмрджрд▓рд╛рд╡ рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЗрдирд▓рд╛рдЗрди-рдлрд╝рдВрдХреНрд╢рдВрд╕ рдЬреИрд╕реЗ рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ, рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рддреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред



рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдордиреЗ VTune рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рд╣рдо рдШрдЯрдирд╛ рдХреА рдорд╛рддреНрд░рд╛ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред EXT_SNOOP.ALL_AGENTS_HITM рдХреА рд╕рдВрдЦреНрдпрд╛ BUS_HITM_DRV рдХреЗ рд▓рдЧрднрдЧ рдмрд░рд╛рдмрд░ рд╣реИред рдЖрдЗрдП рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рд╕реЗ рд▓реЙрдиреНрдЪ рддрдХ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред MEM_LOAD_RETIRED.L2_MISS, MEM_LOAD_RETIRED.L2_LINE_MISS рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИред MEM_LOAD_RETIRED.L2_LINE_MISS рдХреА рд╕рдВрдЦреНрдпрд╛, рдмрд╕ рдкрд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХреИрд╢ рд▓рд╛рдЗрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдмрд╣реБрдд рдХрдо рд╣реИ, рдЬреЛ рдХрд┐ BUS_TRANS_BURST.SELF рджреНрд╡рд╛рд░рд╛ рдЬрдЬ рд╣реИрдВред рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдпреЛрдЧрджрд╛рди BUS_TRANS_RFO.SELF рдИрд╡реЗрдВрдЯ рджреНрд╡рд╛рд░рд╛ рдорд╛рдкрд╛ рдЧрдпрд╛ рдЕрдирдиреНрдп рдЙрдкрдпреЛрдЧ рдЕрдиреБрд░реЛрдзреЛрдВ (RFO) рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо BUS_TRANS_BURST.SELF рджреНрд╡рд╛рд░рд╛ рдорд╛рдкреА рдЧрдИ рдмрд╕ рдпрд╛рддрд╛рдпрд╛рдд рдореЗрдВ RFO рдХреЗ рдпреЛрдЧрджрд╛рди рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддреЗ рд╣реИрдВред



рд╢реЗрд╖ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди BUS_TRANS_BRD.SELF рджреНрд╡рд╛рд░рд╛ рдорд╛рдкреА рдЧрдИ рд╕рд╛рдорд╛рдиреНрдп рд░реАрдбрд┐рдВрдЧ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред L2_LD.SELF рдИрд╡реЗрдВрдЯ рдХреИрд╢ рд▓рд╛рдЗрди рдХреА рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкреНрд░реАрдлрд╝реИрдЪ рдмреНрд▓реЙрдХреЛрдВ рдХрд╛ рдкреНрд░рднрд╛рд╡ рдмрд╣реБрдд рдордЬрдмреВрдд рд╣реИред



рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдХреИрд╢ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рд╣реИ, рдмреБрдирд┐рдпрд╛рджреА рдореВрд▓реНрдпреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рдЦрд╛рддреЗ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рдирд╛ рдмреБрджреНрдзрд┐рдорд╛рди рд╣реЛрдЧрд╛, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рдеред рдЭреВрдареА рд▓рд╛рдЗрди рд╕рд╛рдЭрд╛рдХрд░рдг рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдВрднрд╡рддрдГ VT_L рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╕рдордп MEM_LOAD_RETIRED.L2_MISS, рдЗрд╕ рдШрдЯрдирд╛ рдХреА рдЪреЛрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рд╕реНрдерд╛рди рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░, рд╕рдм рдХреБрдЫ рддреБрд░рдВрдд рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдЧрд░ рдЖрдк EXT_SNOOPS.ALL_AGENTS.HITM рдкрд░ рднреА рдзреНрдпрд╛рди рджреЗрддреЗ рд╣реИрдВред



рдПрдХреНрд╕реЗрд╕ рдмреНрд▓реЙрдХрд┐рдВрдЧ рд╕рдВрдШрд░реНрд╖реЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рднреА рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред L2_LOCK.SELF.E_STATE рдШрдЯрдирд╛ рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рдПрдХ рдореНрдпреВрдЯреЗрдХреНрд╕ рд▓реЙрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХреНрд╕реЗрд╕ рд▓реЙрдХ (xchg рдЗрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рдХреЗ рдЕрд▓рд╛рд╡рд╛) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рд▓реЙрдХ рдХреА рдЧрдИ рд╡рд╕реНрддреБ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ L2_LOCK.SELF.M_STATE рдШрдЯрдирд╛ рднреА рдШрдЯрд┐рдд рд╣реЛрдЧреАред IP рдкреНрд░реАрдлрд╝реИрдЪ рдмреНрд▓реЙрдХ рдХреЗ рдХрд╛рд░рдг, MEM_LOAD_RETIRE.L2_LINE_MISS рдИрд╡реЗрдВрдЯ рд╣рдорд╛рд░реА рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рдкреНрд░рднрд╛рд╡реА рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЪреЛрдЯрд┐рдпреЛрдВ MEM_LOAD_RETIRED.L2_MISS рдХреЗ рд╕рд╛рде L2_LD.LOCK.E_STATE рдЬрдм VTune рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдШрдЯрдирд╛ рдХреА рддрд╕реНрд╡реАрд░ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред EXT_SNOOP.HITM.ALL_AGENTS рдлрд┐рд░ рд╕реЗ рдЗрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдореМрдЬреВрдж рд╣реИред



рдЕрд╡рд░реБрджреНрдз рдХреИрд╢ рд▓рд╛рдЗрди рд╡рд┐рд╡рд╛рдж рдХреЛ рдЕрдХреНрд╕рд░ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдПрдкреАрдЖрдИ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдКрдкрд░ рдЪрд░реНрдЪрд╛ рдХрд┐рдП рдЧрдП рдПрдХрддреНрд░ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХрд╛ рдЖрджрд┐рдо рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕рдВрднрд╡рддрдГ рдпрд╣ рджрд┐рдЦрд╛рдПрдЧрд╛ рдХрд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдкреНрд░рддреАрдХреНрд╖рд╛ рд▓реВрдк рдореЗрдВ рд╕рдордп рдХрд╛ рдПрдХ рдордирдорд╛рдирд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЦрд░реНрдЪ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдпрд╣ рдЦреЛрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдкреАрдЖрдИ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдб рдмрджрд▓рдиреЗ рд╕реЗ рдЪрд░ рддрд╛рд▓реЗ рдХреЗ рдХрд╛рд░рдг рдирд┐рд╖реНрдкрд╛рджрди рдЕрдиреБрдХреНрд░рдо рдХрдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╡реАрдЯреАрдПрди рдПрдирд╛рд▓рд╛рдЗрдЬрд░ рдпрд╛ рдЗрдВрдЯреЗрд▓ рдереНрд░реЗрдб рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдореЗрдВ рдХреЙрд▓ рдЧреНрд░рд╛рдл рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрди рдЕрдбрд╝рдЪрдиреЛрдВ рдХрд╛ рд╕реНрдерд╛рди рдЬрд▓реНрджреА рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



рдЬрдмрдХрд┐ рдХреИрд╢ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рд╡рд┐рд╡рд╛рдж рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рдХреЗ рд╕рд╛рде рд╕рдорд╛рдирд╛рдВрддрд░рдХрд░рдг рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, MPI рдореЗрдВ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рджреБрд░реБрдкрдпреЛрдЧ рдХреЗ рдХрд╛рд░рдг рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА рдореЗрдВ рдЕрддреНрдпрдзрд┐рдХ рдЧрд┐рд░рд╛рд╡рдЯ рднреА рд╕рдВрднрд╡ рд╣реИред рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдореИрд╕реЗрдЬрд┐рдВрдЧ, MPI_Wait, рдФрд░ рд╡реИрд╢реНрд╡рд┐рдХ MPI рд╕рдВрдЪрд╛рд▓рди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП MPI_Allreduce) рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╣реИред рдЗрдВрдЯреЗрд▓ рдЯреНрд░реЗрд╕ рдПрдирд╛рд▓рд╛рдЗрдЬрд╝рд░ рдФрд░ рдХрд▓реЗрдХреНрдЯрд░ рдХреЛ рдЗрд╕реА рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрдВрдЯреЗрд▓ рдХреЛрд░ 2 рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдмрдбрд╝реЗ рдХреНрд▓рд╕реНрдЯрд░ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдПрдордкреАрдЖрдИ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред



рдирд┐рд╖реНрдХрд░реНрд╖



рдЗрдВрдЯреЗрд▓ рдХреЛрд░ 2 рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдХреА рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдХрд╛рдлреА рд╡рд┐рдХрд╕рд┐рдд рдкрджрд╛рдиреБрдХреНрд░рдо рд╣реИ, рдЬреЛ рдХрдо рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЧрддрд┐ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡реА рд╣реИред рдорд▓реНрдЯреА-рдХреЛрд░ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЦрд░рд╛рдм рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЗ рдХрдИ рдХрд╛рд░рдгреЛрдВ рдХреЛ рдЗрдВрдЯреЗрд▓ VTune рдкреНрд░рджрд░реНрд╢рди рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд▓реНрджреА рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╣рдЪрд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдереНрд░реЗрдб рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЗрдВрдЯреЗрд▓ рдереНрд░реЗрдб Profiler рд╣реИред MPI рдХреЗ рд▓рд┐рдП, рдЗрдВрдЯреЗрд▓ рдЯреНрд░реЗрд╕ рдПрдирд╛рд▓рд╛рдЗрдЬрд╝рд░ рдФрд░ рдХрд▓реЗрдХреНрдЯрд░ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред



All Articles