Intel┬о рдкреИрд░реЗрд▓рд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ XE 2013 рд╕рд░реНрд╡рд┐рд╕ рдкреИрдХ 1 - рдирдпрд╛ рдХреНрдпрд╛ рд╣реИ?



рдЗрдВрдЯреЗрд▓ рд╕рдорд╛рдирд╛рдВрддрд░ рд╕реНрдЯреВрдбрд┐рдпреЛ XE рдкреИрдХреЗрдЬ рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣реИрдмреЗ рдкрд░ рдЗрдВрдЯреЗрд▓ рдмреНрд▓реЙрдЧ рдкрд░ рдкреНрд░рдХрд╛рд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдПрдХ рдЕрдкрдбреЗрдЯ рд╕рд╛рдордиреЗ рдЖрдпрд╛ - рдЗрдВрдЯреЗрд▓ рд╕рдорд╛рдирд╛рдВрддрд░ рд╕реНрдЯреВрдбрд┐рдпреЛ XE 2013 рд╕рд░реНрд╡рд┐рд╕ рдкреИрдХ 1 (SP1) , рдЬрд┐рд╕рдореЗрдВ рдХрдИ рджрд┐рд▓рдЪрд╕реНрдк рдирд╡рд╛рдЪрд╛рд░ рд╣реИрдВред рд╕рд╣-рдкреНрд░реЛрд╕реЗрд╕рд░ рдФрд░ рдПрдХреАрдХреГрдд рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдУрдкрдирдПрдордкреА 4.0 рдорд╛рдирдХ (рдЖрдВрд╢рд┐рдХ) рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдЦреЛрдЬ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓реА рд╣реЛ рдЧрдИ рд╣реИ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреВрд░реА рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореЗрдореЛрд░реА рд▓реАрдХ рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рдЙрдиреНрд╣реЗрдВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рд╕реЗрд╡рд╛рдУрдВ рдФрд░ "рдЧрд┐рд░рдиреЗ" рд╡рд╛рд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдирдП рдХреЙрд▓ рдЯреНрд░реА рд╡реНрдпреВ, рдУрд╡рд░рд╣реЗрдб рдЕрдиреБрдорд╛рди рдФрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рдбрд┐рдЬрд╝рд╛рдЗрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдЕрдбрд╝рдЪрди рдЦреЛрдЬрдиреЗ рдореЗрдВ рдЖрд╕рд╛рдиреА рд╣реЛрдЧреАред

рдЗрдВрдЯреЗрд▓ рдХрдореНрдкреЛрдЬрд╝рд░ XE C / C ++ рдФрд░ рдлреЛрд░рдЯреНрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░реНрд╕, рдорд▓реНрдЯреА рдереНрд░реЗрдбреЗрдб, рдЧрдгрд┐рддреАрдп рдФрд░ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреА рд╣реИред рдЗрдВрдЯреЗрд▓ рдХрдореНрдкреЛрдЬрд╝рд░ XE 2013 SP1 рдореЗрдВ рдХрдИ рд╕реБрдзрд╛рд░ рджрд┐рдЦрд╛рдИ рджрд┐рдП рд╣реИрдВ, рдпрд╣рд╛рдВ рд╣рдо рд╡реЗрдХреНрдЯрд░рд╛рдЗрдЬрд╝реЗрд╢рди рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдФрд░ рд╕рд╣-рдкреНрд░реЛрд╕реЗрд╕рд░ рдФрд░ рдПрдХреНрд╕реЗрд▓реЗрд░реЗрдЯрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдУрдкрдирдПрдордкреА * 4.0 рдорд╛рдирдХ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдПред

OpenMP * SIMD рдбрд┐рдЬрд╝рд╛рдЗрди

SIMD (рд╕рд┐рдВрдЧрд▓ рдЗрдВрд╕реНрдЯреНрд░рдХреНрд╢рдВрд╕ рдорд▓реНрдЯреАрдкрд▓ рдбреЗрдЯрд╛) рдирд┐рд░реНрджреЗрд╢реЛрдВ рдпрд╛ рд╡реЗрдХреНрдЯрд░рд╛рдЗрдЬрд╝реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдкрд░ рд╕рдорд╛рдирддрд╛ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рдмрд╕реЗ рдкреНрд░рднрд╛рд╡реА рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЗрдВрдЯреЗрд▓ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛрдб рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╡реЗрдХреНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рд╕рдВрднрд╡ рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдирд┐рд░реНрднрд░рддрд╛ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдкрд░ рд╕рдВрджреЗрд╣ рдХрд░рддрд╛ рд╣реИред OpenMP 4.0 рдорд╛рдирдХ рдЖрдкрдХреЛ рд╕рдВрдХрд▓рдХ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрддрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдирд┐рд░реНрднрд░рддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ "#pragma omp simd" рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реЗрдХреНрдЯрд░рдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдлреЛрд░рдЯреНрд░рд╛рди рдХреЗ рд▓рд┐рдП рднреА рдПрдХ рдПрдирд╛рд▓реЙрдЧ рд╣реИ)ред рдпрджрд┐ рд▓реВрдк рдХреЗ рд╕рд╛рдордиреЗ "рдУрдПрдордкреА рд╕рд┐рдордб" рд╣реИ, рддреЛ рд╕рдВрдХрд▓рдХ рдХреЛ рд╡реЗрдХреНрдЯрд░ рдирд┐рд░реНрджреЗрд╢ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдПрдХ рд╕рд╛рде рдХрдИ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдХрдореА" рдХреЗ рд▓рд┐рдП:

double pi() { double pi = 0.0; double t; #pragma omp simd private(t) reduction(+:pi) for (i=0; i<count; i++) { t = (double)((i+0.5)/count); pi += 4.0/(1.0+t*t); } pi /= count return pi; } 

рдЖрдк "рддрддреНрд╡-рд╡рд╛рд░" SIMD рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдбреЗрд╡рд▓рдкрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЗрдЯрд╛ рддрддреНрд╡реЛрдВ рдкрд░ рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рдЗрд╕реА рд╕рдордп, рд╕рдВрдХрд▓рдХ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЛ SIMD рдЪрдХреНрд░ рдореЗрдВ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ SIMD рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, omp рдбрд┐рдХреНрд▓реЗрдпрд░ рдХрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 #pragma omp declare simd notinbranch float min(float a, float b) { return a < b ? a : b; } #pragma omp declare simd notinbrach float distsq(float x, float y) { return (x - y) * (x - y); } 

рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЗрдВ рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рд╕рдорд╛рдирддрд╛ (SIMD) рдХреЛ рдПрдХ рд╣реА рдХреЛрд░ рдХреЗ рднреАрддрд░ рдФрд░ рдереНрд░реЗрдб рд╕рдорд╛рдирд╛рдВрддрд░рддрд╛ рдпрд╛ рдПрдХрд╛рдзрд┐рдХ рдХреЛрд░ рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реВрдк рдХреЛ рдкрд╣рд▓реЗ рд╡реЗрдХреНрдЯрд░рдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рд╢реЗрд╖ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╡рд┐рднрд┐рдиреНрди рдереНрд░реЗрдбреНрд╕ рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:

 #pragma omp parallel for simd for (i=0; i<N; i++) d[i] = min(distsq(a[i], b[i]), c[i]); 

рд╕рд╣-рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

Accelerators рдФрд░ рд╕рд╣-рдкреНрд░реЛрд╕реЗрд╕рд░ рдЬреИрд╕реЗ Intel Xeon Phi рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред OpenMP 4.0 рдореЗрдВ, рдЖрдк "omp рд▓рдХреНрд╖реНрдп" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд╣-рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдЧрдгрдирд╛ (рдЬреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ) рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдбрд┐рдЬрд╝рд╛рдЗрди рдиреЗ рдЗрд╕рдХреЗ рдмрд╛рдж рдПрдХ рддреНрд╡рд░рдХ рдХреЛрдб рдмреНрд▓реЙрдХ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ред рдпрджрд┐ рдпрд╣ рдирд╣реАрдВ рд╣реИ рдпрд╛ рдпрд╣ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреЛрдб рд╕рд╛рдорд╛рдиреНрдп рдореЛрдб рдореЗрдВ рд╕реАрдкреАрдпреВ рдкрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред "рдореИрдк" рдбрд┐рдЬрд╝рд╛рдЗрди рдЖрдкрдХреЛ рд╕рд╣-рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рднреЗрдЬреЗ рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

 #pragma omp target map(to(b:count)) map(to(c,d)) map(from(a:count)) { #pragma omp parallel for for (i=0; i<count; i++) a[i] = b[i] * c + d; } 

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

рдЙрдиреНрдирдд рддреНрд╡рд░рдг рдФрд░ рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА рд╡рд┐рд╢реНрд▓реЗрд╖рдг

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА рдХрд╛ рдЖрдХрд▓рди 2 рд╕реЗ 32 рдХреЛрд░ рддрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рд╕реАрдкреАрдпреВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдерд╛, рд▓реЗрдХрд┐рди рдЗрдВрдЯреЗрд▓ рдПрдХреНрд╕реЛрди рдлреА рд╕рд╣-рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдЬрд┐рд╕рдореЗрдВ 240 рд╕реЗ рдЕрдзрд┐рдХ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдереНрд░реЗрдб рд╣реИрдВред рд╕рд▓рд╛рд╣рдХрд╛рд░ XE рдХрд╛ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЕрд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХреЛрд░ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рдорд╛рдкрдиреАрдпрддрд╛ рдХрд╛ рдЖрдХрд▓рди рдХрд░рддрд╛ рд╣реИред рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╕реНрд╡реАрд░ 512 рдХреЛрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддреА рд╣реИред рдЕрдм рдЖрдк рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдереНрд░реЗрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЗрдВрдЯреЗрд▓ Xeon Phi рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд┐рддрдирд╛ рддреИрдпрд╛рд░ рд╣реИ (рдЖрдкрдХреЛ рдХреЛрдб рдХреА "рд╡реЗрдХреНрдЯрд░рд┐рдЬрд╝реЗрдмрд┐рд▓рд┐рдЯреА", рдореЗрдореЛрд░реА рд▓рд┐рдорд┐рдЯреЗрд╢рдВрд╕, рдЖрджрд┐ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рд╕рд▓рд╛рд╣рдХрд╛рд░ рдПрдХреНрд╕рдИ рдЕрднреА рддрдХ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)ред



рдкреНрд░рдпреЛрдЧ рдХреА рдкреНрд░рддрд┐ (рдкреНрд░рдпреЛрдЧ рд╕реНрдиреИрдкрд╢реЙрдЯ)

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

рдЗрдВрдЯреЗрд▓ рдПрдбрд╡рд╛рдЗрдЬрд░ XE 2013 рдЕрдкрдбреЗрдЯ 4, рд╕рдорд╛рдирд╛рдВрддрд░ рд╕реНрдЯреВрдбрд┐рдпреЛ XE 2013 SP1 рдХреЗ рд╕рд╛рде рд╢рд┐рдк рдХрд┐рдпрд╛ рдЧрдпрд╛, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рдпреЛрдЧ рдХреА рдПрдХ рдкреНрд░рддрд┐ (рд╕реНрдиреИрдкрд╢реЙрдЯ) рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рдпрд╣ рдкреНрд░рддрд┐ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдкрдХреЛ рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рд░реЗрдЯрд┐рдВрдЧ рдХреНрдпрд╛ рдереА рдФрд░ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдЙрдирдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ:




рдХреЛрдб рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд░реНрдЧреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг

рд╕рд▓рд╛рд╣рдХрд╛рд░ XE рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдорд╣рддреНрд╡рдкреВрд░реНрдг рдУрд╡рд░рд╣реЗрдб рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рдорд╛рдирд╛рдВрддрд░ рдирд┐рд╖реНрдкрд╛рджрди "рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ" рдХрд╛ рдЬрдЯрд┐рд▓ рдореЙрдбрд▓рд┐рдВрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдордп рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЕрдм рдХреЛрдб рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рддрд░рд╣ рдХреЗ "рд╕рдВрдХреАрд░реНрдгрддрд╛" рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдЕрдиреНрдп рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рд╕рдЯреАрдХрддрд╛ рдХреЛ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╕рдм рдирдП рдкреНрд░рдХрд╛рд░ рдХреЗ "рдПрдиреЛрдЯреЗрд╢рди" рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: ANNOTATE_DISABLE_COLLECTION_PUSH рдФрд░ ANNOTATE_DISABLE_COLLECTION_POP (рдореИрдиреНрдпреБрдЕрд▓ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдмрдЯрди рд╣реИрдВ:

 int main(int argc, char* argv[]) { ANNOTATE_DISABLE_COLLECTION_PUSH // Do initialization work here ANNOTATE_DISABLE_COLLECTION_POP // Do interesting work here ANNOTATE_DISABLE_COLLECTION_PUSH // Do finalization work here ANNOTATE_DISABLE_COLLECTION_POP return 0; } 

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

рдЖрдпрд╛рдд Valgrind * рдФрд░ рддрд░реНрдХрд╕рдВрдЧрдд рд╢реБрджреНрдз * рджрдорди рдирд┐рдпрдо

рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдПрдХреНрд╕рдИ рдореЗрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдпрд╛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рдореВрд╣ рдХреЛ рджрдмрд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ рдЬреЛ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рд░реБрдЪрд┐ рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдпрд╛ рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╕рдорд╕реНрдпрд╛рдУрдВред рдЕрдиреНрдп рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореМрдЬреВрдж рд╣реИред рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рджрдорди рдирд┐рдпрдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ рдХреЛрдб, рдореЙрдбреНрдпреВрд▓, рд╕рдорд╕реНрдпрд╛ рдХреЗ рдкреНрд░рдХрд╛рд░ рдФрд░ рдЕрдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ рдЬрдЧрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ XE рдХрд╛ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг - рдЕрдкрдбреЗрдЯ 7 рдореЗрдВ рдЕрдиреНрдп рдЙрдкрдХрд░рдгреЛрдВ - рд╡реЗрд▓рдЧреНрд░рд┐рдВрдб рдФрд░ рддрд░реНрдХрд╕рдВрдЧрдд рд╢реБрджреНрдз рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рджрдорди рдирд┐рдпрдореЛрдВ рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ XE рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЕрдиреНрдп рдЙрдкрдХрд░рдгреЛрдВ рд╕реЗ рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ XE рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд░рдордг рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИ, рдПрдХ рджрдорди рдирд┐рдпрдо рдЖрдзрд╛рд░ рдХреЗ рдЧрдарди рдореЗрдВ рд╕рдордп рдФрд░ рдкрд┐рдЫрд▓реЗ рдирд┐рд╡реЗрд╢ рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ XE рджрдорди рдирд┐рдпрдо рдЕрдм рдкрд╛рда рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЖрд╡реЗрджрди рд╕рдорд╛рдкреНрддрд┐ рд╕реЗ рдкрд╣рд▓реЗ рд╕реНрдореГрддрд┐ рд▓реАрдХ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬреЗрдВ

рдореЗрдореЛрд░реА рд▓реАрдХ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ XE рдореЗрдВ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдореЗрдореЛрд░реА рдкреНрд░реЙрдмреНрд▓рдо рдПрдирд╛рд▓рд┐рд╕рд┐рд╕ рдлреАрдЪрд░реНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ, рдПрдХ рд░рд┐рд╕рд╛рд╡ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд╢реБрд░реВ рд╕реЗ рдЕрдВрдд рддрдХ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдерд╛, рддрд╛рдХрд┐ рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдПрдХреНрд╕рдИ рдореЗрдореЛрд░реА рдХреЗ рд╕рднреА рдЖрд╡рдВрдЯрди рдФрд░ рдлреНрд░реАрдЬрд┐рдВрдЧ рдХреЛ рдЯреНрд░реИрдХ рдХрд░ рд╕рдХреЗред рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрд╡реЗрджрди рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓рддрд╛ рд╣реИ, рдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ "рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП", рдЬреИрд╕реЗ рдбреЗрдореЙрди рдпрд╛ рд╕реЗрд╡рд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд▓реАрдХ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ XE рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛрдб рдХреЗ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореЗрдореЛрд░реА рд▓реАрдХ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдПред рдЖрдк рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдРрд╕реЗ рдХреНрд╖реЗрддреНрд░ рдХреЛ рд╡рд┐рд╢реЗрд╖ рдПрдкреАрдЖрдИ рддрдХ рд╕реАрдорд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдЧреНрд░рд╛рдлрд╝рд┐рдХрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдФрд░ рдХрдорд╛рдВрдбреНрд╕ рдореЗрдВ рдмрдЯрди рдХреЗ рд╕рд╛рде рд▓реАрдХ рджреНрд╡рд╛рд░рд╛ рдкрд╛рдИ рдЧрдИ рд░рд┐рдкреЛрд░реНрдЯ рдкрд░ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╛рдиреА рдЖрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд┐рдП рдмрд┐рдирд╛, рдХреЛрдб рдХреЗ рдПрдХ рдЦрдВрдб рдореЗрдВ рд▓реАрдХ рдХреА рдЦреЛрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВред

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

рд╡рд┐рд╕реНрддреГрдд рдУрд╡рд░рд╣реЗрдб рд░рд┐рдкреЛрд░реНрдЯ

рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ, CPU рдХреЗ рд╕рдордп рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдереНрд░реЗрдбреНрд╕ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ, рдЙрдирдХреЗ рдмреАрдЪ рдХрд╛рдо рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдЖрджрд┐ рдкрд░ рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╕рдордп, рдореВрд▓ рдЧрдгрдирд╛рдУрдВ рдкрд░ рдЦрд░реНрдЪ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ рдУрд╡рд░рд╣реЗрдб рдпрд╛ "рдУрд╡рд░рд╣реЗрдб" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдЗрди рдУрд╡рд░рд╣реЗрдбреНрд╕ рдХреЛ рдХрдо рд╕реЗ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред VTune рдПрдореНрдкрд▓реАрдлрд╛рдпрд░ XE рдЕрдм рдУрд╡рд░рд╣реЗрдб рдФрд░ рд╕рдХреНрд░рд┐рдп рдкреНрд░рддреАрдХреНрд╖рд╛ (рд╕реНрдкрд┐рди рдкреНрд░рддреАрдХреНрд╖рд╛) рдкрд░ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдлрд╝рдВрдХреНрд╢рди, рдореЙрдбреНрдпреВрд▓ рдпрд╛ рдЗрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рдореЗрдВ рдУрд╡рд░рд╣реЗрдб рдкрд░ рдХрд┐рддрдирд╛ рд╕реАрдкреАрдпреВ рд╕рдордп рдЦрд░реНрдЪ рд╣реЛрддрд╛ рд╣реИред рдЯреВрд▓ рдУрдкрдирдПрдордкреА, рдЗрдВрдЯреЗрд▓ рдереНрд░реЗрдбрд┐рдВрдЧ рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдмреНрд▓реЙрдХреНрд╕ рдпрд╛ рдЗрдВрдЯреЗрд▓ рд╕рд┐рд▓реНрдХ рдкреНрд▓рд╕ рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдУрд╡рд░рд╣реЗрдб рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕рдордп рдорд╛рди рдФрд░ рд╕рдордп рд░реЗрдЦрд╛ рдкрд░ рдЪрд┐рддреНрд░рдордп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:



OpenMP * рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдореЗрдВ рд╕реБрдзрд╛рд░

рдирдП рд╡реАрдЯреАрдПрди рдПрдореНрдкрд▓реАрдлрд╛рдпрд░ рдПрдХреНрд╕рдИ рдиреЗ рдУрдкрдирдПрдордкреА рдХреНрд╖реЗрддреНрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдмрдврд╝рд╛рдпрд╛ рд╣реИред рдмреЙрдЯрдо-рдЕрдк рдкреИрдирд▓ рдореЗрдВ "рдлрд╝реНрд░реЗрдо рдбреЛрдореЗрди" рджреНрд╡рд╛рд░рд╛ рд╕рдореВрд╣реАрдХрд░рдг OpenMP рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдлреНрд░реЗрдо рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИ - рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╕реНрд╡реАрд░ рджреЗрдЦреЗрдВред рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдкреНрд░рджрд░реНрд╢рди рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЛ рдПрдХ рдЕрд▓рдЧ рд╕рдорд╛рдирд╛рдВрддрд░ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕рдВрдХреАрд░реНрдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╣рд╛рдБ рдХрд┐рддрдирд╛ рд╕рдордп рдмрд┐рддрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЛрдб рд╕рдВрддреБрд▓рди рдХреНрдпрд╛ рдерд╛, рдЖрджрд┐ред рд▓рд╛рдЗрди "[рдХреЛрдИ рдлреНрд░реЗрдо рдбреЛрдореЗрди рдирд╣реАрдВ - рдХрд┐рд╕реА рднреА рдлреНрд░реЗрдо рдХреЗ рдмрд╛рд╣рд░]" рдЖрдкрдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдЕрдиреБрдХреНрд░рдорд┐рдХ рднрд╛рдЧ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдЖрдк рдХреЛрдб рдХреЗ "рд╕рдорд╛рдирд╛рдВрддрд░рд╡рд╛рдж" рдХреА рдбрд┐рдЧреНрд░реА рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░ рд╕рдХреЗрдВ ( рдЕрдорд▓ рдХрд╛ рдирд┐рдпрдо рдпрд╛рдж рд░рдЦреЗрдВ )ред



OpenMP рд╕реЗ рдЬреБрдбрд╝реЗ рдУрд╡рд░рд╣реЗрдб рдФрд░ рд▓реЗрдЯреЗрдВрд╕реА рди рдХреЗрд╡рд▓ Intel OpenMP рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИрдВ, рдмрд▓реНрдХрд┐ GCC * рдФрд░ Microsoft OpenMP * рдХреЗ рд▓рд┐рдП рднреА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИрдВред рдКрдкрд░ рдХреА рддрд╕реНрд╡реАрд░ рдореЗрдВ (рдЙрдиреНрдирдд рд╣реЙрдЯрд╕реНрдкреЙрдЯ рд╡рд┐рд╢реНрд▓реЗрд╖рдг), "[рдУрдкрдирдПрдордкреА рдХрд╛рд░реНрдпрдХрд░реНрддрд╛]" рдФрд░ "[рдУрдкрдирдПрдордкреА рдХреЗ рд▓рд┐рдП]" рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдУрдкрдирдПрдордкреА * рдкреБрд╕реНрддрдХрд╛рд▓рдп - рдореЙрдбреНрдпреВрд▓ vcomp100.dll рдХреЛ рджреЗрдЦреЗрдВред

рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рд╕реНрд░реЛрдд рдХреЛрдб рдФрд░ рдХреЛрдбрд╛рдВрддрд░рдХ рджреЗрдЦреЗрдВ

рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдЖрдк SSH рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рджреВрд░рд╕реНрде рд▓рд┐рдирдХреНрд╕ рд╕рд░реНрд╡рд░ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЕрдм рдЖрдк рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рд╕реАрдзреЗ рд╡реАрдЯреАрдПрди рдПрдореНрдкрд▓реАрдлрд╛рдпрд░ рдПрдХреНрд╕рдИ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдореЗрдВ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рджреВрд░рд╕реНрде рдорд╢реАрди рд╕реЗ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдХреЙрдкреА рдХрд░рдиреЗ рдпрд╛ рд╡реАрдПрдирд╕реА рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ - рдЖрдк рдЬрд▓реНрджреА рд╕реЗ рдЙрд╕реА рд╢реЗрд▓ рд╕реЗ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд╕реЗ рдЖрдкрдиреЗ рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдерд╛:

 # amplxe-cl -report hotspots -source-object function=grid_intersect -r r000hs/ Source Line Source CPU Time:Self ----------- ------------------------------------------------------------ ------------- 460 return 1; 461 } 462 463 464 /* the real thing */ 465 static void grid_intersect(grid * g, ray * ry) 0.036 466 { 467 468 469 flt tnear, tfar, offset; 470 vector curpos, tmax, tdelta, pdeltaX, pdeltaY, pdeltaZ, nXp, nYp, nZp; 471 gridindex curvox, step, out; 472 int voxindex; 473 objectlist * cur; 474 475 if (ry->flags & RT_RAY_FINISHED) 476 return; 477 478 if (!grid_bounds_intersect(g, ry, &tnear, &tfar)) 479 return; 480 481 if (ry->maxdist < tnear) 0.020 

рдХреЙрд▓рд░ / рдХреИрд▓реА рдХреЙрд▓ рдЯреНрд░реА рд╡рд┐рд╢реНрд▓реЗрд╖рдг

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



GPU рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ

VTune рдПрдореНрдкрд▓реАрдлрд╛рдпрд░ XE рдЕрдм рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХреЛрдб рд╣реИ рдЬреЛ рдЗрдВрдЯреЗрд▓ рдкреНрд░реЛрд╕реЗрд╕рд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкрд░ рдЪрд▓рддрд╛ рд╣реИред рдЖрдк GPU рдХреА рд╕рдВрдкреВрд░реНрдг рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рдЯреНрд░реИрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡реАрдбрд┐рдпреЛ рдХреЛ рдбреАрдХреЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рд╕реАрдкреАрдпреВ рдереНрд░реЗрдбреНрд╕ рдЬреАрдкреАрдпреВ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рд╕рднреА GPU рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ OpenCL * рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ GPU рдкрд░ рдЪрд▓ рд░рд╣реЗ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рд╡реАрдЯреАрдПрди рдПрдореНрдкрд▓реАрдлрд╛рдпрд░ рдПрдХреНрд╕рдИ рдУрдкрдирд╕реАрдПрд▓ рдХрд░реНрдиреЗрд▓ (рдпрд╛ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХрд╛рд░реНрдп) рдХреЛ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИ, рдЖрдк рдХрд╛рдо рдХреЗ рдЖрдХрд╛рд░ рдФрд░ рдорд╛рдЗрдХреНрд░реЛрдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрд▓ 3 рдХреИрд╢ рдорд┐рд╕ред рдУрдкрдирд╕реАрдПрд▓ рд╕рдордпрд░реЗрдЦрд╛ рдкрд░, рдЧреБрдард▓реА рдХреЛ рд╕реАрдкреАрдпреВ рдереНрд░реЗрдбреНрд╕ рдкрд░ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдерд╛ред рдЖрдк рд╕рдордп рдХреЗ рд╕рд╛рде GPU рдирд┐рд╖реНрдкрд╛рджрди рдЗрдХрд╛рдЗрдпреЛрдВ (GPUs) рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рд╕рдХреНрд░рд┐рдп, рдирд┐рд╖реНрдХреНрд░рд┐рдп рдпрд╛ рд░реБрдХреА рд╣реБрдИред GPU рдХреЗ рд▓реЛрдб рд╣реЛрдиреЗ рдкрд░ рдбреЗрдЯрд╛ рд╣реЛрдиреЗ рдкрд░, рдЖрдк рдпрд╣ рдЖрдХрд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рд╕реАрдорд┐рдд рд╣реИ рдпрд╛ рдирд╣реАрдВ: CPU рдпрд╛ GPU, рдЬреЛ OpenCL рдХрд░реНрдиреЗрд▓ рдЕрдзрд┐рдХ рд╕рдВрд╕рд╛рдзрди рдЦрд░реНрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ GPU рдХреЛ рдЕрдзрд┐рдХ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдЕрд╡рд╕рд░ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рддрджрдиреБрд╕рд╛рд░, CPU рдХреЛ рдЕрдирд▓реЛрдб рдХрд░рдирд╛ред



4-рдЬрдирд░реЗрд╢рди рдЗрдВрдЯреЗрд▓ рдХреЛрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рдЯреЙрдк-рдбрд╛рдЙрди рдкреНрд░рджрд░реНрд╢рди рд╡рд┐рд╢реНрд▓реЗрд╖рдг

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



рд╕рд╛рд░рд╛рдВрд╢
рдЗрдВрдЯреЗрд▓ рдкреИрд░реЗрд▓рд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ XE 2013 SP1 рд╕рд╣-рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд▓рд┐рдП рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдиреЗ рдХреЗ рдирдП рдЕрд╡рд╕рд░ рджреЗрддрд╛ рд╣реИ, рд╕рдорд╛рдирд╛рдВрддрд░ рдореЙрдбрд▓ (рдЬреИрд╕реЗ рдУрдкрдирдПрдордкреА) рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирдП рдорд╛рдЗрдХреНрд░реЛрдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рдЬрдЯрд┐рд▓ рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдвреВрдВрдврдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдареАрдХ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЙрддреНрдХреГрд╖реНрдЯ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЙрддреНрдкрд╛рджреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрддрд╛ рд╣реИред рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ , рджреЗрдЦреЗрдВ рдХрд┐ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЖрдкрдХреЗ рд╡рд░реНрддрдорд╛рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдХреИрд╕реЗ рдмреЗрд╣рддрд░ рдмрдирд╛ рд╕рдХрддреА рд╣реИрдВред

Source: https://habr.com/ru/post/In194912/


All Articles