рджреБрдорд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдордкреАрдЖрдИ рдореВрд▓ рдмрд╛рддреЗрдВ

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

рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрдд рдФрд░ рдЙрджрд╛рд╣рд░рдг

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдкреНрд░рддрд┐рдкрд╛рджрдХ (рдИ) рдХреА рдЧрдгрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕реЗ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЯреЗрд▓рд░ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣реИ:
e ^ x = ^ ((x ^ n) / n!) , рдЬрд╣рд╛рдБ рдпреЛрдЧ n = 0 рд╕реЗ рдЕрдирдВрдд рддрдХ рд╣реИред

рдпрд╣ рд╕реВрддреНрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╕рдВрдЦреНрдпрд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╢рдмреНрджреЛрдВ рдХрд╛ рдпреЛрдЧ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрд░реЛрд╕реЗрд╕рд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╢рдмреНрджреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЗрдВ рдЧрдгрдирд╛ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╢рд░реНрддреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЕрдВрддрд░рд╛рд▓ n рдХреА рд▓рдВрдмрд╛рдИ рдФрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ k рдХреА рдЙрдкрд▓рдмреНрдз рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ рдЬреЛ рдЧрдгрдирд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рднрд╛рдЧ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЕрдВрддрд░рд╛рд▓ рдХреА рд▓рдВрдмрд╛рдИ n = 4 рд╣реИ, рдФрд░ рдкрд╛рдВрдЪ рдкреНрд░реЛрд╕реЗрд╕рд░ рдЧрдгрдирд╛ (k = 5) рдореЗрдВ рднрд╛рдЧ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдкрд╣рд▓реЗ рд╕реЗ рдЪреМрдереЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдПрдХ рд╢рдмреНрдж рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ рдФрд░ рдкрд╛рдВрдЪрд╡реЗрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ n = 10, рдФрд░ k = 5, рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рджреЛ рд╢рдмреНрдж рдорд┐рд▓реЗрдВрдЧреЗред

рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдкрд╣рд▓рд╛ рдкреНрд░реЛрд╕реЗрд╕рд░, MPI_Bcast рдкреНрд░рд╕рд╛рд░рдг рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╢реЗрд╖ рдорд╛рди рдХреЛ рд╡реЗрд░рд┐рдПрдмрд▓ n рдкрд░ рднреЗрдЬрддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, MPI_Bcast рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд┐рдореНрди рдкреНрд░рд╛рд░реВрдк рд╣реИ:
int MPI_Bcast (void * рдмрдлрд░, int count, MPI_Datatype datatype, int root, MPI_Comm comm), рдЬрд╣рд╛рдБ рдмрдлрд░ рддрддреНрд╡ рдХреЗ рд╕рд╛рде рдмрдлрд░ рдХрд╛ рдкрддрд╛ рд╣реИ, рдЧрд┐рдирддреА рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рдбреЗрдЯрд╛ рдЯрд╛рдЗрдк MPI рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╣реИ, рд░реВрдЯ рдореБрдЦреНрдп рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреА рд░реИрдВрдХ рд╣реИ рдЬреЛ рд╕реМрджреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╣рд╕реНрддрд╛рдВрддрд░рдг, рдФрд░ рд╕рдВрдЪрд╛рд░рдХ рдХрд╛ рдирд╛рдо рд╣реИред
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЦреНрдп рдкреНрд░реЛрд╕реЗрд╕рд░, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, 0 рдХреЗ рд░реИрдВрдХ рдХреЗ рд╕рд╛рде рдкрд╣рд▓рд╛ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╣реЛрдЧрд╛ред

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

рдЪрдХреНрд░ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди, рд╢рд░реНрддреЛрдВ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдЪрд░ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░, рдЗрд╕рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдкреНрд░рд╛рдкреНрдд рд░рд╛рд╢рд┐ рдореБрдЦреНрдп рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рднреЗрдЬреА рдЬрд╛рдПрдЧреАред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдХрд╛рд╕реНрдЯ рдСрдкрд░реЗрд╢рди MPI_Reduce рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
int MPI_Reduce (рд╢реВрдиреНрдп * buf, void * рдкрд░рд┐рдгрд╛рдо, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm)

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

рд╕рднреА рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдкрд╣рд▓реЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдХреБрд▓ рдпреЛрдЧ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛, рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдШрд╛рддрд╛рдВрдХ рд╣реЛрдЧрд╛ред

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

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

рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо

1. рджреГрд╢реНрдп рд╢реЗрд▓ рд╕реЗ, n рдХрд╛ рдорд╛рди рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдкреНрд░рд╕рд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдмрд╛рдж рдореЗрдВ рдкреНрд░рд╕рд╛рд░рдг рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рднреА рдкреНрд░реЛрд╕реЗрд╕рд░реЛрдВ рдореЗрдВ рднреЗрдЬ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
2. рдЬрдм рдкрд╣рд▓рд╛ рдореБрдЦреНрдп рдкреНрд░реЛрд╕реЗрд╕рд░ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЯрд╛рдЗрдорд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред
3. рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдПрдХ рдЪрдХреНрд░ рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реЛрддреА рд╣реИред рд▓реВрдк рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдореЗрдВ, рд╢рдмреНрдж рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╢рдмреНрджреЛрдВ рдХрд╛ рдпреЛрдЧ рдЪрд░ drobSum рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддрд╛ рд╣реИред
4. рд▓реВрдк рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдЗрд╕рдХреЗ drobSum рдорд╛рди рдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП MPI_Reduce рдХрд╛рд╕реНрдЯ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рдгрд╛рдо рдЪрд░ рдореЗрдВ рднреЗрдЬрддрд╛ рд╣реИред
5. рд╕рднреА рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рдЧрдгрдирд╛ рдкреВрд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдкрд╣рд▓рд╛ рдореБрдЦреНрдп рдкреНрд░реЛрд╕реЗрд╕рд░ рдЯрд╛рдЗрдорд░ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдореА рдЪрд░ рдХреЗ рдкрд░рд┐рдгрд╛рдореА рдореВрд▓реНрдп рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рднреЗрдЬрддрд╛ рд╣реИред
6. рд╣рдорд╛рд░реЗ рдЯрд╛рдЗрдорд░ рджреНрд╡рд╛рд░рд╛ рдорд╛рдкрд╛ рдЧрдпрд╛ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдореЗрдВ рдорд╛рдкрд╛ рдЧрдпрд╛ рд╕рдордп рдХрд╛ рдорд╛рди рднреА рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХреЛрдб рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ

рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕реА ++ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдмрд╛рд╣рд░реА рд╢реЗрд▓ рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдХреЛрдб рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:
#include "mpi.h"
#include <iostream>
#include <windows.h>
using namespace std;

double Fact( int n)
{
if (n==0)
return 1;
else
return n*Fact(n-1);
}

int main( int argc, char *argv[])
{
SetConsoleOutputCP(1251);
int n;
int myid;
int numprocs;
int i;
int rc;
long double drob,drobSum=0,Result, sum;
double startwtime = 0.0;
double endwtime;

n = atoi(argv[1]);

if (rc= MPI_Init(&argc, &argv))
{
cout << " , " << endl;
MPI_Abort(MPI_COMM_WORLD, rc);
}

MPI_Comm_size(MPI_COMM_WORLD,&numprocs);
MPI_Comm_rank(MPI_COMM_WORLD,&myid);


if (myid == 0)
{

startwtime = MPI_Wtime();
}
MPI_Bcast(&n, 1, MPI_INT, 0, MPI_COMM_WORLD);

for (i = myid; i <= n; i += numprocs)
{
drob = 1/Fact(i);
drobSum += drob;
}

MPI_Reduce(&drobSum, &Result, 1, MPI_LONG_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
cout.precision(20);
if (myid == 0)
{
cout << Result << endl;
endwtime = MPI_Wtime();
cout << (endwtime-startwtime)*1000 << endl;
}

MPI_Finalize();
return 0;
}

* This source code was highlighted with Source Code Highlighter .

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

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

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


All Articles