Π”ΠΈΠΏΠ»ΠΎΠΌΡ‹, курсовыС, Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚Ρ‹, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅...
Брочная ΠΏΠΎΠΌΠΎΡ‰ΡŒ Π² ΡƒΡ‡Ρ‘Π±Π΅

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ MPI. 
ВСория Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° основС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MPI

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

MPI ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ²Ρ‹ΡˆΠ΅ 125 Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π΅ΠΌΡƒ программисту ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ достаточно ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅Π»ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΡˆΠ΅ΡΡ‚ΡŒΡŽ функциями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ ΠΎΠ±ΡΡƒΠΆΠ΄Π°ΡŽΡ‚ся Π½ΠΈΠΆΠ΅: Π’Ρ‹Ρ…ΠΎΠ΄ «Ρ‡ΠΈΡΡ‚Ρ‹ΠΌ» способом ΠΈΠ· ΡΠΈΡΡ‚Π΅ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний ΠΏΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, рассмотрим Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ фактичСских Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… MPI. Основная схСма ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ MPI состоит ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠ±Ρ‰ΠΈΡ…… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ MPI. ВСория Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° основС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MPI (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ MPI

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, рассмотрим Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ фактичСских Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… MPI.

Для C ΠΎΠ±Ρ‰ΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄.

rc = MPI_Xxxxx (parameter,…).

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΈ Π² Π»ΡŽΠ±ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π‘, рСгистр здСсь Π²Π°ΠΆΠ΅Π½. НапримСр, MPI Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ записано Π·Π°Π³Π»Π°Π²Π½Ρ‹ΠΌΠΈ Π±ΡƒΠΊΠ²Π°ΠΌΠΈ, Ρ‚ΠΎ ΠΆΠ΅ ΠΎΡ‚носится ΠΈ ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π±ΡƒΠΊΠ²Π΅ послС подчСркивания. ВсС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ символы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрС. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ rc — это Π½Π΅ΠΊΠΈΠΉ ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π°, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ Ρ†Π΅Π»Ρ‹ΠΉ Ρ‚ΠΈΠΏ. Π’ ΡΠ»ΡƒΡ‡Π°Π΅ успСха, ΠΎΠ½ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ MPI_SUCCESS. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° C Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» mpi. h". Он ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ опрСдСлСния для констант ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ MPI. Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ константы Π² MPI, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ MPI_SUCCESS, MPI_INT, Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π·Π°Π³Π»Π°Π²Π½Ρ‹ΠΌΠΈ Π±ΡƒΠΊΠ²Π°ΠΌΠΈ. Для C ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΊ Π²Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ функциям ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (MPI_Wtime ΠΈ MPI_Wtick), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ функциями ΠΊΠ°ΠΊ Π² C, Ρ‚Π°ΠΊ ΠΈ Π² Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π΅, ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ числа с Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ MPI

Основная схСма ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ MPI состоит ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠ±Ρ‰ΠΈΡ… этапов:

  • 1. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ для ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ
  • 2. ΠšΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ распрСдСлСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ°ΠΌ
  • 3. Π’Ρ‹Ρ…ΠΎΠ΄ «Ρ‡ΠΈΡΡ‚Ρ‹ΠΌ» способом ΠΈΠ· ΡΠΈΡΡ‚Π΅ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний ΠΏΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ

MPI ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ²Ρ‹ΡˆΠ΅ 125 Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π΅ΠΌΡƒ программисту ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ достаточно ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅Π»ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΡˆΠ΅ΡΡ‚ΡŒΡŽ функциями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ ΠΎΠ±ΡΡƒΠΆΠ΄Π°ΡŽΡ‚ся Π½ΠΈΠΆΠ΅:

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ для ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ.

  • β€’ MPI_Init ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ MPI
  • β€’ MPI_Comm_size Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ число процСссов
  • β€’ MPI_Comm_rank Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ процСсса (Ρ€Π°Π½Π³ =
  • β€’ Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΎ-порядку)

ΠšΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ распрСдСлСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ°ΠΌ.

  • β€’ MPI_Send отправляСт сообщСниС
  • β€’ MPI_Recv ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ сообщСниС
  • β€’ Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΡΠΈΡΡ‚Π΅ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний
  • β€’ MPI_Finalize
ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ