рд╕рдорд╛рдВрддрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдорд╛рдирдХ OpenMP 6.0 рдкреНрд░рдХрд╛рд╢рд┐рдд

рддреАрди рд╡рд░реНрд╖рд╛рдВрдЪреНрдпрд╛ рд╡рд┐рдХрд╛рд╕рд╛рдирдВрддрд░, OpenMP 6.0 (рдУрдкрди рдорд▓реНрдЯреА-рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ) рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдЪрд╛ рдПрдХ рд╕рдВрдЪ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдгреНрдпрд╛рдд рдЖрд▓рд╛ рдЖрд╣реЗ, рдЬреНрдпрд╛рдд API рдЖрдгрд┐ C, C++ рдЖрдгрд┐ Fortran рднрд╛рд╖рд╛рдВрд╕рд╛рдареА рдорд▓реНрдЯреА-рдХреЛрд░ рдЖрдгрд┐ рд╣рд╛рдпрдмреНрд░рд┐рдб (CPU+GPU) рд╕рд╛рдареА рд╕рдорд╛рдВрддрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкрджреНрдзрддреА рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдкрджреНрдзрддреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд. рд╕рд╛рдорд╛рдпрд┐рдХ рдореЗрдорд░реА рдЖрдгрд┐ рдмреНрд▓реЙрдХреНрд╕ рд╡реЗрдХреНрдЯрд░рд╛рдпрдЭреЗрд╢рди (SIMD) рд╕рд╣ /DSP) рдкреНрд░рдгрд╛рд▓реА. рдирд┐рд╡рдбрд▓реЗрд▓реНрдпрд╛ OpenMP 6.0 рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрд╕рд╛рдареА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдорд░реНрдерди LLVM/Clang 20 рдЖрдгрд┐ GCC 15 рдкреНрд░рдХрд╛рд╢рдирд╛рдВрдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рдгреЗ рдЕрдкреЗрдХреНрд╖рд┐рдд рдЖрд╣реЗ.

OpenMP 6.0 рдордзреАрд▓ рдкреНрд░рдореБрдЦ рдмрджрд▓:

  • рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛рд░реНрдпрд╛рдВрдЪреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рд░рд▓реАрдХреГрдд рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ, рдкреНрд░реЛрдЧреНрд░рд╛рдордЪреЗ рд╕реНрд╡рддрдВрддреНрд░ рднрд╛рдЧ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛рдд рдЬреЗ рдЗрддрд░ рднрд╛рдЧрд╛рдВрдЪреНрдпрд╛ рд╕рдорд╛рдВрддрд░рдкрдгреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд.
    • рд╕рдорд╛рдВрддрд░ рдкреНрд░рджреЗрд╢ (рд╕рдорд╛рдВрддрд░ рдкреНрд░рджреЗрд╢, рдЕрдиреЗрдХ рдереНрд░реЗрдбреНрд╕рдордзреНрдпреЗ рдЕрдВрдорд▓рд╛рдд рдЖрдгрд▓реЗрд▓рд╛ рдХреЛрдбрдЪрд╛ рдмреНрд▓реЙрдХ) рдереНрд░реЗрдбреНрд╕рдЪреНрдпрд╛ (рдЯреАрдо) рдЧрдЯрд╛рдВрд╢реА рдЬреЛрдбрд▓реЗрд▓реЗ рдирд╕рд▓реЗрд▓реНрдпрд╛ рдлреНрд░реА-рдПрдЬрдВрдЯ рдереНрд░реЗрдбреНрд╕рдордзреНрдпреЗ рдХрд╛рд░реНрдпреЗ рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд▓реА рдЖрд╣реЗ.
    • рдЯрд╛рд╕реНрдХрдЧреНрд░рд╛рдл рд╕реЗрд╡реНрд╣ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдкреЛрд░реНрдЯ рджрд┐рд▓рд╛ рдЬрд╛рддреЛ, рдЬреЛ рдЯрд╛рд╕реНрдХ рдЖрдгрд┐ рдЯрд╛рд╕реНрдХ рдХреЛрдгрддреНрдпрд╛ рдХреНрд░рдорд╛рдиреЗ рдЕрдВрдорд▓рд╛рдд рдЖрдгрд▓рд╛ рдЬрд╛рддреЛ рдпрд╛рдордзреАрд▓ рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЛ, рддреНрдпрд╛рдирдВрддрд░рдЪреНрдпрд╛ рд░рд┐рдкреНрд▓реЗрдЪреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╕реБрдзрд╛рд░рдгреНрдпрд╛рд╕рд╛рдареА.
    • рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рд╕реБрд▓рдн рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдмрд╛рд▓ рдХрд╛рд░реНрдпрд╛рдВрдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╡рд░ рдЖрдкреЛрдЖрдк рдирд┐рдпрдВрддреНрд░рдг рдареЗрд╡рдгреНрдпрд╛рд╕рд╛рдареА рдкрд╛рд░рджрд░реНрд╢рдХ рдХрд╛рд░реНрдпрд╛рдВрд╕рд╛рдареА рдПрдХ рдпрдВрддреНрд░рдгрд╛ рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реА рдЖрд╣реЗ.
  • рд╕рдорд╛рдВрддрд░ рдХрд╛рд░реНрдпреЗ (CPU, GPU, DSP, рдЗ.) рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд▒реНрдпрд╛ рд╕рдВрдЧрдгрдХреАрдп рдЙрдкрдХрд░рдгрд╛рдВрд╕рд╛рдареА рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕рдорд░реНрдерди.
    • "рд╡рд░реНрдХрдбрд┐рд╕реНрдЯреНрд░рд┐рдмреНрдпреБрдЯ" рдирд┐рд░реНрджреЗрд╢рд╛рд▓рд╛ рдХрд╛рдорд╛рдЪреНрдпрд╛ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдпреБрдирд┐рдЯреНрд╕рдордзреНрдпреЗ ре▓рд░реЗ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрдгреНрдпрд╛рд╕рд╛рдареА рдирд╡реАрди ре▓рд░реЗ рд╕рд┐рдВрдЯреЕрдХреНрд╕ рдЬреЛрдбрд▓реЗ.
    • рдореЗрдорд░реА рд╡рд╛рдЯрдк рдирд┐рдпрдВрддреНрд░рдгреЗ рд╕реБрдзрд╛рд░рд┐рдд рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗрдд рдЬреНрдпрд╛рдореБрд│реЗ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ рд╕реЛрдкреЗ рд╣реЛрддреЗ рдЬреНрдпрд╛рд╕рд╛рдареА рдореЗрдорд░реА рдбрд╛рдпрдиреЕрдорд┐рдХ рдкрджреНрдзрддреАрдиреЗ рд╡рд╛рдЯрдк рдХреЗрд▓реА рдЬрд╛рддреЗ.
    • рдбрд┐рдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕реЗрд╕рдордзреНрдпреЗ рдбреЗрдЯрд╛ рдХрд╕рд╛ рд╡рд┐рддрд░реАрдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рд╣реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдгрд╛рд▒реНрдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдВрд╕рд╛рдареА рд╕рдкреЛрд░реНрдЯ рд╡рд╛рдврд╡рд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ.
    • рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрдЧрдгрдХреАрдп рдЙрдкрдХрд░рдгрд╛рдВрд╡рд░ (GPUs) рдЕрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдбреЗрдЯрд╛ рд╣рд╕реНрддрд╛рдВрддрд░рдгрд╛рд╕рд╛рдареА рд╕рд░рд▓реАрдХреГрдд рд▓реЗрдЦрди рдХреЛрдб.
    • рд╕реБрдзрд╛рд░рд┐рдд рдореЗрдорд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЖрдгрд┐ рд╕рдВрдЧрдгрдХреАрдп рдЙрдкрдХрд░рдгрд╛рдВрд╕рд╛рдареА рддреНрдпрд╛рдЪреЗ рдмрдВрдзрди.
    • рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрдЧрдгрдХреАрдп рдЙрдкрдХрд░рдгрд╛рд╡рд░ рдЪрд╛рд▓рдгрд╛рд▒реНрдпрд╛ рдереНрд░реЗрдбреНрд╕рдЪреНрдпрд╛ рдЧрдЯрд╛рд▓рд╛ рдореЗрдорд░реА рдирд┐рдпреБрдХреНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА "рдЧреНрд░реБрдкрдкреНрд░рд╛рдЗрд╡реЗрдЯ" рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд▓реЗ.
  • рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рд▓реВрдк рдЯреНрд░рд╛рдиреНрд╕рдлреЙрд░реНрдореЗрд╢рдирдЪреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕реЛрдкреЗ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ, рдЬрд╕реЗ рдХреА рдПрдХрд╛рдзрд┐рдХ рд▓реВрдк рдПрдХрддреНрд░ рдХрд░рдгреЗ, рдиреЗрд╕реНрдЯреЗрдб рд▓реВрдкрдЪрд╛ рдХреНрд░рдо рдмрджрд▓рдгреЗ рдЖрдгрд┐ рд▓реВрдк рдЙрд▓рдЯ рдХрд░рдгреЗ.
  • рдорд╛рдЧреАрд▓ рдореВрд▓реНрдпрд╛рдВрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд╛рдзреНрдпрд╛ рдЕрдВрдХрдЧрдгрд┐рдд рдЧрдгрдирд╛ рдЖрдгрд┐ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдСрдкрд░реЗрд╢рдиреНрд╕рдЪреНрдпрд╛ рд▓реВрдкрдордзреНрдпреЗ рд╕рдорд╛рдВрддрд░реАрдХрд░рдг рдЖрдпреЛрдЬрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдирд╡реАрди рдЗрдВрдбрдХреНрд╢рди рдСрдкрд░реЗрд╢рди рдЬреЛрдбрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ.
  • C23 рдорд╛рдирдХреЗ (рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕рд┐рдВрдЯреЕрдХреНрд╕рд╕рд╣), Fortran 2023 рдЖрдгрд┐ C++23 рд╡рд╛рдкрд░реВрди рд▓рд┐рд╣рд┐рд▓реЗрд▓реНрдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдордЪреНрдпрд╛ рд╕рдорд╛рдВрддрд░реАрдХрд░рдгрд╛рд╕рд╛рдареА рдкреВрд░реНрдг рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ. C/C++ рд╕рд╛рдареА рдирд╡реАрди рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд▓реНрдпрд╛.
  • рд╡рд░реНрдзрд┐рдд рд╕реНрдЯреЛрд░реЗрдЬ рдЖрдгрд┐ рдореЗрдорд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдХреНрд╖рдорддрд╛. рдореЗрдорд░реА рдХрд╢реА рд╡рд╛рдЯрдк рдХрд░рд╛рд╡реА рдЖрдгрд┐ рдХрд╢реА рд╡рд╛рдкрд░рд▓реА рдЬрд╛рд╡реА рд╣реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдирд╡реАрди рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд▓реНрдпрд╛ рдЧреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд. рдореЗрдорд░реА рд╕реНрдкреЗрд╕ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдХреНрд╡реЗрд░реА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА API рдЬреЛрдбрд▓реЗ.
  • OpenMP 5.0, 5.1, рдЖрдгрд┐ 5.2 рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдордзреНрдпреЗ рдирд╛рдкрд╕рдВрдд рдХреЗрд▓реЗрд▓реА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдХрд╛рдвреВрди рдЯрд╛рдХрдгреНрдпрд╛рдд рдЖрд▓реА рдЖрд╣реЗрдд.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛