
рдЕрдЧрд╕реНрдд 2018 рдореЗрдВ рд░рд┐рд▓реАрдЬрд╝ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ, рдЬреВрд▓рд┐рдпрд╛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЕрдкрд╡рд░реНрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЧрд┐рддреБрдм рдкрд░ рд╢реАрд░реНрд╖ 10 рднрд╛рд╖рд╛рдУрдВ рдФрд░ рд╢реАрд░реНрд╖ 20 рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдкреЗрд╢реЗрд╡рд░ рдХреМрд╢рд▓ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдХреЗ рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рд╣рд╛рд╕рд┐рд▓ рдХрд░ рд░рд╣реА рд╣реИред рд╢реБрд░реБрдЖрддреА рдХреЗ рд▓рд┐рдП, рдкрд╛рдареНрдпрдХреНрд░рдо рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдХрд┐рддрд╛рдмреЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрддреА рд╣реИрдВ ред рдЬреВрд▓рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдВрддрд░рд┐рдХреНрд╖ рдорд┐рд╢рди рдпреЛрдЬрдирд╛ , рдлрд╛рд░реНрдорд╛рдХреЛрдореЗрдЯреНрд░реА рдФрд░ рдЬрд▓рд╡рд╛рдпреБ рдореЙрдбрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред
рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рдЕрдиреБрднрд╡ рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд╛рдЧреВ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдП рдкреАрдПрд▓ рдХреЗ рдЗрд╕ рдЕрд╡рд╕рд░ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ - рджреЛ рдХреЛрд░ рдкрд░ рдкреНрд░рд╕рд╛рд░ рд╕рдореАрдХрд░рдг рд╕реЗ, рдПрдХ рд╕реБрдкрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЦрдЧреЛрд▓реАрдп рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ рддрдХред
рд╕рдорд╛рдирд╛рдВрддрд░ рдХрдореНрдкреНрдпреВрдЯрд┐рдВрдЧ рдФрд░ рдХрд╛рд░рдХ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрдореНрдкреНрдпреВрдЯрд┐рдВрдЧ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВ
рдЕрдзрд┐рдХрд╛рдВрд╢ рдЖрдзреБрдирд┐рдХ рдХрдВрдкреНрдпреВрдЯрд░реЛрдВ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдХрдИ рдХрдВрдкреНрдпреВрдЯрд░реЛрдВ рдХреЛ рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХрдИ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреА рд╢рдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдк рдХрдИ рдЧрдгрдирд╛рдУрдВ рдХреЛ рддреЗрдЬреА рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рджрд░реНрд╢рди рджреЛ рдореБрдЦреНрдп рдХрд╛рд░рдХреЛрдВ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддрд╛ рд╣реИ: рд╕реНрд╡рдпрдВ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреА рдЧрддрд┐ рдФрд░ рдЙрдирдХреА рдореЗрдореЛрд░реА рдПрдХреНрд╕реЗрд╕ рдХреА рдЧрддрд┐ред рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ, рдЗрд╕ CPU рдореЗрдВ рдПрдХ рд╣реА рдХрдВрдкреНрдпреВрдЯрд░ рдпрд╛ рд╣реЛрд╕реНрдЯ рдкрд░ рд╕реНрдерд┐рдд RAM рдХреА рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рдкрд╣реБрдБрдЪ рд╣реЛрдЧреАред рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛рдПрдВ рдореБрдЦреНрдп рдореЗрдореЛрд░реА рдФрд░ рдХреИрд╢ рдХреА рдЧрддрд┐ рдореЗрдВ рдЕрдВрддрд░ рдХреЗ рдХрд╛рд░рдг рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд▓реНрдЯреА-рдХреЛрд░ рд▓реИрдкрдЯреЙрдк рдкрд░ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдПрдХ рдЕрдЪреНрдЫрд╛ рдорд▓реНрдЯреАрдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдЖрдкрдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ рджреНрд╡рд╛рд░рд╛ рдореЗрдореЛрд░реА рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред
рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрдореНрдкреНрдпреВрдЯрд┐рдВрдЧ
рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рдкрд╛рд╕ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрд░ рдкрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░рд╛рдЗрдореЗрдЯрд░реАрдЬ рд╣реИрдВ: рд╡реЗрдХреНрдЯрд░рд╛рдЗрдЬреЗрд╢рди (SIMD), рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рдФрд░ рд╡рд┐рддрд░рд┐рдд рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧред
рдЬреВрд▓рд┐рдпрд╛ рдХрд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдорд▓реНрдЯреА-рдереНрд░реЗрдбрд┐рдВрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдорд▓реНрдЯреА-рдХреЛрд░ рд▓реИрдкрдЯреЙрдк рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд░рд┐рдореЛрдЯ рдХреЙрд▓ рдФрд░ рд░рд┐рдореЛрдЯ рд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╛рдЗрдорд┐рдЯрд┐рд╡ рдЖрдкрдХреЛ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдХрд╛рдо рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдЗрди рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреВрд▓рд┐рдпрд╛ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЗрдВ рдХрдИ рдкреИрдХреЗрдЬ рдХреБрд╢рд▓ рд╕рдорд╛рдирд╛рдВрддрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡реЗрдХреНрдЯрд░рдХрд░рдг
рдЖрдзреБрдирд┐рдХ рдЗрдВрдЯреЗрд▓ рдЪрд┐рдкреНрд╕ рдХрдИ рдХрдорд╛рдВрдб рд╕реЗрдЯ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЗрдирдореЗрдВ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рд╕рд┐рдордбреА рдПрдХреНрд╕рдЯреЗрдВрд╢рди (рдПрд╕рдПрд╕рдИ) рдХреЗ рдХрдИ рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рд╡реЗрдХреНрдЯрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рдХрдИ рдкреАрдврд╝рд┐рдпрд╛рдВ (рдирд╡реАрдирддрдо рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░рд┐рд╡рд╛рд░реЛрдВ рдореЗрдВ рдЙрдкрд▓рдмреНрдз) рд╣реИрдВред рдпреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдПрдХрд▓ рдирд┐рд░реНрджреЗрд╢ рдПрдХрд╛рдзрд┐рдХ рдбреЗрдЯрд╛ (SIMD) рдХреА рд╢реИрд▓реА рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдХреЛрдб рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рддреНрд╡рд░рдг рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рддрд░рд╣ рдХреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╢реИрд▓реА рдХреЛ рдЙрдзрд╛рд░ рджреЗрддрд╛ рд╣реИред LLia рдХрд╛ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЬреВрд▓рд┐рдпрд╛ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд┐рд╕реА рднреА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рдореВрд▓ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрддреНрдпрдзрд┐рдХ рдХреБрд╢рд▓ рдорд╢реАрди рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ SIMD рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ ( LLVM рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд), рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдо рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдПрдХ рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ "рд╣реЙрдЯ рд▓реВрдкреНрд╕" рдХреЛрдбрд┐рдВрдЧ рдХреЗ рдмрдЬрд╛рдп рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рдлрд╛рдпрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдмреЗрд╣рддрд░ рд╣реИред рдЬрдм рднреА рдЕрдЧрд▓реА рдкреАрдврд╝реА рдХреЗ рдЗрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рд╕реЗрдЯ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╕рд╛рдордиреЗ рдЖрддреЗ рд╣реИрдВ, рдЬреВрд▓рд┐рдпрд╛ рдХрд╕реНрдЯрдо рдХреЛрдб рдЕрдкрдиреЗ рдЖрдк рддреЗрдЬ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдмрд╣реБ рд╕реВрддреНрд░рдг
рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рдмрд╣реБрдкрд░рдд рдЖрдорддреМрд░ рдкрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рдЫреЛрд░реЛрдВ рдХрд╛ рд░реВрдк рд▓реЗ рд▓реЗрддрд╛ рд╣реИред рддрд╛рд▓реЗ рдФрд░ рдПрдЯрдорд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рднреА рдЖрджрд┐рдо рд╣реИрдВ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдкреНрд░рд╛рдЗрдорд┐рдЯрд┐рд╡ рд╕рд░рд▓ рд▓реЗрдХрд┐рди рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реИрдВред рдпрд╣ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╡реЗ рд╣рдЬрд╛рд░реЛрдВ рдиреЛрдбреНрд╕ рдХреЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд╣реИрдВ рдФрд░ рдбреЗрдЯрд╛ рдХреА рдЯреЗрд░рд╛рдмрд╛рдЗрдЯреНрд╕ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддреЗ рд╣реИрдВ ред
рд╡рд┐рддрд░рд┐рдд рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ
рдпрджреНрдпрдкрд┐ рдЬреВрд▓рд┐рдпрд╛ рдХреА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░рд╛рдЗрдореЗрдЯрд░реАрдЬ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВ, рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдХрдИ рдкреИрдХреЗрдЬ рд╣реИрдВред ClusterManagers.jl рд╕рди рдЧреНрд░рд┐рдб рдЗрдВрдЬрди рдФрд░ рд╕реНрд▓рдо рдЬреИрд╕реЗ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреНрд▓рд╕реНрдЯрд░реНрд╕ рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрдИ рдХрд╛рдо рдХрддрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлреЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред DistributedArrays.jl рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдбреЗрдЯрд╛ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдХрдИ рдорд╢реАрдиреЛрдВ рдХреЗ рдореЗрдореЛрд░реА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЙрди рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдорд╢реАрди рдкрд░ рдлрд┐рдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрдбрд╝реЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЙрд╕ рд╕рд░рдгреА рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рдЪрд▓рддреА рд╣реИ рдЬрд┐рд╕рдХрд╛ рд╡рд╣ рдорд╛рд▓рд┐рдХ рд╣реИ, рдЗрд╕ рд╕рд╡рд╛рд▓ рдХрд╛ рддреИрдпрд╛рд░ рдЙрддреНрддрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдорд╢реАрдиреЛрдВ рдХреЗ рдмреАрдЪ рдХреИрд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреБрдЫ рд╡рд┐рд░рд╛рд╕рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдиреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЙрдбрд▓ рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ MPI -style рд╕рдВрдЧрд╛рдорд┐рддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЙрдирдХреЗ рд▓рд┐рдП, MPI.jl MPI рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рдкрддрд▓рд╛ рдЖрд╡рд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ MPI- рд╢реИрд▓реА рд╕рдВрджреЗрд╢ рдкрд╛рд╕рд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдпреБрджреНрдз рдореЗрдВ рдЬреВрд▓рд┐рдпрд╛
рд╕реЗрд▓реЗрд╕реНрдЯреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЬреВрд▓рд┐рдпрд╛ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ, рдЗрдВрдЯреЗрд▓ рд▓реИрдмреНрд╕, рдЬреВрд▓рд┐рдпрд╛рд▓реИрдмреНрд╕ @ рдПрдордЖрдИрдЯреА, рд▓реЙрд░реЗрдВрд╕ рдмрд░реНрдХрд▓реЗ рдиреЗрд╢рдирд▓ рд▓реИрдмреНрд╕ рдФрд░ рдмрд░реНрдХрд▓реЗ рдореЗрдВ рдХреИрд▓рд┐рдлреЛрд░реНрдирд┐рдпрд╛ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдХреЗ рдмреАрдЪ рдПрдХ рд╕рд╣рдпреЛрдЧ рд╣реИред
рд╕реЗрд▓реЗрд╕реНрдЯреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЬрдирд░реЗрдЯрд┐рд╡ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рдореЙрдбрд▓ рд╣реИ рдЬреЛ рдЖрдХрд╛рд╢ рдореЗрдВ рдкреНрд░рдХрд╛рд╢ рд╕реНрд░реЛрддреЛрдВ рдХреЗ рд╕реНрдерд╛рди рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЧрдгрд┐рддреАрдп рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдирд┐рд╖реНрдХрд░реНрд╖ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдореЙрдбрд▓ рдЦрдЧреЛрд▓рд╡рд┐рджреЛрдВ рдХреЛ рд╕реНрдкреЗрдХреНрдЯреНрд░реЛрдЧреНрд░рд╛рдл рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╢рд╛рдЬрдирдХ рдЖрдХрд╛рд╢рдЧрдВрдЧрд╛рдУрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рдбрд╛рд░реНрдХ рдПрдирд░реНрдЬреА, рдбрд╛рд░реНрдХ рдореИрдЯрд░ рдФрд░ рдмреНрд░рд╣реНрдорд╛рдВрдб рдХреА рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреА рднреВрдорд┐рдХрд╛ рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред

рд╕реНрд▓реЛрдЕрди рдбрд┐рдЬрд┐рдЯрд▓ рд╕реНрдХрд╛рдИ рд╕рд░реНрд╡реЗ (SDSS) рд╕реЗ рдЙрджрд╛рд╣рд░рдг
рдЬреВрд▓рд┐рдпрд╛ рдХреА рдЕрдкрдиреА рд╕рдорд╛рдирд╛рдВрддрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╕реЗрд▓реЗрд╕реНрдЯреЗ рд░рд┐рд╕рд░реНрдЪ рдЯреАрдо рдиреЗ 55 рдЯреЗрд░рд╛рдмрд╛рдЗрдЯ рд╡рд┐рдЬрд╝реБрдЕрд▓ рдбреЗрдЯрд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдФрд░ 188 рдорд┐рд▓рд┐рдпрди рдЦрдЧреЛрд▓реАрдп рдкрд┐рдВрдбреЛрдВ рдХреЛ рдХреЗрд╡рд▓ 15 рдорд┐рдирдЯ рдореЗрдВ рд╡рд░реНрдЧреАрдХреГрдд рдХрд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕реНрд▓реЛрди рдбрд┐рдЬрд┐рдЯрд▓ рд╕реНрдХрд╛рдИ рд╕рд░реНрд╡реЗ рд╕реЗ рд╕рднреА рджреГрд╢реНрдпрдорд╛рди рд╡рд╕реНрддреБрдУрдВ рдХреА рдкрд╣рд▓реА рдкреВрд░реА рд╕реВрдЪреА рдмрдиреАред рдпрд╣ рдорд╛рдирд╡ рдЬрд╛рддрд┐ рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХреА рдЧрдИ рд╕рдмрд╕реЗ рдмрдбрд╝реА рдЧрдгрд┐рддреАрдп рдЕрдиреБрдХреВрд▓рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред

рд╕реЗрд▓реЗрд╕реНрдЯреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдиреЗ NERSC рдХреЛрд░реА рдлреЗрдЬ II рдХреЗ рд╕реБрдкрд░рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ 9,300 рд╢реВрд░рд╡реАрд░реЛрдВ рдХреА рд▓реИрдВрдбрд┐рдВрдЧ (KNL) рдиреЛрдбреНрд╕ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛, рдЬреЛ 650,000 KNL рдХреЛрд░ рдкрд░ 1.3 рдорд┐рд▓рд┐рдпрди рдереНрд░реЗрдбреНрд╕ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдереЗ, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЧрддрд┐ рдХреЗ рд╕рд╛рде рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рджреВрд╕рд░реЗ Taflops рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд╕реЗ рдЕрдзрд┐рдХ рдХрд░ рджрд┐рдпрд╛, рдЬрд┐рд╕рд╕реЗ рдЬреВрд▓рд┐рдпрд╛ рдХреЗрд╡рд▓ рдЧрддрд┐рд╢реАрд▓ рдмрди рдЧрдИред рдПрдХ рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп рднрд╛рд╖рд╛ рдЬрд┐рд╕рдиреЗ рдХрднреА рдЗрд╕ рддрд░рд╣ рдХреА рдЙрдкрд▓рдмреНрдзрд┐ рд╣рд╛рд╕рд┐рд▓ рдХреА рд╣реИред ?? рд▓реЗрдХрд┐рди рдХреНрдпрд╛ 10.04.19 рдХреЛ рдЯреЗрд▓рд┐рд╕реНрдХреЛрдк рдХреЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдФрд░ рдмреНрд▓реИрдХ рд╣реЛрд▓ рдЗрдореЗрдЬ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдиреЗ рдЗрд╕ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рддреЛрдбрд╝ рджрд┐рдпрд╛? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╛рдЗрдерди рдЬреНрдпрд╛рджрд╛рддрд░ рд╡рд╣рд╛рдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
MPI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдирд╛рдВрддрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ
рдХреНрд▓рд╛рдЙрдбрд┐рдпреЛ рдкреНрд▓рд╛рдЬреНрдорд╛ рднреМрддрд┐рдХреА рдмреНрд▓реЙрдЧ 2018-09-30 рд╕реЗ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЕрдиреБрд╡рд╛рдж
рдЬреВрд▓рд┐рдпрд╛ 2012 рд╕реЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рд╣реИ, рдФрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЫрд╣ рд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрд╖реЛрдВ рдХреЗ рдмрд╛рдж, рд╕рдВрд╕реНрдХрд░рдг 1.0 рдЕрдВрддрддрдГ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪрд░рдг рд╣реИ рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдПрдХ рдирдпрд╛ рдкрдж (рдХрдИ рдорд╣реАрдиреЛрдВ рдХреЗ рдореМрди рдХреЗ рдмрд╛рдж) рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред рдЗрд╕ рдмрд╛рд░ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдУрдкрди рдПрдордкреАрдЖрдИ рдУрдкрди рд╕реЛрд░реНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрджреЗрд╢ рдкрд╛рд╕рд┐рдВрдЧ рдЗрдВрдЯрд░рдлреЗрд╕ (рдПрдордкреАрдЖрдИ) рдкреНрд░рддрд┐рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВред рд╣рдо рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рднреМрддрд┐рдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░реЗрдВрдЧреЗ: рджреЛ-рдЖрдпрд╛рдореА рдХреНрд╖реЗрддреНрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧрд░реНрдореА рдкреНрд░рд╕рд╛рд░ред

рдЪрд┐рддреНрд░рд╛ 1. рдкрд░рдорд╛рдгреБ рд╣рдерд┐рдпрд╛рд░реЛрдВ рдХреЗ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕рд┐рдореБрд▓реЗрд╢рди рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ 1.6 рдорд┐рд▓рд┐рдпрди рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд╕рд╛рде LLNL рдореЗрдВ рд╕рд┐рдХреЛрдЗрдпрд╛ рд╕реБрдкрд░ рдХрдВрдкреНрдпреВрдЯрд░ред hpc.llnl.gov
рдпрд╣ рдПрдХ рдХрд╛рдлреА рдЙрдиреНрдирдд рдПрдордкреАрдЖрдИ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдорд╛рдирд╛рдВрддрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреА рдХреБрдЫ рд╕рдордЭ рд╣реИред рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ, рдореИрдВ рдХрджрдо рд╕реЗ рдХрджрдо рдирд╣реАрдВ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдмрд▓реНрдХрд┐ рдЙрди рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╣рд▓реБрдУрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬреЛ рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд░реБрдЪрд┐ рдХреЗ рд╣реИрдВ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рднреВрдд рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдФрд░ рджреЛ рдЖрдпрд╛рдореА рдЧреНрд░рд┐рдб рдореЗрдВ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдкреНрд░рд╕рд╛рд░рдг)ред рдЙрдирдХреЗ рд╣рд╛рд▓ рдХреЗ рдкрджреЛрдВ рдХреА рдкрд░рдВрдкрд░рд╛ рдХреЗ рдмрд╛рдж, рдпрд╣рд╛рдВ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдХреЛрдб рдХреЛ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд╣реА рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдПрдХ рдкреВрд░реНрдг-рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╡рд╛рд▓реЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЬреАрдердм - рдбрд┐рдлреНрдпреВрдЬрди.рдЬреНрд▓ рдкрд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рдорд╛рдирд╛рдВрддрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдиреЗ рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ "рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рджреБрдирд┐рдпрд╛" рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд┐рдпрд╛ рд╣реИред рдпрд╣ рдИрдЯреАрдПрд▓ (рдПрдХреНрд╕рдЯреНрд░реИрдХреНрдЯ-рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо-рд▓реЛрдб) рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдирдХ рд╕рдорд╛рдзрд╛рди рд╣реИ, рдЬрд╣рд╛рдВ рд╡рд┐рдЪрд╛рд░рд╛рдзреАрди рд╕рдорд╕реНрдпрд╛ рд╢рд░реНрдордирд╛рдХ рд░реВрдк рд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЕрдиреНрдп рд╕рднреА рдХреЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХреЛрдИ рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреЗрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ (рдЬрдм рддрдХ рдХрд┐ рдЕрдВрддрд┐рдо "рдХрдореА" рдХрджрдо рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╕реНрдерд╛рдиреАрдп рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдорд╛рдзрд╛рди)ред
рдХрдИ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ, рдХреНрд▓рд╕реНрдЯрд░ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдпреЗ "рдирд┐рдЪреЛрдбрд╝ рд╕рдорд╛рдирд╛рдВрддрд░" рд╕рдорд╕реНрдпрд╛рдПрдВ рдЕрдХреНрд╕рд░ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕рд┐рдореБрд▓реЗрд╢рди рд╣реИрдВ: рдЦрдЧреЛрд▓ рднреМрддрд┐рдХреА, рдореМрд╕рдо рдореЙрдбрд▓рд┐рдВрдЧ, рдЬреАрд╡ рд╡рд┐рдЬреНрдЮрд╛рди, рдХреНрд╡рд╛рдВрдЯрд┐рдЯреА рд╕рд┐рд╕реНрдЯрдо, рдЖрджрд┐ рдХреА рд╕рдорд╕реНрдпрд╛рдПрдВред рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдпреЗ рд╕рд┐рдореБрд▓реЗрд╢рди рджрд░реНрдЬрдиреЛрдВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд▓рд╛рдЦреЛрдВ рдкреНрд░реЛрд╕реЗрд╕рд░ (рдЫрд╡рд┐ 1) рдкрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдореЗрдореЛрд░реА рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдмреАрдЪ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░, рдпреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдВрджреЗрд╢ рдЧреБрдЬрд░рдиреЗ рд╡рд╛рд▓реЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ (MPI) рдкреНрд░рддрд┐рдорд╛рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╕реБрдкрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдореЗрдВ рдмрд╛рддрдЪреАрдд рдХрд░рддреЗ рд╣реИрдВред
рдЬреЛ рдХреЛрдИ рднреА рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЙрд╕реЗ рдПрдордкреАрдЖрдИ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдмрд╣реБрдд рдХрдо рд╕реНрддрд░ рдкрд░ рдХреНрд▓рд╕реНрдЯрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ, рдПрдХ рд╢реЛрдзрдХрд░реНрддрд╛ рдкреНрд░рддреНрдпреЗрдХ рд╕реАрдкреАрдпреВ рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рднрд╛рд░ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╡рд╣ / рд╡рд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрдм рдФрд░ рдХреНрдпрд╛ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдмреАрдЪ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП, рдФрд░ рдХреНрдпрд╛ рдпрд╣ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдпрд╛ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд░реВрдк рд╕реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдФрд░ рдЕрдм рдЪрд▓реЛ рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреА рд╕рд╛рдордЧреНрд░реА рдкрд░ рд╡рд╛рдкрд╕ рдЖрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдПрдордкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдкреНрд░рд╕рд╛рд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдореАрдХрд░рдг рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХреИрд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рдПред рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдХ рдЖрдпрд╛рдореА рд╕рдореАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдкрд╖реНрдЯ рдпреЛрдЬрдирд╛ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рд╣реИ ( рд╡реИрд╕реЗ, рд╣рдордиреЗ рдЗрд╕ рдкрд░ рднреА рдЪрд░реНрдЪрд╛ рдХреА рд╣реИ )ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рд╣рдо рджреЛ-рдЖрдпрд╛рдореА рд╕рдорд╛рдзрд╛рди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред
рдпрд╣рд╛рдВ рдкреНрд░рд╕реНрддреБрдд рдЬреВрд▓рд┐рдпрд╛ рдХреЛрдб рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдлреЗрдмрд┐рдпрди рдбрд░реНрдирдХ рджреНрд╡рд╛рд░рд╛ рдЙрд╕ рд╢рд╛рдирджрд╛рд░ рдкреЛрд╕реНрдЯ рдореЗрдВ рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛ рд╕реА / рдлреЛрд░рдЯреНрд░рд╛рди рдХреЛрдб рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд╣реИред
рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдореИрдВ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреА рдЧрддрд┐ рдФрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рджреЛ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╣реИрдВ рдЬреЛ рдореИрдВ рдШрд░ рдкрд░ рдЦреЗрд▓ рд╕рдХрддрд╛ рд╣реВрдВ (рдореЗрд░реЗ рдореИрдХрдмреБрдХ рдкреНрд░реЛ рдкрд░ рдЗрдВрдЯреЗрд▓ рдХреЛрд░ i7 рдкреНрд░реЛрд╕реЗрд╕рд░) ... рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдЕрдм рднреА рдЧрд░реНрд╡ рд╕реЗ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдЬреВрд▓рд┐рдпрд╛ рдХреЛрдб рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдПрдХ рдХреЗ рдЦрд┐рд▓рд╛рдл рджреЛ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдорд╣рддреНрд╡рдкреВрд░реНрдг рддреНрд╡рд░рдг рджрд┐рдЦрд╛рддрд╛ рд╣реИред рд╡реИрд╕реЗ рднреА: рдпрд╣ рдмрд░рд╛рдмрд░ рдлреЛрд░рдЯреНрд░рд╛рди рдФрд░ рд╕реА рдХреЛрдб рд╕реЗ рддреЗрдЬ рд╣реИ! (рдЗрд╕ рдкрд░ рдФрд░ рдмрд╛рдж рдореЗрдВ)
рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рд╣рдо рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ:
- рдЬреВрд▓рд┐рдпрд╛: рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рдЗрдВрдкреНрд░реЗрд╢рди
- рдЕрдкрдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдУрдкрди рдПрдордкреАрдЖрдИ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
- рд╕рдорд╕реНрдпрд╛: рджреЛ-рдЖрдпрд╛рдореА рдбреЛрдореЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╕рд╛рд░
- рдЗрдВрдЯрд░-рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдВрдЪрд╛рд░: рднреВрдд рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛
- MPI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
- рд╕рдорд╛рдзрд╛рди рджреГрд╢реНрдп
- рдЙрддреНрдкрд╛рджрдХрддрд╛
- рдирд┐рд╖реНрдХрд░реНрд╖
1. рдЬреВрд▓рд┐рдпрд╛ рдХрд╛ рдкрд╣рд▓рд╛ рдЗрдВрдкреНрд░реЗрд╢рди
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЬреВрд▓рд┐рдпрд╛ рд╕реЗ рдорд┐рд▓рд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдпрд╣рд╛рдВ "рдкрд╣рд▓реЗ рдЫрд╛рдкреЛрдВ" рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рдореЗрд░реА рджрд┐рд▓рдЪрд╕реНрдкреА рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рд╡рд╣ рд╕реА рдФрд░ рдлреЛрд░рдЯреНрд░рд╛рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдорд╛рдиреНрдп-рдЙрджреНрджреЗрд╢реНрдпреАрдп рдврд╛рдВрдЪрд╛ рд╣реЛрдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд░рддреА рд╣реИ, рдЬрдмрдХрд┐ рдореИрдЯрд▓реИрдм рдпрд╛ рдкрд╛рдпрдерди рдЬреИрд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рдЪреАрд▓реЗрдкрди рдФрд░ рдЖрд╕рд╛рдиреА рдХрд╛ рд╕рдВрд░рдХреНрд╖рдг рдХрд░рддреА рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЬреВрд▓рд┐рдпрд╛ рдХреЛ рдбреЗрдЯрд╛ рд╕рд╛рдЗрдВрд╕ / рд╣рд╛рдИ-рдкрд░рдлреЙрд░реНрдореЗрдВрд╕-рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╕реНрдерд╛рдиреАрдп рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░, рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдпрд╛ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рд╕реБрдкрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред
рдПрдХ рдкрд╣рд▓реВ рдЬреЛ рдореБрдЭреЗ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ рд╡рд╣ рд╣реИ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ, рдЬреЛ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдк-рдЗрд╖реНрдЯрддрдо рд▓рдЧрддрд╛ рд╣реИ, рдЬреЛ рдореЗрд░реА рддрд░рд╣, рдЗрдВрдЯреЗрд▓реАрдЬ рдФрд░ рдкреНрдпрд╛рд░реНрдо рдХреЛ рджреИрдирд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ ( рдЗрдВрдЯреЗрд▓реАрдЬ рдЬреВрд▓рд┐рдпрд╛ рдкреНрд▓рдЧрдЗрди рднрдпрд╛рдирдХ рд╣реИ)ред рдореИрдВрдиреЗ рдЬреВрдиреЛ рдЖрдИрдбреАрдИ рдХреА рднреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЬреЛ рдЗрд╕ рд╕рдордп рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрднреА рднреА рдЗрд╕рдХреА рдЖрджрдд рдбрд╛рд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред
рдПрдХ рдкрд╣рд▓реВ рдЬреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдЕрднреА рддрдХ рдЙрд╕рдХреА "рдкрд░рд┐рдкрдХреНрд╡рддрд╛" рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪреА рд╣реИ, рдХрдИ рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рддрд░реАрдХреЗ рдХрд┐рддрдиреЗ рд╡рд┐рд╡рд┐рдз рдФрд░ рдкреБрд░рд╛рдиреЗ рд╣реИрдВ ( рдЙрди рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП, рдЬрд┐рдиреНрд╣реЗрдВ рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рд╕реЗ рд╕рдм рдХреБрдЫ рдлрд╛рд╡рдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ )ред рдореБрдЭреЗ рдЕрднреА рднреА рдПрдХ рд╕реНрд╡рд░реВрдкрд┐рдд рд░реВрдк рдореЗрдВ рдбрд┐рд╕реНрдХ рдкрд░ рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ ( рдЕрдм рдЗрд╕реЗ рдЦреЛрдЬрдирд╛ рдЖрд╕рд╛рди рд╣реИ )ред рдмреЗрд╢рдХ, рдЖрдк рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЛ рдбрдмрд▓-рдлреЙрд░ рд▓реВрдк рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рдЙрдкрд▓рдмреНрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдвреВрдВрдврдирд╛ рдХрдард┐рди рд╣реИ, рдФрд░ рдкреНрд░рд▓реЗрдЦрди рд╡реНрдпрд╛рдкрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдПрдХ рдФрд░ рдкрд╣рд▓реВ рдЬреЛ рдкрд╣рд▓реА рдмрд╛рд░ рдЬреВрд▓рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗ рдЕрдиреБрдХреНрд░рдордг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред рдпрджреНрдпрдкрд┐ рдореБрдЭреЗ рдпрд╣ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдереЛрдбрд╝рд╛ рдХрд╖реНрдЯрдкреНрд░рдж рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдордЭреМрддреЗ рдХреЛ рдирд╣реАрдВ рддреЛрдбрд╝рддрд╛ рд╣реИ, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп рдирд╣реАрдВ рд╣реИ (рдореИрдЯрд▓реИрдм рдФрд░ рдлреЛрд░рдЯреНрд░рд╛рди рднреА рдПрдХ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрдХреНрд░рдордг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ)ред
рдЕрдм, рдЕрдЪреНрдЫреЗ рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд╣рд▓реВ рдкрд░: рдЬреВрд▓рд┐рдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рддреЗрдЬ рд╣реЛ рд╕рдХрддреА рд╣реИред рдореИрдВ рдпрд╣ рджреЗрдЦрдХрд░ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реБрдЖ рдХрд┐ рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдЬреЛ рдЬреВрд▓рд┐рдпрд╛ рдХреЛрдб рд▓рд┐рдЦрд╛ рд╣реИ, рд╡рд╣ рд╕рдордХрдХреНрд╖ рдлреЛрд░рдЯреНрд░рд╛рди рдФрд░ рд╕реА рдХреЛрдб рд╕реЗ рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВрдиреЗ рдореВрд▓ рд░реВрдк рд╕реЗ рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ рдерд╛ред рдпрджрд┐ рдЖрдкрдХреА рд░реБрдЪрд┐ рд╣реИ рддреЛ рдкреНрд░рджрд░реНрд╢рди рдЕрдиреБрднрд╛рдЧ рджреЗрдЦреЗрдВред
2. рдУрдкрди рдПрдордкреАрдЖрдИ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛
рдУрдкрди MPI рдПрдХ рдУрдкрди рд╕реЛрд░реНрд╕ рдореИрд╕реЗрдЬрд┐рдВрдЧ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИред рдЕрдиреНрдп рдкреНрд░рд╕рд┐рджреНрдз рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ MPICH рдФрд░ MVAPICH рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдУрд╣рд┐рдпреЛ рд╕реНрдЯреЗрдЯ рдпреВрдирд┐рд╡рд░реНрд╕рд┐рдЯреА рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд, MVAPICH рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдмрд╕реЗ рдЙрдиреНрдирдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ GPU рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддрд╛ рд╣реИ - рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдбреАрдк рд▓рд░реНрдирд┐рдВрдЧ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, NVIDIA рдФрд░ MVAPICH рдЯреАрдо рдХреЗ рдмреАрдЪ рдШрдирд┐рд╖реНрда рд╕рд╣рдпреЛрдЧ рд╣реИ)ред
рдЗрди рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдПрдордкреАрдЖрдИ рдПрдкреАрдЖрдИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛: рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдХреЛрдб рд╕рдорд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
Github рдкрд░ MPI.jl рдкрд░рд┐рдпреЛрдЬрдирд╛ MPI рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡рд░рдг рд╣реИред рд╣реБрдб рдХреЗ рддрд╣рдд, рдпрд╣ рд╕реА рдФрд░ рдлреЛрд░рдЯреНрд░рд╛рди рдПрдордкреАрдЖрдИ рдкреНрд░рддрд┐рд╖реНрдард╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдореЗрдВ рдЗрди рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЕрднрд╛рд╡ рд╣реИред
рдЬреВрд▓рд┐рдпрд╛ рдкрд░ рдПрдордкреАрдЖрдИ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЕрд▓рдЧ рд╕реЗ рдУрдкрди рдПрдордкреАрдЖрдИ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдореИрдХ рд╣реИ, рддреЛ рдореБрдЭреЗ рдпрд╣ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд▓рдЧреАред рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЬреАрд╕реАрд╕реА (рдЬреАрдПрдирдпреВ рдХрдВрдкрд╛рдЗрд▓рд░) рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдУрдкрди рдПрдордкреАрдЖрдИ рдХреЛ рдлреЛрд░рдЯреНрд░рд╛рди рдФрд░ рд╕реА рдХрдВрдкрд╛рдЗрд▓рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдореИрдВрдиреЗ рдУрдкрди рдПрдордкреАрдЖрдИ 3.1.1 рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдореЗрд░реЗ рдЯрд░реНрдорд┐рдирд▓ рдкрд░ mpiexec --version
рджреНрд╡рд╛рд░рд╛ рднреА рдкреБрд╖реНрдЯрд┐ рдХреА рдЬрд╛рддреА рд╣реИред
рдУрдкрди MPI рдЖрдкрдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ cmake рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдлрд┐рд░ рд╕реЗ, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдореИрдХ рд╣реИ, рддреЛ рдЖрдкрдХреЗ рдЯрд░реНрдорд┐рдирд▓ рдкрд░ brew install cmake
рдЯрд╛рдЗрдк рдХрд░рдирд╛ рдЙрддрдирд╛ рд╣реА рдЖрд╕рд╛рди рд╣реИред
рдлрд┐рд▓рд╣рд╛рд▓, рдЖрдк рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рдПрдордкреАрдЖрдИ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред рдЬреВрд▓рд┐рдпрд╛ REPL рдЦреЛрд▓реЗрдВ рдФрд░ using Pkg
Pkg.add (┬лMPI┬╗)
ред рдЖрдорддреМрд░ рдкрд░ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЖрдкрдХреЛ рдПрдордкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореБрдЭреЗ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ Pkg.build (┬лMPI┬╗)
рдорд╛рдзреНрдпрдо рд╕реЗ рдкреИрдХреЗрдЬ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдерд╛ред
3. рд╕рдорд╕реНрдпрд╛: рджреЛ рдЖрдпрд╛рдореА рдкреНрд░рд╕рд╛рд░ рд╕рдореАрдХрд░рдг
рдкреНрд░рд╕рд╛рд░ рд╕рдореАрдХрд░рдг рдПрдХ рдкрд░рд╡рд▓рдпрд┐рдХ рдЖрдВрд╢рд┐рдХ рдЕрдВрддрд░ рд╕рдореАрдХрд░рдг рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рд╡рд╣ рдЗрд╕ рддрд░рд╣ рдХреА рдШрдЯрдирд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдЧрд░реНрдореА рдкреНрд░рд╕рд╛рд░ рдпрд╛ рдПрдХрд╛рдЧреНрд░рддрд╛ рдкреНрд░рд╕рд╛рд░ (рдлрд╝рд┐рдХ рдХрд╛ рджреВрд╕рд░рд╛ рдирд┐рдпрдо) рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░рддрд╛ рд╣реИред рджреЛ рд╕реНрдерд╛рдирд┐рдХ рдЖрдпрд╛рдореЛрдВ рдореЗрдВ, рдкреНрд░рд╕рд╛рд░ рд╕рдореАрдХрд░рдг рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ
frac рдЖрдВрд╢рд┐рдХu рдЖрдВрд╢рд┐рдХt=D left( frac рдЖрдВрд╢рд┐рдХ2u рдЖрдВрд╢рд┐рдХx2+ frac рдЖрдВрд╢рд┐рдХ2u рдЖрдВрд╢рд┐рдХy2 right)\ред
рдирд┐рд░реНрдгрдп рдпреВ(x,y,t) рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдЕрдВрддрд░рд┐рдХреНрд╖ рдФрд░ рд╕рдордп рдореЗрдВ рддрд╛рдкрдорд╛рди / рдПрдХрд╛рдЧреНрд░рддрд╛ рдХреИрд╕реЗ рдмрджрд▓рддреА рд╣реИ (рдХреНрдпрд╛ рд╣рдо рдЧрд░реНрдореА рдХреЗ рд╡рд┐рддрд░рдг рдпрд╛ рдкрджрд╛рд░реНрдереЛрдВ рдХреЗ рдкреНрд░рд╕рд╛рд░ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╣реИрдВ) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ред рджрд░рдЕрд╕рд▓, рдЪрд░ x рдФрд░ y рд╕реНрдерд╛рдирд┐рдХ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╕рдордп рдШрдЯрдХ рдХреЛ рдЪрд░ t рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдорд╛рддреНрд░рд╛ рдбреА "рдкреНрд░рд╕рд╛рд░ рдЧреБрдгрд╛рдВрдХ" рд╣реИ рдФрд░ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рддрдиреА рдЬрд▓реНрджреА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЧрд░реНрдореА рднреМрддрд┐рдХ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлреИрд▓ рдЬрд╛рдПрдЧреАред рдкрд┐рдЫрд▓реЗ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдореЗрдВ рдЬреЛ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдереА (рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ) рдХреЗ рд╕рдорд╛рди, рд╕рдорд╛рдзрд╛рди рдХреЗ рддрдерд╛рдХрдерд┐рдд "рд╕реНрдкрд╖реНрдЯ рдпреЛрдЬрдирд╛" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдкрд░реЛрдХреНрдд рд╕рдореАрдХрд░рдг рдХреЛ рд╡рд┐рд╡реЗрдХрд╣реАрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдЙрди рд╡рд┐рд╡рд░рдгреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдКрдВрдЧрд╛ рдЬреЛ рдЖрдк рдмреНрд▓реЙрдЧ рдкрд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░реВрдк рдореЗрдВ рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕рдорд╛рдзрд╛рди рд▓рд┐рдЦреЗрдВ:
1) fracuj+1i,kтИТ2uji,k Deltat=D left( fracuji+1),kтИТ2uji,k+ujiтИТ1,k Deltax2+ fracuji,k+1тИТ2uji,k+uji,kтИТ1 Deltay2 right)
рдЬрд╣рд╛рдВ i
рдФрд░ k
рд╕реНрдерд╛рдирд┐рдХ рдЧреНрд░рд┐рдб рдХреЗ рд╕рд╛рде рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рд╕реВрдЪрдХрд╛рдВрдХ k
, рд╕рдордп рдореЗрдВ j
ред рдкрд╣рд▓реА рдмрд╛рд░ рдХреА рдкрд░рдд рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рд╕реЗ рднрд░реА рд╣реБрдИ рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдж рдореЗрдВ uj+1i,k рдкрд┐рдЫрд▓реА рдкрд░рдд рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧрдгрдирд╛ рдХреА рдЧрдИред рдЖрдХреГрддрд┐ рдореЗрдВ, рд▓рд╛рд▓ рдиреЛрдбреНрд╕ рдкрд░рдд рдХреЗ рдиреЛрдбреНрд╕ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ uj рдЬреЛ рдмрд┐рдВрджреБ рдкрд░ рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ uj+1i,k

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

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

рдЕрдВрдЬреАрд░ред 4 (рдмрд╛рдПрдВ) рдФрд░ (рджрд╛рдПрдВ) рднреВрдд рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзред рдордзреНрдпрд╡рд░реНрддреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛, рдПрдХ рдЙрдкрдбреЛрдореЗрди рдХреА рд╕реАрдорд╛ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд▓ рдХреЛ рдЕрдкрдирд╛ рд╕рдВрджреЗрд╢ рдкрдбрд╝реЛрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкреНрд░реЗрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рднреВрдд рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрдкрдХреЛ рдкреНрд░реЗрд╖рд┐рдд рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рд╕реАрдорд╛рдУрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрдИ рдХреЛрд╢рд┐рдХрд╛рдПрдВ рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВред рдпрд╣рд╛рдБ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рдХреНрд░рд┐рдпрд╛ 0 рдкреВрд░реА рдЙрддреНрддрд░реА рд╕реАрдорд╛ рдХреЛ 1 рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреА рд╣реИ, рдФрд░ 2 рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рдкреВрд░реНрд╡реА рд╕реАрдорд╛ред
рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рднреВрдд рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдирд╛рдордХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде "рд╡рд╛рд╕реНрддрд╡рд┐рдХ" рдЙрдк рдбреЛрдореЗрди рдХреЛ рдШреЗрд░рдирд╛ рдЖрдо рдмрд╛рдд рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЪрд┐рддреНрд░ 4 (рджрд╛рдПрдВ) рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпреЗ рднреВрдд рдХреЛрд╢рд┐рдХрд╛рдПрдВ рдкрдбрд╝реЛрд╕реА рдЙрдк-рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рд╕реАрдорд╛рдУрдВ рдкрд░ рд╕рдорд╛рдзрд╛рди рдХреА рдкреНрд░рддрд┐рдпрд╛рдВ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдбреЛрдореЗрди рдХреА рдкреБрд░рд╛рдиреА рд╕реАрдорд╛ рдкрдбрд╝реЛрд╕рд┐рдпреЛрдВ рдХреЛ рджреА рдЬрд╛рддреА рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдХрд╛рдлреА рдХрдо рд╕рдВрдЪрд╛рд░ рдУрд╡рд░рд╣реЗрдб рдХреЗ рд╕рд╛рде рдПрдХ рдЙрдкрдбреЛрдореЗрди рдХреА рд╕реАрдорд╛ рдкрд░ рдПрдХ рдирдП рд╕рдорд╛рдзрд╛рди рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╢реБрджреНрдз рдкреНрд░рднрд╛рд╡ рдХреЛрдб рддреНрд╡рд░рдг рд╣реИред
5. MPI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдХрдИ рдПрдордкреАрдЖрдИ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╣реИрдВред рдпрд╣рд╛рдБ рдореИрдВ рд╕рд┐рд░реНрдл рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП MPI.jl рд╢реЗрд▓ рднрд╛рд╖рд╛ рдореЗрдВ рд╡реНрдпрдХреНрдд рдХрд┐рдП рдЧрдП рдЖрджреЗрд╢реЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдореИрдВрдиреЗ рджреНрд╡рд┐-рдЖрдпрд╛рдореА рднреНрд░рдо рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛ред рдпреЗ рдХреБрдЫ рдореВрд▓ рдЖрджреЗрд╢ рд╣реИрдВ рдЬреЛ рд▓рдЧрднрдЧ рд╣рд░ MPI рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
MPI рдХрдорд╛рдВрдбMPI.init ()
- рд░рдирдЯрд╛рдЗрдо рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИ
MPI.COMM_WORLD
- MPI.COMM_WORLD
рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, MPI рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╕рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ (рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрджреЗрд╢ рд╕рдВрдЪрд╛рд░рдХ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)
MPI.Comm_rank (MPI. COMM_WORLD)
- рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдЖрдВрддрд░рд┐рдХ рд░реИрдВрдХ (рдЖрдИрдбреА) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ
MPI.Barrier (MPI.COMM_WORLD)
- рдЬрдм рддрдХ рд╕рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ MPI.Barrier (MPI.COMM_WORLD)
рддрдм рддрдХ рдмреНрд▓реЙрдХ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди
MPI.Bcast! (Buf, n_buf, rank_root, MPI.COMM_WORLD)
MPI.Bcast! (Buf, n_buf, rank_root, MPI.COMM_WORLD)
- рд╕рдВрджреЗрд╢ рдХреЗ рдмрдлрд░ рдмрдлрд╝ рдХреЛ рдЖрдХрд╛рд░ n_buf рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рд░реИрдВрдХ rank_root рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░рдХ MPI.COM_WORLD рдХреА рдЕрдиреНрдп рд╕рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░реЗрдВред
MPI.Waitall! (reqs)
MPI.Waitall! (reqs)
- рд╕рднреА MPI рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддрд╛ рд╣реИ (рдЕрдиреБрд░реЛрдз рдПрдХ рд╡рд┐рд╡рд░рдгрдХ рд╣реИ, рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рдВрджреЗрд╢ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ,)
MPI.REQUEST_NULL
- рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдз рдХрд┐рд╕реА рднреА рдЪрд▓ рд░рд╣реЗ рдХрдиреЗрдХреНрд╢рди рд╕реЗ рд╕рдВрдмрджреНрдз рдирд╣реАрдВ рд╣реИ
MPI.Gather (buf, rank_root, MPI.COMM_WORLD)
- рд░реИрдВрдХ_root рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП buf рдЪрд░ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ
MPI.Isend (buf, rank_dest, tag, MPI.COMM_WORL D)
- buf рд╕рдВрджреЗрд╢ рдХреЛ рд╡рд░реНрддрдорд╛рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ asynchronously рдХреЛ rank_dest рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕рдВрджреЗрд╢ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдЯреИрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
MPI.Irecv! (Buf, rank_src, tag, MPI.COMM_WORLD)
MPI.Irecv! (Buf, rank_src, tag, MPI.COMM_WORLD)
- рд╕реНрдерд╛рдиреАрдп рдмрдлрд░ рдмреБрдлрд╝ рдХреЛ рд░реИрдВрдХ рд░реИрдВрдХ_src рдХреА рд╕реНрд░реЛрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдЯреИрдЧ рдЯреИрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ
MPI.Finalize ()
- MPI рд░рдирдЯрд╛рдЗрдо рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ
5.1 рдкрдбрд╝реЛрд╕реА рдЦреЛрдЬрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛
рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреЗ рджреЛ-рдЖрдпрд╛рдореА рдХреНрд╖реЗрддреНрд░ рдХреЛ рдХрдИ рдЖрдпрддрд╛рдХрд╛рд░ рдЙрдк-рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╡рд┐рдШрдЯрд┐рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЪрд┐рддреНрд░рд╛ 5. 12 рдЙрдк-рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдПрдХ рджреНрд╡рд┐-рдЖрдпрд╛рдореА рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдХрд╛рд░реНрдЯреЗрд╢рд┐рдпрди рдЕрдкрдШрдЯрдиред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ MPI рд░реИрдВрдХ (рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛) рд╢реВрдиреНрдп рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ x
рдФрд░ y
рдХреБрд▓реНрд╣рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЛ рдПрдХреНрд╕ рдЕрдХреНрд╖ рдХреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдФрд░ рд╕рдорд╛рдзрд╛рди рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд╕реНрддрдВрднреЛрдВ рдХреЗ рд╕рд╛рде y рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдЙрд▓рдЯрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЕрдкрдиреЗ рдкрдбрд╝реЛрд╕рд┐рдпреЛрдВ рдХреЛ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рдмрд╣реБрдд рд╣реА рдЖрд╕рд╛рди MPI рдХрдорд╛рдВрдб рд╣реИ рдЬреЛ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ MPI_Cart_create
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЬреВрд▓рд┐рдпрд╛ рдПрдордкреАрдЖрдИ рд╢реЗрд▓ рдореЗрдВ рдЗрд╕ рдЙрдиреНрдирдд рдХрдорд╛рдВрдб рдХреЛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдФрд░ рдЗрд╕реЗ рдЬреЛрдбрд╝рдирд╛ рддреБрдЪреНрдЫ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ), рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдореИрдВрдиреЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдЬреЛ рд╕рдорд╛рди рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рдЕрдзрд┐рдХ рдХреЙрдореНрдкреИрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрдХреНрд╕рд░ рдЯрд░реНрдирд░реА рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдЖрдк рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдиреАрдЪреЗ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдХреЛрдб function neighbors(my_id::Int, nproc::Int, nx_domains::Int, ny_domains::Int) id_pos = Array{Int,2}(undef, nx_domains, ny_domains) for id = 0:nproc-1 n_row = (id+1) % nx_domains > 0 ? (id+1) % nx_domains : nx_domains n_col = ceil(Int, (id + 1) / nx_domains) if (id == my_id) global my_row = n_row global my_col = n_col end id_pos[n_row, n_col] = id end neighbor_N = my_row + 1 <= nx_domains ? my_row + 1 : -1 neighbor_S = my_row - 1 > 0 ? my_row - 1 : -1 neighbor_E = my_col + 1 <= ny_domains ? my_col + 1 : -1 neighbor_W = my_col - 1 > 0 ? my_col - 1 : -1 neighbors = Dict{String,Int}() neighbors["N"] = neighbor_N >= 0 ? id_pos[neighbor_N, my_col] : -1 neighbors["S"] = neighbor_S >= 0 ? id_pos[neighbor_S, my_col] : -1 neighbors["E"] = neighbor_E >= 0 ? id_pos[my_row, neighbor_E] : -1 neighbors["W"] = neighbor_W >= 0 ? id_pos[my_row, neighbor_W] : -1 return neighbors end
рдЬрдм рд╣рдордиреЗ рдорд╛рдЬрд╝реЗ рдмрдирд╛рдП рддреЛ рд╣рдордиреЗ рднреА рдРрд╕рд╛ рд╣реА рдХрд┐рдпрд╛
рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЗрдирдкреБрдЯ my_id
, рдЬреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд░реИрдВрдХ (рдпрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛) рд╣реИ, рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ nproc
, x рджрд┐рд╢рд╛ рдореЗрдВ рдбрд┐рд╡реАрдЬрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ nx_domains
рдФрд░ y рджрд┐рд╢рд╛ рдХреЗ рд╡рд┐рднрд╛рдЬрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ ny_domains
ред
рдЪрд▓рд┐рдП рдЕрдм рдЗрд╕ рдлреАрдЪрд░ рдХреЛ рдЪреЗрдХ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд┐рд░ рд╕реЗ рдЕрдВрдЬреАрд░ рдХреЛ рджреЗрдЦрдирд╛ред 5, рд╣рдо рд░реИрдВрдХ 4 рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдФрд░ рд░реИрдВрдХ 11 рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрд░рдИрдкреАрдПрд▓ рдореЗрдВ рдбреНрд░рд╛рдЗрд╡ рдХрд░реЗрдВ:
julia> neighbors(4, 12, 3, 4) Dict{String,Int64} with 4 entries: "S" => 3 "W" => 1 "N" => 5 "E" => 7
рдФрд░
julia> neighbors(11, 12, 3, 4) Dict{String,Int64} with 4 entries: "S" => 10 "W" => 8 "N" => -1 "E" => -1
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдореИрдВ рдкрдбрд╝реЛрд╕реА рдХреЗ рд╕реНрдерд╛рди рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдбрд┐рдирд▓ рджрд┐рд╢рд╛рдУрдВ "рдПрди", "рдПрд╕", "рдИ", "рдбрдмреНрд▓реНрдпреВ" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рдХреНрд░рд┐рдпрд╛ 4 рдореЗрдВ рдкрдбрд╝реЛрд╕реА рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ 3 рд╣реИ рдЬреЛ рдЗрд╕рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рджрдХреНрд╖рд┐рдг рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред рдЖрдк рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдкрд░рд┐рдгрд╛рдо рд╕рд╣реА рд╣реИрдВ, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ "-1" рджреВрд╕рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ 11 рдХреЗ "рдЙрддреНрддрд░" рдФрд░ "рдкреВрд░реНрд╡" рдкрдХреНрд╖реЛрдВ рдкрд░ рдХреЛрдИ рдкрдбрд╝реЛрд╕реА рдирд╣реАрдВ рдкрд╛рдП рдЧрдП рдереЗред
5.2 рдореИрд╕реЗрдЬрд┐рдВрдЧ
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рджреЗрдЦрд╛ рдерд╛, рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрдбрд╝реЛрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЕрдкрдиреА рд╕реАрдорд╛рдПрдВ рднреЗрдЬрддреА рд╣реИред рдЗрд╕реА рд╕рдордп, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрдкрдиреЗ рдкрдбрд╝реЛрд╕рд┐рдпреЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИред рдЗрди рдЖрдВрдХрдбрд╝реЛрдВ рдХреЛ "рдШреЛрд╕реНрдЯ рд╕реЗрд▓реНрд╕" рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдбреЛрдореЗрди рдХреА рд╕реАрдорд╛ рдХреЗ рдкрд╛рд╕ рд╕рдорд╛рдзрд╛рди рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
MPI рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА MPI_Sendrecv
рдХрдорд╛рдВрдб рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рджреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдПрдХ рд╕рд╛рде рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, MPI.jl рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐ MPI_Send
рдФрд░ MPI_Receive
рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЕрднреА рднреА рд╕рдВрднрд╡ рд╣реИред
рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ рдХрд┐ рдЕрдЧрд▓рд╛ updateBound!
рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ updateBound!
, рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░ рднреВрдд рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЗрдирдкреБрдЯ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ 2 рдбреА рд╕рдорд╛рдзрд╛рди рдпреВ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рднреВрдд рдХреЛрд╢рд┐рдХрд╛рдПрдВ, рд╕рд╛рде рд╣реА рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд░рддреА рд╣реИ (рдЗрд╕рдХреА рд░реИрдВрдХ рдХреНрдпрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдЙрдкрдбреЛрдореЗрди рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреНрдпрд╛ рд╣реИрдВ, рдЗрд╕рдХреЗ рдкрдбрд╝реЛрд╕реА рдХреНрдпрд╛ рд╣реИрдВ)ред рдлрд╝рдВрдХреНрд╢рди рдкрд╣рд▓реЗ рдкрдбрд╝реЛрд╕рд┐рдпреЛрдВ рдХреЛ рдЕрдкрдиреА рд╕реАрдорд╛ рднреЗрдЬрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЕрдкрдиреА рд╕реАрдорд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдкреНрд░рд╛рдкреНрдд рднрд╛рдЧ рдХреЛ MPI.Waitall!
рдЯреАрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдВрддрд┐рдо рд░реВрдк рджрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ MPI.Waitall!
, рдЬреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдмреНрдпрд╛рдЬ рдХреА рд╡рд┐рд╢реЗрд╖ рдЙрдкрдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдб рд╕реЗрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рднреА рдЕрдкреЗрдХреНрд╖рд┐рдд рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП рдереЗред
рдХреЛрдб function updateBound!(u::Array{Float64,2}, size_total_x, size_total_y, neighbors, comm, me, xs, ys, xe, ye, xcell, ycell, nproc) mep1 = me + 1
5. рд╕рдорд╛рдзрд╛рди рджреГрд╢реНрдп
рдбреЛрдореЗрди рдХреЛ рд╕реАрдорд╛ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рдирд┐рд░рдВрддрд░ рдорд╛рди u = +10
рд╕рд╛рде рдкреНрд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╕реАрдорд╛ рдкрд░ рдПрдХ рд╕реНрдерд┐рд░ рддрд╛рдкрдорд╛рди рд╕реНрд░реЛрдд рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐ u = тИТ10
рдХреНрд╖реЗрддреНрд░ рдХреЗ рдЕрдВрджрд░ (рдЫрд╡рд┐ 6 рдмрд╛рдИрдВ рдУрд░)ред рд╕рдордп рдХреЗ рд╕рд╛рде, рд╕реАрдорд╛ рдкрд░ рдорд╛рди u = 10
рдХреНрд╖реЗрддреНрд░ рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рдлреИрд▓рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪрд░рдг j = 15203
рд╕рдорд╛рдзрд╛рди рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдЕрдВрдЬреАрд░ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рджрд╛рдИрдВ рдУрд░ 6ред
рдмрдврд╝рддреЗ рд╕рдордп рдЯреА рдХреЗ рд╕рд╛рде, рд╕рдорд╛рдзрд╛рди рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдЬрд╛рддреАрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ t rightarrow+ infty рдпрд╣ рдкреВрд░реЗ рдбреЛрдореЗрди рдореЗрдВ u = +10
рдирд╣реАрдВ рдмрдиреЗрдЧрд╛ред

рдЕрдВрдЬреАрд░ред 6. рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐ (рдмрд╛рдПрдВ) рдФрд░ рд╕рдордп (рджрд╛рдПрдВ) рдЪрд░рдг 15203 рдореЗрдВ рд╕рдорд╛рдзрд╛рдиред рдХреНрд╖реЗрддреНрд░ рдХреА рд╕реАрдорд╛рдПрдБ рд╣рдореЗрд╢рд╛ u = +10 рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рддреА рд╣реИрдВред рд╕рдордп рдХреЗ рд╕рд╛рде, рд╕рдорд╛рдзрд╛рди рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдорд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреВрд░реЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдореВрд▓реНрдп u = +10 рдХреЗ рдХрд░реАрдм рдФрд░ рдХрд░реАрдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
6. рдкреНрд░рджрд░реНрд╢рди
рдЬрдм рдореИрдВ рдлреЛрд░рдЯреНрд░рд╛рди рдФрд░ рд╕реА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЬреВрд▓рд┐рдпрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рддреЛ рдореИрдВ рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реБрдЖ: рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рд╣реИ!
рддреБрд▓рдирд╛ рдореЗрдВ рджреЗрд░реА рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рдЬреВрд▓рд┐рдпрд╛ рдХреЛрдб рдХреЗ рдПрдордкреАрдЖрдИ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд╕реНрд╡рдпрдВ рджреЗрдЦреЗрдВред рдЪрд┐рддреНрд░рд╛ 1 1 рд╕реЗ 2 (рд╕реАрдкреАрдпреВ) рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рд░рдирдЯрд╛рдЗрдо рдХреЗ рдЕрдиреБрдкрд╛рдд рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдЖрдк рдЪрд╛рд╣реЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рд╕рдВрдЦреНрдпрд╛ 2 рдХреЗ рдХрд░реАрдм рд╣реЛ, рдЕрд░реНрдерд╛рдд рджреЛ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдПрдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд╕рд╛рде рджреЛрдЧреБрдирд╛ рддреЗрдЬреА рд╕реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рджреЗрдЦрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЫреЛрдЯреЗ рдХрд╛рд░реНрдп рдЖрдХрд╛рд░ (128x128 рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдПрдХ рдЧреНрд░рд┐рдб) рдХреЗ рд▓рд┐рдП, рд╕рдВрдХрд▓рди рд╕рдордп рдФрд░ рд╕рдВрдЪрд╛рд░ рдУрд╡рд░рд╣реЗрдб рдХрд╛ рд╕рдордЧреНрд░ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдкрд░ рдирдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИ: рддреНрд╡рд░рдг рдПрдХ рд╕реЗ рдХрдо рд╣реИред рдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд▓рд╛рдн рдХреЗрд╡рд▓ рдмрдбрд╝реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЪрд┐рддреНрд░рд╛ 7. рдХрд╛рд░реНрдп рдХреА рдЬрдЯрд┐рд▓рддрд╛ (рдЧреНрд░рд┐рдб рдЖрдХрд╛рд░) рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рджреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдмрдирд╛рдо рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдЬреВрд▓рд┐рдпрд╛ рдПрдордкреАрдЖрдИ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЧрддрд┐ рджреЗрдирд╛ред "рдПрдХреНрд╕реЗрд▓реЗрд░реЗрд╢рди" 1 рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ 2 рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рддрдХ рдХреБрд▓ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХреЗ рдЕрдиреБрдкрд╛рдд рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдФрд░ рдЕрдм рдПрдХ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдореЛрдбрд╝: рдЕрдВрдЬреАрд░ рдореЗрдВред рдЪрд┐рддреНрд░ 8 рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдлрд╝реЛрд░реНрдЯреНрд░рд╛рди рдФрд░ рд╕реА рд╕реЗ рддреЗрдЬрд╝ рд╣реИ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдХрд╛рд░ 256x256 рдФрд░ 512x512 рд╣реИ (рдХреЗрд╡рд▓ рд╡рд╣реА рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВрдиреЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдерд╛)ред рдпрд╣рд╛рдВ рдореИрдВ рдХреЗрд╡рд▓ рдореБрдЦреНрдп рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд▓реВрдк рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдордп рдХреЛ рдорд╛рдкрддрд╛ рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЙрдЪрд┐рдд рддреБрд▓рдирд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд▓рдВрдмреЗ рд╕рд┐рдореБрд▓реЗрд╢рди рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдордЧреНрд░ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдпреЛрдЧрджрд╛рди рд╣реЛрдЧрд╛ред


рдЪрд┐рддреНрд░рд╛ 8. рджреЛ рдЧреНрд░рд┐рдб рдЖрдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЬреВрд▓рд┐рдпрд╛ рдмрдирд╛рдо рдлреЛрд░рдЯреНрд░рд╛рди рдмрдирд╛рдо рд╕реА рдХрд╛ рдкреНрд░рджрд░реНрд╢рди: 256x256 (рд╢реАрд░реНрд╖) рдФрд░ 512x512 (рдиреАрдЪреЗ)ред рдЗрд╕рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рд╡рд╛рд▓реА рднрд╛рд╖рд╛ рд╣реИред рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдЙрд╕ рд╕рдордп рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдкрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдореБрдЦреНрдп рдХреЛрдб рд▓реВрдк рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЗрд╕ рдкрдж рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рдерд╛ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдлреЛрд░рдЯреНрд░рд╛рди рдФрд░ рд╕реА рдХреА рдЧрддрд┐ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдХрд░ рд╕рдХрддреА рд╣реИред рдореБрдЦреНрдп рдХрд╛рд░рдг рдпрд╣ рдерд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдлреЛрд░рдЯреНрд░рд╛рди рд╕реЗ рдЬреВрд▓рд┐рдпрд╛ 0.6 рддрдХ рд▓рдЧрднрдЧ 2,000 рд▓рд╛рдЗрдиреЛрдВ рд╡рд╛рд▓реЗ рд╢реИрдХреНрд╖рдгрд┐рдХ рдХреЛрдб рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ рдерд╛, рдФрд░ рдореИрдВрдиреЗ рд▓рдЧрднрдЧ 3 рдмрд╛рд░ рдкреНрд░рджрд░реНрд╢рди рдбреНрд░реЙрдк рджреЗрдЦрд╛ред
рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░ ... рдореИрдВ рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реВрдВред рдореИрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдлреЛрд░реНрдЯреНрд░рд╛рди рдФрд░ рд╕реА рдореЗрдВ рдЬреВрд▓рд┐рдпрд╛ 1.0 рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдореМрдЬреВрджрд╛ рдПрдордкреАрдЖрдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ рд╣реИред рдЕрдВрдЬреАрд░ рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рдкрд░рд┐рдгрд╛рдоред 8, рдЦреБрдж рдХреЗ рд▓рд┐рдП рдмреЛрд▓реЛ: рдЬреВрд▓рд┐рдпрд╛ рдЕрдм рддрдХ рдХреА рд╕рдмрд╕реЗ рддреЗрдЬ рд▓рдЧ рд░рд╣реА рд╣реИред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореИрдВрдиреЗ рдЬреВрд▓рд┐рдпрд╛ рдХрдВрдкрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдЙрдкрднреЛрдЧ рдХрд┐рдП рдЧрдП рд▓рдВрдмреЗ рд╕рдВрдХрд▓рди рд╕рдордп рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ "рд╡рд╛рд╕реНрддрд╡рд┐рдХ" рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рддреНрд╡рд╣реАрди рдХрд╛рд░рдХ рд╣реЛрдЧрд╛ рдЬрд┐рд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдШрдВрдЯреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдореБрдЭреЗ рдпрд╣ рднреА рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдг рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрддрдиреЗ рд╡реНрдпрд╛рдкрдХ рдирд╣реАрдВ рд╣реИрдВ рдЬрд┐рддрдиреЗ рдХрд┐ рдЙрдирдХреА рддреБрд▓рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реЛрдЧрд╛ рдХрд┐ рдХреЛрдб рджреЛ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдореИрдВ рдЕрдкрдиреЗ рд╣реЛрдо рдкрд░реНрд╕рдирд▓ рд▓реИрдкрдЯреЙрдк рддрдХ рд╕реАрдорд┐рдд рд╣реВрдВ) рдФрд░ рдЕрдиреНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде ( рдбрд┐рдлреНрдпреВрдЬрди.рдЬреНрд▓ рджреЗрдЦреЗрдВ)ред
рд╡реИрд╕реЗ рднреА, рдЗрд╕ рдЕрднреНрдпрд╛рд╕ рдиреЗ рдореБрдЭреЗ рдЖрд╢реНрд╡рд╕реНрдд рдХрд┐рдпрд╛ рдХрд┐ рдбреЗрдЯрд╛ рд╕рд╛рдЗрдВрд╕ рдФрд░ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреВрд▓рд┐рдпрд╛ рдХрд╛ рдЕрдзреНрдпрдпрди рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рдмрд┐рддрд╛рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реЛрдЧрд╛ред рдирдИ рдЙрдкрд▓рдмреНрдзрд┐рдпреЛрдВ рдкрд░ рдЬрд╛рдПрдВ!
рд╕рдВрджрд░реНрдн