ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Анализ эффСктивности MPI-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

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

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ всСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ рассматриваСтся ΠΊΠ°ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» самого высокого (Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ) уровня. Π­Ρ‚ΠΎΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² ΡΠ΅Π±Ρ нСсколько ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ (ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ) уровня. Π’Π°ΠΊΠΈΠΌΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°ΠΌΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π»ΡŽΠ±Ρ‹Π΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ программистом ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… всСгда начинаСтся с Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Анализ эффСктивности MPI-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

    • 1.

      Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

      . 3

      • 2. ΠžΠ±Π·ΠΎΡ€ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования. 5
      • 3. ΠžΠ±Π·ΠΎΡ€ срСдств ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ эффСктивности MPI-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ 9
        • 3.1 ΠžΠ±Ρ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ всСх срСдств трассировки. 10
        • 3.2 ΠžΠ±Π·ΠΎΡ€ основных срСдств ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. 11
          • 3.2.1 AIMS — Automated Instrumentation and Monitoring System 11
          • 3.2.2 Vampir, VampirTrace 12
          • 3.2.3 Jumpshot 14
          • 3.2.4 Pablo Performance Analysis Toolkit Software 15
          • 3.2.5 Paradyn 17
          • 3.2.6 CXperf 18
      • 4. Π₯арактСристики ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ DVM-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. 20
        • 4.1 ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ характСристики ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ 20
        • 4.2 ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ эффСктивности 22
        • 4.3 Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ Π°Π½Π°Π»ΠΈΠ·Ρƒ. 23
      • 5. БрСдство Π°Π½Π°Π»ΠΈΠ·Π° эффСктивности MPI ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. 27
        • 5.1. ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ. 27
        • 5.2 Π­Ρ‚Π°ΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°. 28
        • 5.3 Устройство Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°. 29
          • 5.3.1 Π‘Π±ΠΎΡ€ трассы 29
          • 5.3.2 Анализ. 30
          • 5.3.3 Визуализация 35
      • Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

        . 37

      • Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ 39
      • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1. 40
      • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 2. 40

1.Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

БСгодня Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ сСбС ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Π΅Π· примСнСния ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² Π² Ρ‚Π°ΠΊΠΈΡ… областях, ΠΊΠ°ΠΊ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ производством, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° слоТных тСхничСских устройств, ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ — словом, Π²ΠΎ Π²ΡΠ΅Ρ… областях, Π³Π΄Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Однако Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹ΠΌ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ остаСтся использованиС ΠΈΡ… Π² Ρ‚ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½ΠΈ собствСнно ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΈΡΡŒ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ, для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π·Π°Π΄Π°Ρ‡, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… выполнСния Π³Ρ€ΠΎΠΌΠ°Π΄Π½Ρ‹Ρ… объСмов вычислСний. Π’Π°ΠΊΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ Π² ΡΠ΅Ρ€Π΅Π΄ΠΈΠ½Π΅ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ Π²Π΅ΠΊΠ° Π² ΡΠ²ΡΠ·ΠΈ с Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ Π°Ρ‚ΠΎΠΌΠ½ΠΎΠΉ энСргСтики, авиастроСния, Ρ€Π°ΠΊΠ΅Ρ‚Π½ΠΎ-космичСских Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ Ρ€ΡΠ΄Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… областСй Π½Π°ΡƒΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ.

Π’ Π½Π°ΡˆΠ΅ врСмя ΠΊΡ€ΡƒΠ³ Π·Π°Π΄Π°Ρ‡, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… для своСго Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ примСнСния ΠΌΠΎΡ‰Π½Ρ‹Ρ… Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… рСсурсов, Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΠ»ΡΡ. Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΈ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ измСнСния Π² ΡΠ°ΠΌΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π°ΡƒΡ‡Π½Ρ‹Ρ… исслСдований. ВслСдствиС ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ внСдрСния Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡΠΈΠ»ΠΈΠ»ΠΎΡΡŒ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ числСнного модСлирования ΠΈ Ρ‡ΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ экспСримСнта. ЧислСнноС ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, заполняя ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ ΠΌΠ΅ΠΆΠ΄Ρƒ физичСскими экспСримСнтами ΠΈ Π°Π½Π°Π»ΠΈΡ‚ичСскими ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°ΠΌΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ явлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π»ΠΈΠ±ΠΎ слишком слоТными для исслСдования аналитичСскими ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ, Π»ΠΈΠ±ΠΎ слишком дорогостоящими ΠΈΠ»ΠΈ опасными для ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ изучСния. ΠŸΡ€ΠΈ этом числСнный экспСримСнт ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ΄Π΅ΡˆΠ΅Π²ΠΈΡ‚ΡŒ процСсс Π½Π°ΡƒΡ‡Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚СхнологичСского поиска. Π‘Ρ‚Π°Π»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ процСссы интСнсивных Ρ„ΠΈΠ·ΠΈΠΊΠΎ-химичСских ΠΈ ΡΠ΄Π΅Ρ€Π½Ρ‹Ρ… Ρ€Π΅Π°ΠΊΡ†ΠΈΠΉ, Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ атмосфСрныС процСссы, процСссы экономичСского ΠΈ ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠ³ΠΎ развития Ρ€Π΅Π³ΠΈΠΎΠ½ΠΎΠ² ΠΈ Ρ‚. Π΄. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΈΡ… ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… рСсурсов[12].

Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ примСнСния ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² всСгда ΠΎΡΡ‚Π°Π²Π°Π»ΠΎΡΡŒ основным Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»Π΅ΠΌ прогрСсса Π² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… тСхнологиях. НС ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ поэтому, Ρ‡Ρ‚ΠΎ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ основной характСристики ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ — Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ, ΠΊΠ°ΠΊΠΎΠ΅ количСство арифмСтичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π·Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ИмСнно этот ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ с Π½Π°ΠΈΠ±ΠΎΠ»ΡŒΡˆΠ΅ΠΉ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒΡŽ дСмонстрируСт ΠΌΠ°ΡΡˆΡ‚Π°Π±Ρ‹ прогрСсса, достигнутого Π² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… тСхнологиях.

Π’ Π½Π°ΡΡ‚оящСС врСмя Π³Π»Π°Π²Π½Ρ‹ΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π­Π’Πœ являСтся созданиС многопроцСссорных систСм с Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… распрСдСлСнных систСм наталкиваСтся Π½Π° Ρ€ΡΠ΄ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ… трудностСй. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²Ρ‹Π±ΠΎΡ€Π° ΠΈΠ»ΠΈ создания подходящСго Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. ΠŸΡ€ΠΈ этом для достиТСния Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠΉ эффСктивности приходится ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΎΡ‚ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ для ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… систСм оказываСтся Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ слоТным, Ρ‡Π΅ΠΌ для ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ….

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ процСссора ΠΊ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΠΌ Ρ€Π΅Π·ΠΊΠΎ возрастаСт ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ программирования. И ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ здСсь ΡƒΠΆΠ΅ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚. ΠŸΡ€ΠΈΡ‡Ρ‘ΠΌ Ссли Π½Π° ΠΌΡƒΠ»ΡŒΡ‚ипроцСссорной систСмС достаточно ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ вычислСния, Ρ‚ΠΎ Π² ΡΠ»ΡƒΡ‡Π°Π΅ распрСдСлённой систСмы Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΅Ρ‰Ρ‘ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, ΠΈ ΡΠ°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅, Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ распрСдСлСниС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠΉ Π±Ρ‹Π»ΠΎ согласованным.

Одной ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ являСтся ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° эффСктивности ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’Π°ΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ эффСкт Π΄Π°Π΅Ρ‚ распараллСливаниС нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот эффСкт.

Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ выполнСния ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½Ρ‹Ρ… Π­Π’Πœ с Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ опрСдСляСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ основными Ρ„Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ:

Β· ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒΡŽ распараллСливания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ — Π΄ΠΎΠ»Π΅ΠΉ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… вычислСний Π² ΠΎΠ±Ρ‰Π΅ΠΌ объСмС вычислСний;

Β· Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ процСссоров Π²ΠΎ Π²Ρ€Π΅ΠΌΡ выполнСния ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… вычислСний;

Β· Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ для выполнСния мСТпроцСссорных ΠΎΠ±ΠΌΠ΅Π½ΠΎΠ²;

Β· ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒΡŽ совмСщСния мСТпроцСссорных ΠΎΠ±ΠΌΠ΅Π½ΠΎΠ² с Π²Ρ‹Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡΠΌΠΈ;

Β· ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ выполнСния вычислСний Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ процСссорС (Π° ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°Ρ€ΡŒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΡΡ‚Π΅ΠΏΠ΅Π½ΠΈ использования кэша).

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ ΡΡ€Π΅Π΄ΡΡ‚Π²Π° ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ сущСствСнно зависят ΠΎΡ‚ Ρ‚ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ разрабатываСтся ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°.

2. ΠžΠ±Π·ΠΎΡ€ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования

Для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½Ρ‹Ρ… Π­Π’Πœ трСбуСтся взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ Π΅Ρ‘ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π°ΠΌΠΈ. Π­Ρ‚ΠΎ взаимодСйствиС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π»ΠΈΠ±ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±Ρ‰ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ, Π»ΠΈΠ±ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний — Π΄Π²Π΅ основныС ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Однако эти ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ довольно Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΌΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π³Π»Π°Π²Π½Ρ‹ΠΌ нСдостатком Π²Ρ‹Π±ΠΎΡ€Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ программирования являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ такая модСль Π½Π΅ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Π° ΠΈ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½Π° для программистов, Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

МоТно ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ систСмы автоматичСского распараллСливания, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΏΠΎΠ»Π½Π΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ использовались Π½Π° ΠΌΡƒΠ»ΡŒΡ‚ипроцСссорах. А ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ этих систСм Π½Π° Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… систСмах сущСствСнно Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π½ΠΎ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ взаимодСйствиС процСссоров Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (Π»Π°Ρ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ — врСмя самого простого взаимодСйствия — Π²Π΅Π»ΠΈΠΊΠ° ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ выполнСния ΠΎΠ΄Π½ΠΎΠΉ машинной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹), Ρ‚ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ процСссорами ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌΠΈ порциями.

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½Ρ‹Ρ… Π­Π’Πœ с ΠΎΠ±Ρ‰Π΅ΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, Π½Π° ΡΠΈΡΡ‚Π΅ΠΌΠ°Ρ… с Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ произвСсти Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ распрСдСлСниС вычислСний, Π½ΠΎ ΠΈ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ процСссорС доступ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ — Π΄Π°Π½Π½Ρ‹ΠΌ, располоТСнным Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… процСссорах. Для обСспСчСния эффСктивного доступа ΠΊ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ трСбуСтся ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π°Π½Π°Π»ΠΈΠ· индСксных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°, Π½ΠΎ ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅, нСдостаточно просто ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΊΡ‚ наличия зависимости ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ, Π° Ρ‚рСбуСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚ΠΎΡ‚ сСгмСнт Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ пСрСслан с ΠΎΠ΄Π½ΠΎΠ³ΠΎ процСссора Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ.

Π’ Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, распрСдСлСниС вычислСний ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ согласованно.

ΠΠ΅ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ распрСдСлСния вычислСний ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚, вСроятнСС всСго, ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ. БогласованноС распрСдСлСниС вычислСний ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° всСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈ Π»ΡŽΠ±Π°Ρ Π½Π΅Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Π°Π½Π°Π»ΠΈΠ·Π° ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΊΠ°Ρ‚астрофичСскому замСдлСнию выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’ Π½Π°ΡΡ‚оящСС врСмя ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ программирования:

МодСль ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний. MPI. 1]

Π’ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° прСдставляСт собой мноТСство процСссов, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠΌΠ΅Π΅Ρ‚ собствСнноС локальноС адрСсноС пространство. ВзаимодСйствиС процСссов — ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ ΡΠΈΠ½Ρ…ронизация — осущСствляСтся посрСдством ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний. ΠžΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΈ ΡΡ‚андартизация Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ Π² 1993 Π³ΠΎΠ΄Ρƒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ стандарта MPI (Message Passing Interface). Π•Π³ΠΎ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π³ΠΎΠ΄Ρ‹ обСспСчило ΠΊΠΎΡ€Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π»ΠΎΠΌ Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ пСрСносимости ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… модСль ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ выполнСния.

Π’ Ρ‡ΠΈΡΠ»Π΅ основных достоинств MPI ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΈΠ½Ρ‚СрфСйсами Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΅Π³ΠΎ возмоТности:

Β· Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π² ΡΠ·Ρ‹ΠΊΠ°Ρ… Π€ΠΎΡ€Ρ‚Ρ€Π°Π½, Π‘ΠΈ, Π‘ΠΈ++;

Β· ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ возмоТностСй для совмСщСния ΠΎΠ±ΠΌΠ΅Π½ΠΎΠ² сообщСниями ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠΉ;

Β· ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ излишнСго копирования ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ для Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ;

Β· Π¨ΠΈΡ€ΠΎΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡˆΠΈΡ€ΠΎΠΊΠΎΠ²Π΅Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ рассылка ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, сбор ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ с Ρ€Π°Π·Π½Ρ‹Ρ… процСссоров), Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΡ… Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, Ρ‡Π΅ΠΌ использованиС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ пСрСсылок Ρ‚ΠΎΡ‡ΠΊΠ°-Ρ‚ΠΎΡ‡ΠΊΠ°;

Β· Π¨ΠΈΡ€ΠΎΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ€ Ρ€Π΅Π΄ΡƒΠΊΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, суммированиС располоТСнных Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… процСссорах Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΠ»ΠΈ Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈΡ… ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ), Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρƒ программиста, Π½ΠΎ ΠΈ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΡ… Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, Ρ‡Π΅ΠΌ это ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ программист, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ…арактСристиках ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы;

Β· Π£Π΄ΠΎΠ±Π½Ρ‹Π΅ срСдства имСнования адрСсатов сообщСний, ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ стандартных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈΠ»ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ;

Β· Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ задания Ρ‚ΠΈΠΏΠ° ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ позволяСт ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π΅Π΅ Π°Π²Ρ‚оматичСскоС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΡΠ»ΡƒΡ‡Π°Π΅ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ Π² ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΡƒΠ·Π»Π°Ρ… систСмы.

Однако Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ MPI ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π°ΡŽΡ‚ΡΡ ΠΈ ΡΡƒΡ€ΠΎΠ²ΠΎΠΉ ΠΊΡ€ΠΈΡ‚ΠΈΠΊΠ΅ Π·Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ интСрфСйс получился слишком Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ ΠΈ ΡΠ»ΠΎΠΆΠ½Ρ‹ΠΌ для ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ программиста. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ оказался слоТным ΠΈ Π΄Π»Ρ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π² ΠΈΡ‚ΠΎΠ³Π΅, Π² Π½Π°ΡΡ‚оящСС врСмя практичСски Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ MPI, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅Ρ€Π΅ обСспСчиваСтся совмСщСниС ΠΎΠ±ΠΌΠ΅Π½ΠΎΠ² с Π²Ρ‹Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡΠΌΠΈ.

Появившийся Π² 1997 ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ стандарта MPI-2 выглядит Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ ΠΈ Π½Π΅ΠΏΠΎΠ΄ΡŠΠ΅ΠΌΠ½Ρ‹ΠΌ для ΠΏΠΎΠ»Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Он ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… направлСниях:

Β· ДинамичСскоС созданиС ΠΈ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠ΅ процСссов;

Β· ΠžΠ΄Π½ΠΎΡΡ‚ΠΎΡ€ΠΎΠ½Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ ΡΡ€Π΅Π΄ΡΡ‚Π²Π° синхронизации для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ взаимодСйствия процСссов Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±Ρ‰ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ (для эффСктивной Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° ΡΠΈΡΡ‚Π΅ΠΌΠ°Ρ… с Π½Π΅ΠΏΠΎΡΡ€Π΅Π΄ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΌ доступом процСссоров ΠΊ ΠΏΠ°ΠΌΡΡ‚ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… процСссоров);

Β· ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° (для эффСктивного использования ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… возмоТностСй ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ доступа ΠΌΠ½ΠΎΠ³ΠΈΡ… процСссоров ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ дисковым устройствам).

Π’ΠΊΡ€Π°Ρ‚Ρ†Π΅ ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… модСлях:

МодСль нСструктурированных Π½ΠΈΡ‚Π΅ΠΉ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° прСдставляСтся ΠΊΠ°ΠΊ ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Π½ΠΈΡ‚Π΅ΠΉ (threads), способных Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ ΠΈ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΠΎΠ±Ρ‰Π΅Π΅ адрСсноС пространство. Π˜ΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ срСдства синхронизации Π½ΠΈΡ‚Π΅ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ доступ ΠΊ ΠΎΠ±Ρ‰ΠΈΠΌ рСсурсам. МногиС систСмы программирования ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ эту модСль: Win32 threads, POSIX threads, Java threads.

МодСль ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ. ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ Π΅Ρ‘ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚Π΅Π»Π΅ΠΌ являСтся язык HPF. Π’ ΡΡ‚ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ программист ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ распрСдСляСт Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π°ΠΌ. Π”Π°Π»Π΅Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° прСобразуСтся компилятором Π² ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΡƒΡŽ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΡƒΡŽΡΡ Π»ΠΈΠ±ΠΎ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний, Π»ΠΈΠ±ΠΎ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ с ΠΎΠ±Ρ‰Π΅ΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ. ΠŸΡ€ΠΈ этом ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ процСссор ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ вычислСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Π΄ Ρ‚Π΅ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π° Π½Π΅Π³ΠΎ распрСдСлСны.

МодСль ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° ΠΏΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ. Π­Ρ‚Π° модСль Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π² ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊ ΠΌΡƒΠ»ΡŒΡ‚ипроцСссорам. ВмСсто Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ² Π½ΠΈΡ‚Π΅ΠΉ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π»ΠΎΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ конструкции — ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹ ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ сСкции. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅, ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½ΠΈΡ‚Π΅ΠΉ, распрСдСлСниС Π½Π° Π½ΠΈΡ… Π²ΠΈΡ‚ΠΊΠΎΠ² ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… сСкций — всё это Π±Ρ€Π°Π» Π½Π° ΡΠ΅Π±Ρ компилятор. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΎΠΌ для этой ΠΌΠΎΠ΄Π΅Π»ΠΈ сСйчас являСтся интСрфСйс OpenMP.

Гибридная модСль ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° ΠΏΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ с ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ сообщСний. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° прСдставляСт собой систСму Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… MPI — процСссов, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… программируСтся Π½Π° OpenMP.

МодСль ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ — DVM (Distributed Virtual Machine, Distributed Virtual Memory). Π­Ρ‚Π° модСль Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Π² Π˜Π½ΡΡ‚ΠΈΡ‚ΡƒΡ‚Π΅ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈΠΌ. Πœ. Π’. ΠšΠ΅Π»Π΄Ρ‹ΡˆΠ° РАН.

3. ΠžΠ±Π·ΠΎΡ€ срСдств ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ эффСктивности MPI-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

ΠŸΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ MPI-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ слоТныС ситуации, для Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ инструмСнты. Π­Ρ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ‚Π°ΠΊΠΈΡ… инструмСнтов ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ производят сбор ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² Ρ‚рассу (описаниС событий), Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ срСдства Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ для Ρ†Π΅Π»Π΅ΠΉ трассировки Π² ΠΈΡΡΠ»Π΅Π΄ΡƒΠ΅ΠΌΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ «ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅» Π²Ρ‹Π·ΠΎΠ²Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΠΈΠΊΡΠΈΡ€ΡƒΡŽΡ‚ наступлСниС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… событий ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ², ΠΈ Ρ„ΠΈΠΊΡΠΈΡ€ΡƒΡŽΡ‚ эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² ΠΆΡƒΡ€Π½Π°Π»Π΅ трассировки, ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ Π΅Π΅ online-Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρƒ ΠΈΠ»ΠΈ просто ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ ΡΠΎΠ±ΠΈΡ€Π°Π΅ΠΌΡƒΡŽ статистику.

МоТно Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄Π²Π° основных ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ Π°Π½Π°Π»ΠΈΠ·Ρƒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ:

Β· A. «Π’рассировка + Визуализация». Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ Π΄Π²Π° этапа:

o A1. Π’ΠΎ Π²Ρ€Π΅ΠΌΡ исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ собираСтся «Ρ‚расса», Ρ‚. Π΅. ΠΆΡƒΡ€Π½Π°Π» ΠΎ Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

o A2. Π—Π°Ρ‚Π΅ΠΌ получСнная трасса просматриваСтся ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ся.

Β· B. «Online-Π°Π½Π°Π»ΠΈΠ·». ПовСдСниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ анализируСтся нСпосрСдствСнно Π² Ρ…ΠΎΠ΄Π΅ Π΅Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.

Рис. 1 Π‘Ρ…Π΅ΠΌΠ° А. «Π’рассировка + Визуализация».

3.1 ΠžΠ±Ρ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ всСх срСдств трассировки

1. Π€ΠΎΡ€ΠΌΠ°Ρ‚ трасс Π½Π΅ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний.

2. Π‘Π±ΠΎΡ€ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ — слабыС возмоТности настройки Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² событий (ΠΊΠ°ΠΊΠΈΠ΅ события ΠΈ ΠΊΠ°ΠΊΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² Ρ‚рассы). НСт возмоТности Π²Π°Ρ€ΡŒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ объСм трассы.

3. НС ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ΡΡ эффСкта Π·Π°ΠΌΠ΅Ρ€Π° — срСдство трассировки достаточно сильно измСняСт ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

1. Π§Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ? Какая информация интСрСсна ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Π° для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ эффСктивности MPI ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

2. Как ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ? Рис. 2. Надо ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ собираСмой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π²ΠΈΠ΄ всСх событий ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π΅Π½.

3. Когда ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ? Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ эффСктивности, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π·Π°Π³Ρ€ΠΎΠΌΠΎΠΆΠ΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ излишнСй ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ.

Рис. 2 VAMPIR.

3.2 ΠžΠ±Π·ΠΎΡ€ основных срСдств ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

НиТС Π±ΡƒΠ΄ΡƒΡ‚ ΠΊΡ€Π°Ρ‚ΠΊΠΎ описаны Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ основныС срСдства ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ MPI-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ:

Β· AIMSинструмСнтарий, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ ΡΡ€Π΅Π΄ΡΡ‚Π²Π° Π°Π½Π°Π»ΠΈΠ·Π°

Β· MPEΠ±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° сохранСния Log-Ρ„Π°ΠΉΠ»ΠΎΠ² срСдство Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Nupshot

Β· Pablo — Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ ΡΡ€Π΅Π΄ΡΡ‚Π²Π° Π°Π½Π°Π»ΠΈΠ·Π°

Β· Paradyn — динамичСский инструмСнтарий ΠΈ Ρ€Π°Π½ Ρ‚Π°ΠΉΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°

Β· SvPablo — ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ инструмСнтарий, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, срСдства Π°Π½Π°Π»ΠΈΠ·Π°

Β· VAMPIRtrace — Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° and VAMPIR — срСдство Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

3.2.1 AIMS — Automated Instrumentation and Monitoring System

ΠœΠ΅ΡΡ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ:

НСкоммСрчСский ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, разрабатываСтся Π² NASA Ames Research Center Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ High Performance Computing and Communication Program.

Π’ΠΈΠΏ

Π’ΠΈΠΏ, А (трассировка + визуализация)

Π―Π·Ρ‹ΠΊΠΈ/Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

Fortran 77, HPF, Π‘. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний: MPI, PVM, NX.

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹

IBM RS/6000 SP, Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ станции Sun ΠΈ SGI, Cray T3D/T3E.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ трассировки

Π‘Π±ΠΎΡ€ трасс. АвтоматизированноС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ исходного ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡƒΡ‚Π΅ΠΌ вставки ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ². ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ со ΡΠ±ΠΎΡ€ΠΎΠΌ трассы создаСтся Ρ„Π°ΠΉΠ» со ΡΡ‚атичСской ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ.

Π£Ρ€ΠΎΠ²Π½ΠΈ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€, ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° (ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°, MPI ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Ρ‚.ΠΏ.)

Π€ΠΎΡ€ΠΌΠ°Ρ‚ трасс. Π€ΠΎΡ€ΠΌΠ°Ρ‚ описан Π²[7]. ΠžΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ сообщСний.

Π’ΠΈΠΏ трассировки. Бобытия, статистика (ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒΡΡ Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΠΉ трассы).

Визуализация

ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹ — ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ. Бобытия ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ Π½Π° ΡΡ‚ΠΈΡ… линиях. ΠžΡΠΎΠ±Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы: Π²Ρ€Π΅ΠΌΠ΅Π½Π° оТидания, Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°. Π•ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ «ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Π½ΠΈΡ» трасс.

ВрСмя — Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ (астрономичСскоС)

Бвязь Π»ΠΈΠ½ΠΈΠΉ процСссов линиями, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΠΌΠΈ взаимодСйствия (ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° сообщСний, Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ).

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ взаимодСйствия процСссов, Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСзы, история Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΈ Ρ‚рассируСмых Π±Π»ΠΎΠΊΠΎΠ².

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ связь с ΠΈΡΡ…ΠΎΠ΄Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.

Бтатистика

Π‘ΡƒΠΌΠΌΠ°Ρ€Π½ΠΎΠ΅ врСмя ΠΏΠΎ Π·Π°ΠΌΠ΅Ρ€ΡΠ΅ΠΌΡ‹ΠΌ инструкциям ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏΠ°ΠΌ инструкций ΠΈ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ срабатываний.

Рис. 3 AIMS. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° запуска.

Vampir, VampirTrace

URL

http://www.pallas.de/pages/vampir.htm

Π“Π΄Π΅ разрабатываСтся?

ΠšΠΎΠΌΠΌΠ΅Ρ€Ρ‡Π΅ΡΠΊΠΈΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Pallas (ГСрмания).

ВСрсии

VAMPIR 4.0 (X Window), VAMPIRtrace 4.0

Π’ΠΈΠΏ

Π’ΠΈΠΏ, А (трассировка + визуализация). VampirTrace — систСма Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ трасс (A1), Vampir — систСма Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (A2).

Π―Π·Ρ‹ΠΊΠΈ/Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

Π―Π·Ρ‹ΠΊΠΈ — Fortran, C; ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° сообщСний Π² Ρ€Π°ΠΌΠΊΠ°Ρ… MPI.

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹

Β· Cray T3D/T3E

Β· DEC Alpha (OSF/1)

Β· Fujitsu VP 300/700

Β· Hitachi SR2201

Β· HP 9000

Β· IBM RS/6000, SP

Β· Intel Paragon

Β· NEC SX-4

Β· SGI Origin, PowerChallenge (IRIX 6)

Β· Sun SPARC

Β· Intel x86 (Solaris 2.5)

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ трассировки.

Π‘Π±ΠΎΡ€ трасс. Π›ΠΈΠ½ΠΊΠΎΠ²ΠΊΠ° с VampirTrace — прослойкой ΠΌΠ΅ΠΆΠ΄Ρƒ MPI ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ. Π£Ρ€ΠΎΠ²Π½ΠΈ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. CΠ»Π°Π±Ρ‹Π΅ вохмоТности настройки уровня Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ — Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Π° установка Ρ‚ΠΎΡ‡Π΅ΠΊ Π½Π°Ρ‡Π°Π»Π°/ΠΊΠΎΠ½Ρ†Π° трассировки. Π’ΠΈΠΏ трассировки. Волько события (статистика собираСтся Π½Π° ΡΡ‚Π°ΠΏΠ΅ Π°Π½Π°Π»ΠΈΠ·Π° трасс).

Визуализация

ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹ — ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ, события — Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° Π½ΠΈΡ….

ВзаимодСйствия. Бвязь Π»ΠΈΠ½ΠΈΠΉ процСссов, ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ объСмов ΠΈ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Π° пСрСсылок

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. ΠšΡ€ΡƒΠ³ΠΎΠ²Ρ‹Π΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΡΡ‚атистичСскиС гистограммы.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ связь с ΠΈΡΡ…ΠΎΠ΄Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.

Бтатистика

CΡƒΠΌΠΌΠ°Ρ€Π½ΠΎΠ΅ врСмя ΠΏΠΎ Π·Π°ΠΌΠ΅Ρ€ΡΠ΅ΠΌΡ‹ΠΌ инструкциям ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏΠ°ΠΌ инструкций ΠΈ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Ρƒ срабатываний; отобраТаСтся Π½Π° ΠΊΡ€ΡƒΠ³ΠΎΠ²Ρ‹Ρ… Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΈ Π³ΠΈΡΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ….

Рис. 4. VAMPIR 4.0

Jumpshot

URL

http://www-unix.mcs.anl.gov/mpi/www/www1/Jumpshot.html

Π“Π΄Π΅ разрабатываСтся?

НСкоммСрчСскоС срСдство, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ Π² ΠΡ€Π³ΠΎΠ½Π½ΡΠΊΠΎΠΉ Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈΠΈ. РаспространяСтся вмСстС с ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ MPICH.

ВСрсия

Jumpshot 1.0 (трСбуСтся Java 1.1 ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅)

Π’ΠΈΠΏ

A2 (визуализация трасс)

Π―Π·Ρ‹ΠΊΠΈ/Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° сообщСний: MPI.

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°

Π‘Π±ΠΎΡ€ трасс — Π»ΡŽΠ±Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π³Π΄Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ MPICH. Визуализация — Java.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ трассировки

Π‘Π±ΠΎΡ€ трасс. Для получСния трассы ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²ΠΎΡ‡Π½ΠΎΠΉ вСрсиСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MPICH. Π€ΠΎΡ€ΠΌΠ°Ρ‚ трасс. CLOG. Π’ΠΈΠΏ трасс. Бобытия

Визуализация

ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹ — ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ, Ρ†Π²Π΅Ρ‚ΠΎΠΌ изобраТаСтся Ρ‚ΠΈΠΏ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ВзаимодСйствия. Бвязь Π»ΠΈΠ½ΠΈΠΉ процСссов. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. ΠžΠ±ΡŠΠ΅ΠΌΡ‹ пСрСсылок ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, гистограммы Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Бтатистика

Π‘ΡƒΠΌΠΌΠ°Ρ€Π½Ρ‹Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€.

Π Π°Π·Π½ΠΎΠ΅

jumpshot Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΡΠΎΡΡ‚Π°Π² MPICH начиная с вСрсии 1.1.1 ΠΈ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ‚ собой Tcl/Tk-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ upshot/nupshot, Π²Ρ…ΠΎΠ΄ΠΈΠ²ΡˆΠΈΠ΅ Π² ΡΠΎΡΡ‚Π°Π² MPICH Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΡ… вСрсий.

Pablo Performance Analysis Toolkit Software

ΠŸΠ°ΠΊΠ΅Ρ‚ состоит ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° срСдств:

Β· SvPablo — Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ статистичСской ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ (X Window).

Β· SDDF — Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для записи трасс ΠΈ Π½Π°Π±ΠΎΡ€ срСдств для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с SDDF Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ

Β· Trace Library and Extensions — Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для трассировки

Β· I/O Analysis — статистика ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°

Β· MPI I/O Analysis — статистика MPI I/O

Β· HDF (Hierarchical Data Format) Analysis — Π°Π½Π°Π»ΠΈΠ· использования HDF ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ

Β· Analysis GUI — Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° срСдств для просмотра SDDF трасс

Β· IO Benchmarks — cΠ±ΠΎΡ€ трасс ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°

Β·

URL

http://vibes.cs.uiuc.edu/Software/Pablo/pablo.htm

Π“Π΄Π΅ разрабатываСтся?

НСкоммСрчСский ΠΏΠ°ΠΊΠ΅Ρ‚, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π² ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠΈΡ‚Π΅Ρ‚Π΅ ΡˆΡ‚. Иллинойс.

Π―Π·Ρ‹ΠΊΠΈ/Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

ANSI C, Fortran 77, Fortran 90 (с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡΠΌΠΈ), HPF (Portland Group).

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹

Β· SvPablo — SunOS 5.6, SGI Irix 6.5

Β· Trace Library and Extensions — Sun SunOS, Sun Solaris, RS6000, SP2, Intel Paragon, Convex Exemplar, SGI IRIX

Β· I/O Analysis — Sun Solaris, SGI IRIX

Β· MPI I/O Analysis — Sun SunOS, SGI IRIX

Β· HDF Analysis — Sun Solaris, SGI IRIX

Β· Analysis GUI — Sun Solaris (X11R5+Motif)

Β· IO Benchmarks — Sun Solaris, SGI IRIX, Intel Paragon

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ трассировки.

Π£Ρ€ΠΎΠ²Π½ΠΈ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. HΠ° ΡƒΡ€ΠΎΠ²Π½Π΅ интСрфСйсов, ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ svPablo. Π€ΠΎΡ€ΠΌΠ°Ρ‚ трасс — SDDF Π’ΠΈΠΏ трасс. Бтатистика, события.

Визуализация

SvPablo. Основа Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ — связь с ΠΈΡΡ…ΠΎΠ΄Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ Ρ†Π²Π΅Ρ‚ΠΎΠΌ число Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΈ ΠΎΠ±Ρ‰Π΅Π΅ врСмя Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°.

Analysis GUI. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ трасс Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ SDDF

Бтатистика

Π Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚Ρ‹Π΅ срСдства статистики, Π² Π²ΠΈΠ΄Π΅ Π½Π°Π±ΠΎΡ€Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².

Β· I/O Analysis: Π°Π½Π°Π»ΠΈΠ· ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°

Β· MPI I/O Analysis: Π°Π½Π°Π»ΠΈΠ· Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° MPI Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

Β· HDF Analysis: Π°Π½Π°Π»ΠΈΠ· ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ HDF.

Π‘ΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ

Π•ΡΡ‚ΡŒ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΎΡ€Ρ‹ ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Π² SDDF — IBM VT Trace, AIMS.

Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° HPF, Fortran 90. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° MPI 2.0.

Рис 5. ВозмоТности Pablo.

Paradyn

URL

http://www.cs.wisc.edu/paradyn

Π“Π΄Π΅ разрабатываСтся?

НСкоммСрчСскоС срСдство, разрабатываСтся Π² University of Wisconsin,

ВСрсия

4.0

Π’ΠΈΠΏ

B (ΠΎΠ½Π»Π°ΠΉΠ½-Π°Π½Π°Π»ΠΈΠ·)

Π―Π·Ρ‹ΠΊΠΈ/Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

Fortran, Fortran 90, C, C++: MPI, PVM; HPF

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹

Β· Sun SPARC (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ PVM)

Β· Windows NT Π½Π° x86

Β· IBM RS/6000 (AIX 4.1 ΠΈΠ»ΠΈ ΡΡ‚Π°Ρ€ΡˆΠ΅)

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ трассировки

ДинамичСская настраиваСмая инструмСнтовка ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ выполнСния. Π’ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ Π΅Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ динамичСской Π²ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΈ ΡƒΠ±ΠΈΡ€Π°ΡŽΡ‚ся Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ‚Ρ€Π°ΡΡΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€. ВсС дСлаСтся автоматичСски, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°ΡŽΡ‚ΡΡ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы. НачинаСт с ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ², Π·Π°Ρ‚Π΅ΠΌ постСпСнно Π΄Π΅Ρ‚Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΡƒΠ·ΠΊΠΈΠ΅ мСста (для этого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° достаточно Π΄ΠΎΠ»Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ)

Визуализация

Π’ ΠΎΡΠ½ΠΎΠ²Π΅ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π»Π΅ΠΆΠ°Ρ‚ Π΄Π²Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π°

Β· измСряСмыС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ: процСссорноС врСмя, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы, оТидания, Π²Ρ€Π΅ΠΌΠ΅Π½Π° пСрСсылок ΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ Ρ‚. Π΄.

Β· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹/Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ систСмы, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ относятся ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹: ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, процСссоры, диски, ΠΊΠ°Π½Π°Π»Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний, Π±Π°Ρ€ΡŒΠ΅Ρ€Ρ‹ ΠΈ Ρ‚. Π΄.

На ΡΡ‚ΠΈΡ… Π²Π΅ΠΊΡ‚ΠΎΡ€Π°Ρ… образуСтся ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°: Π΅Π΅ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Π»ΠΈΠ±ΠΎ скаляр (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, срСднСС, ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, максимум ΠΈ Ρ‚. Π΄.), Π»ΠΈΠ±ΠΎ врСмСнная Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° (история измСнСния характСристики).

ВсС характСристики ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹

Π•ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒΡŽ. На ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΡ€ΠΈ ΠΌΠ°Π»ΠΎΠΌ числС процСссоров (мСньшС 12) всС выглядСло Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, Π° Π½Π° Π±ΠΎΠ»ΡŒΡˆΠ΅ΠΌ числС процСссоров — Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 80% ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’Π°ΠΊ ΠΆΠ΅ сСйчас самой систСмой занимаСтся ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ памяти.

Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅

УстранСниС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΠΈ, ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠΉ памяти, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ.

CXperf

URL

HP Performance Analysis Tools — http://www.hp.com/esy/lang/tools/Performance/ CXperf User’s Guide

Π“Π΄Π΅ разрабатываСтся?

ΠšΠΎΠΌΠΌΠ΅Ρ€Ρ‡Π΅ΡΠΊΠΎΠ΅ срСдство, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Hewlett-Packard.

Π’ΠΈΠΏ

A (трассировка + визуализация)

Π―Π·Ρ‹ΠΊΠΈ/Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

HP ANSI C (c89), ANSI C++ (aCC), Fortran 90 (f90), HP Parallel 32-bit Fortran 77

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹

Π‘Π΅Ρ€Π²Π΅Ρ€Π° HP Π½Π° Π±Π°Π·Π΅ PA-RISC

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ трассировки

Π‘Π±ΠΎΡ€ ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΉΠΊΠ° трасс осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ указания ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… ΠΎΠΏΡ†ΠΈΠΉ компилятора.

Визуализация

3D-визуализация, связь с ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ·, Π³Ρ€Π°Ρ„Ρ‹ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ².

НСкоторыС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ срСдства Π°Π½Π°Π»ΠΈΠ·Π° повСдСния ΠΏΠ°Ρ€Π°Π»Π΅Π»Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ:

Β· XMPI — графичСская срСда запуска ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ MPI-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΡΠΎΡΡ‚Π°Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π° LAM.

Β· HP Pak — Π½Π°Π±ΠΎΡ€ срСдств ΠΎΡ‚ Hewlett-Packard для Π°Π½Π°Π»ΠΈΠ·Π° повСдСния ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

Β· TAU (Tuning and Analysis Utilities) — нСкоммСрчСский Π½Π°Π±ΠΎΡ€ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, написанных Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ C++ ΠΈ Π΅Π³ΠΎ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°Ρ…. Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²ΠΊΠΈ TAU Portable Profiling.

Β· Carnival

Β· Chiron — срСдство для ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ многопроцСссорных систСм с ΠΎΠ±Ρ‰Π΅ΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ.

Β· Pangaea

Β· GUARD — ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ.

Β· MPP-Apprentice — срСдство Π² ΡΠΎΡΡ‚Π°Π²Π΅ Message-Passing Toolkit ΠΎΡ‚ SGI.

Β· ParaGraph

Β· PGPVM2

Β· TraceInvader

Β· XPVM — графичСскоС срСдство ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° PVM-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π².

4. Π₯арактСристики ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ DVM-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

4.1 ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ характСристики ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ участки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ позволяСт ΠΏΡ€ΠΈ Π΅Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½ΠΎΠΉ Π­Π’Πœ ΡΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ врСмя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ потрСбуСтся для выполнСния этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΠΎΠ΄Π½ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½ΠΎΠΉ Π­Π’Πœ. Π­Ρ‚ΠΎ врСмя называСтся ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ. Π’Π΅ΠΌ самым появляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π³Π»Π°Π²Π½ΡƒΡŽ характСристику эффСктивности ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ выполнСния — коэффициСнт эффСктивности, Ρ€Π°Π²Π½Ρ‹ΠΉ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΊ ΠΎΠ±Ρ‰Π΅ΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ использования процСссоров, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π² ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Ρ€Π°Π²Π½ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡŽ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½ΠΎΠΉ Π­Π’Πœ (максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ срСди Π²Ρ€Π΅ΠΌΠ΅Π½ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π²ΡΠ΅Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Сю ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π°Ρ…) Π½Π° число ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… процСссоров. Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±Ρ‰ΠΈΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ использования процСссоров ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ прСдставляСт собой потСрянноС врСмя. Если программист Π½Π΅ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€Π΅Π½ коэффициСнтом эффСктивности выполнСния своСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚ΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ части потСрянного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΈΡ… Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ.

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ потСрянного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ:

ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈΠ·-Π·Π° нСдостатка ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°, приводящСго ΠΊ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ вычислСний Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… процСссорах (нСдостаточный ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌ). Π”ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ вычислСний осущСствляСтся Π² Π΄Π²ΡƒΡ… случаях. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ участки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ всСми процСссорами. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π²ΠΈΡ‚ΠΊΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΈΡŽ программиста ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ»ΠΈ частично Ρ€Π°Π·ΠΌΠ½ΠΎΠΆΠ΅Π½Ρ‹.

ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈΠ·-Π·Π° выполнСния мСТпроцСссорных ΠΎΠ±ΠΌΠ΅Π½ΠΎΠ² (ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ).

ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈΠ·-Π·Π° простоСв Ρ‚Π΅Ρ… процСссоров, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΎΡΡŒ Ρ€Π°Π½ΡŒΡˆΠ΅, Ρ‡Π΅ΠΌ Π½Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… (простои).

ВрСмя выполнСния мСТпроцСссорных ΠΎΠ±ΠΌΠ΅Π½ΠΎΠ², ΠΏΠΎΠΌΠΈΠΌΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ пСрСсылки Π΄Π°Π½Π½Ρ‹Ρ… с ΠΎΠ΄Π½ΠΎΠ³ΠΎ процСссора Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ, ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² ΡΠ΅Π±Ρ ΠΈ Π²Ρ€Π΅ΠΌΡ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ тратится ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ опСрация ΠΏΡ€ΠΈΠ΅ΠΌΠ° сообщСния Π½Π° ΠΎΠ΄Π½ΠΎΠΌ процСссорС Π²Ρ‹Π΄Π°Π½Π° Ρ€Π°Π½ΡŒΡˆΠ΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ посылки сообщСния Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ процСссорС. Вакая ситуация называСтся рассинхронизациСй процСссоров ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π° Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌΠΈ.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ рассинхронизациСй процСссоров, ΠΎΡ‡Π΅Π½ΡŒ часто ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΏΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ, Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ программисту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ Π΅ΠΌΡƒ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ эти ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈ Π½Π°ΠΉΡ‚ΠΈ ΠΈΡ… ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹. Однако, Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚Π΅Ρ€ΡŒ, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Ρ… рассинхронизациСй, связано со Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹ΠΌΠΈ расходами Если какая-Π»ΠΈΠ±ΠΎ ΠΈΠ· ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Ρ‹Π΄Π°Π½Π° Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ процСссорами Π½Π΅ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Ρ‚ΠΎ ΠΏΡ€ΠΈ Π΅Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈΠ·-Π·Π° рассинхронизации процСссоров. Для ΠΎΡ†Π΅Π½ΠΊΠΈ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ Ρ‚Π°ΠΊΠΈΡ… ΠΏΠΎΡ‚Π΅Ρ€ΡŒ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈΠ·-Π·Π° Π΅Π΅ Π½Π΅ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ запуска — врСмя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΏΠΎΡ‚Ρ€Π°Ρ‡Π΅Π½ΠΎ всСми процСссорами Π½Π° ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ, Ссли Π±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ любой ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π»ΠΎΡΡŒ Π±Ρ‹ с ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΠΈ процСссоров. ΠŸΡ€ΠΈ этом Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Π½Π° ΠΏΠ΅Ρ€Π΅ΡΡ‹Π»ΠΊΡƒ синхронизационных сообщСний ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ.

Для ΠΎΡ†Π΅Π½ΠΊΠΈ суммарных ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡ‚Π΅Ρ€ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΈΠ·-Π·Π° Π½Π΅ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ запуска ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… процСссорах, слуТит ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ характСристика — синхронизация.

Основная ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° ΠΏΠΎΡ‚Π΅Ρ€ΡŒ ΠΈΠ·-Π·Π° рассинхронизации, Π½Π° ΡƒΡΡ‚Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π½Π°Ρ†Π΅Π»Π΅Π½ программист — разбалансировка Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ процСссоров. Разбалансировка ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π² ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅ вычислСния распрСдСлСны ΠΌΠ΅ΠΆΠ΄Ρƒ процСссорами Π½Π΅Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ.

Если Π±Ρ‹ ΠΏΡ€ΠΈ Π²Ρ…ΠΎΠ΄Π΅ Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ΠΈ ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· Π½Π΅Π³ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»Π°ΡΡŒ Π±Ρ‹ синхронизация процСссоров (мСТпроцСссорный ΠΎΠ±ΠΌΠ΅Π½), Ρ‚ΠΎ Ρ€Π°Π·Π±Π°Π»Π°Π½ΡΠΈΡ€ΠΎΠ²ΠΊΠ° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ процСссоров ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»Π° Π±Ρ‹ ΠΊ ΠΏΠΎΡ‚Срям ΠΈΠ·-Π·Π° рассинхронизации. Однако, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ такая синхронизация осущСствляСтся Π½Π΅ Π΄Π»Ρ всСх Ρ†ΠΈΠΊΠ»ΠΎΠ², Ρ‚ΠΎ Ρ€Π°Π·Π±Π°Π»Π°Π½ΡΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… участках ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ. Для ΠΎΡ†Π΅Π½ΠΊΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΏΠΎΡ‚Π΅Ρ€ΡŒ ΠΈΠ·-Π·Π° разбалансировки программисту ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒΡΡ нСкоторая обобщСнная характСристика — разбалансировка. Π‘ Ρ†Π΅Π»ΡŒΡŽ сниТСния Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов ΠΏΡ€ΠΈ вычислСнии этой характСристики дСлаСтся ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ синхронизация процСссоров Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· — ΠΏΡ€ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ сначала для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ процСссора опрСдСляСтся Π΅Π³ΠΎ суммарная Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°, Π° Π·Π°Ρ‚Π΅ΠΌ прогнозируСтся вызываСмая разбалансировкой Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° ΠΏΠΎΡ‚Π΅Ρ€ΡŒ ΠΈΠ·-Π·Π° рассинхронизации. Однако, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ синхронизация процСссоров осущСствляСтся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° Π³ΠΎΡ€Π°Π·Π΄ΠΎ Ρ‡Π°Ρ‰Π΅, Ρ‚ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€Π΅Π²ΠΎΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ эту Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ. Π Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈΠ·-Π·Π° рассинхронизации Π±ΡƒΠ΄ΡƒΡ‚ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π²ΠΎΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ разбалансировки Π² Ρ‚ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° процСссоров сильно измСняСтся ΠΏΡ€ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°.

Рассинхронизация ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·-Π·Π° разбалансировки, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·-Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π°Ρ… Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ выполнСния Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… процСссорах ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Ρ… особСнностями Π΅Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ Π­Π’Πœ. Для ΠΎΡ†Π΅Π½ΠΊΠΈ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ рассинхронизации программисту ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ характСристика — разброс Π²Ρ€Π΅ΠΌΠ΅Π½ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Как ΠΈ Π²Ρ€Π΅ΠΌΡ разбалансировки, эта характСристика являСтся ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½ΠΎΠΉ. Она достаточно Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈΠ·-Π·Π° рассинхронизации Π² Ρ‚ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° различия Π²Ρ€Π΅ΠΌΠ΅Π½ выполнСния ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ся случайными, Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ся, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ сСти ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ спСциализациСй процСссоров (процСссор Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°, процСссор-ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒ Ρ€Π΅Π΄ΡƒΠΊΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΈ Ρ‚. ΠΏ.).

Π’Π°ΠΆΠ½ΠΎΠΉ характСристикой, ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰Π΅ΠΉ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ совмСщСния мСТпроцСссорных ΠΎΠ±ΠΌΠ΅Π½ΠΎΠ² с Π²Ρ‹Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡΠΌΠΈ, являСтся врСмя пСрСкрытия ΠΎΠ±ΠΌΠ΅Π½ΠΎΠ² вычислСниями.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ характСристики эффСктивности ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ характСристиками, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΌΠΈ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ распараллСливания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΎΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ€Π΅Π·Π΅Ρ€Π²Ρ‹ Π΅Π΅ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ. Однако для исслСдования эффСктивности слоТных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΎΠ΄Π½ΠΈΡ… ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½Ρ‹Ρ… характСристик ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ нСдостаточно. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС программист Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ своСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π΅Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… частСй.

4.2 ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ эффСктивности

Для Π°Π½Π°Π»ΠΈΠ·Π° эффСктивности выполнСния слоТных ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ нСдостаточно ΠΈΠΌΠ΅Ρ‚ΡŒ характСристики выполнСния всСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ, Π° Ρ‚рСбуСтся ΡƒΠΌΠ΅Ρ‚ΡŒ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эти характСристики ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ частям ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’ ΡΠΈΡΡ‚Π΅ΠΌΠ΅ DVM Π±Ρ‹Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ срСдства, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Π²ΠΈΠ΄Π΅ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ² [ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ — 6].

Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π»Ρ‹:

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ всСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ рассматриваСтся ΠΊΠ°ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» самого высокого (Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ) уровня. Π­Ρ‚ΠΎΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² ΡΠ΅Π±Ρ нСсколько ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ (ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ) уровня. Π’Π°ΠΊΠΈΠΌΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°ΠΌΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π»ΡŽΠ±Ρ‹Π΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ программистом ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… всСгда начинаСтся с Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, Π° Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π΅Ρ‚ся Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ послСднСго. ВсС описанныС Π²Ρ‹ΡˆΠ΅ характСристики Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для всСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½ΠΎ ΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΅Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°. ΠŸΡ€ΠΈ этом ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ (с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΄ΠΎΠ»Π΅ΠΉ условности) ΠΊΠ°ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Ρ‚Π΅Ρ… ΠΆΠ΅ процСссорах ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, состоящСй ΠΈΠ· Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ‚Π΅Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ ΠΏΡ€ΠΈ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ЀактичСски ΠΆΠ΅, характСристики Ρ‚Π°ΠΊΠΈΡ… ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ выполняСмых ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ² Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΡ… Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ. ΠŸΡ€ΠΈ этом ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Ρ‹, входящиС Π² ΡΠΎΡΡ‚Π°Π² ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° Π±ΠΎΠ»Π΅Π΅ высокого уровня, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„Π°ΠΉΠ»Π° с ΠΈΡΡ…ΠΎΠ΄Π½Ρ‹ΠΌ тСкстом ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ строки Π² Π½Π΅ΠΌ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π½Π°Ρ‡Π°Π»Ρƒ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ приписанным Π΅ΠΌΡƒ программистом цСлочислСнным Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ.

Π Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ управляСт ΠΏΡ€ΠΈ Π΅Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΠΈ. Он ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°ΠΌΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат Π²Π½ΡƒΡ‚Ρ€ΠΈ сСбя ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹, Π»ΠΈΠ±ΠΎ всС ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹ Π²ΠΎΠΎΠ±Ρ‰Π΅, Π»ΠΈΠ±ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΈΠΌ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ².

4.3 Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ Π°Π½Π°Π»ΠΈΠ·Ρƒ

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, прСслСдуСт ΠΎΠ΄Π½Ρƒ ΠΈΠ· Π΄Π²ΡƒΡ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Ρ†Π΅Π»Π΅ΠΉ — ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π² ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΡ‹Π΅ сроки, Π»ΠΈΠ±ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΡΠΏΠΎΡΠΎΠ±Π½ΡƒΡŽ эффСктивно Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… Π­Π’Πœ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ класса.

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС, Ссли врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ удовлСтворяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ характСристики Π΅Π³ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠΆΠ΅ Π½Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒ. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ случаС Π³Π»Π°Π²Π½Ρ‹ΠΌ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅ΠΌ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ являСтся коэффициСнт эффСктивности распараллСливания. Если врСмя выполнСния ΠΈΠ»ΠΈ коэффициСнт эффСктивности Π½Π΅ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚воряСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‚ΠΎ Π΅ΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ потСрянноС врСмя ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ: Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, потСрянноС врСмя (ΠΊΠ°ΠΊ ΠΈ ΠΊΠΎΡΡ„Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚ эффСктивности распараллСливания) вычисляСтся, ΠΎΠΏΠΈΡ€Π°ΡΡΡŒ Π½Π΅ Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ процСссорС, Π° Π½Π° ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ΅ врСмя. Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ· ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Π² Ρ‚Ρƒ, ΠΈ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ сторону.

РСальноС врСмя ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ большС ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ процСссорС ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ вычислСния ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… процСссорах. Π­Ρ‚ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ объСма ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈ вычислСниях Π΄Π°Π½Π½Ρ‹Ρ… мСняСтся ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ доступа ΠΊ Π½ΠΈΠΌ Ρ‡Π΅Ρ€Π΅Π· кэш-ΠΏΠ°ΠΌΡΡ‚ΡŒ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ соврСмСнных процСссоров сильно зависит ΠΎΡ‚ ΡΡ„фСктивности использования кэш-памяти, Ρ‚ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ врСмя ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ ΠΏΡ€Π΅Π²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ΅.

РСальноС врСмя ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ мСньшС ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π΅ Π²ΡΠ΅ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ выполнСния ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π­Ρ‚ΠΈ Π½Π΅ΡƒΡ‡Ρ‚Π΅Π½Π½Ρ‹Π΅ расходы, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, поиск ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² ΡΠΈΡΡ‚Π΅ΠΌΠ½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (Π·Π°ΠΌΠ΅Ρ€ΡΡ‚ΡŒ врСмя выполнСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· внСсСния Π½Π΅ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΡ‹Ρ… искаТСний Π² Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹), ΠΌΠΎΠ³ΡƒΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠΈ количСства процСссоров Π΄ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ влияния эффСктивности использования кэш-памяти ΠΈ ΡΠΈΡΡ‚Π΅ΠΌΠ½Ρ‹Ρ… Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… конфигурациях ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ Π­Π’Πœ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ значСния ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ процСссорС (Π° ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, Ρ‡Π΅ΠΌ имССтся Π½Π° ΠΎΠ΄Π½ΠΎΠΌ процСссорС), Ρ‚ΠΎ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ для получСния прСдставлСния ΠΎΠ± ΠΎΡ‚личиях ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½ ΠΎΡ‚ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, врСмя выполнСния ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ DVM-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ процСссорС ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π΅Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ слСдствиСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΡ‡ΠΈΠ½:

Β· Доступ ΠΊ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ Π² ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ отличаСтся ΠΎΡ‚ Π΄ΠΎΡΡ‚ΡƒΠΏΠ° ΠΊ Π½ΠΈΠΌ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы, ΠΏΠΎΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π² ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя Π΅Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π° 10−30 ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΎΠ². Однако Π² ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° такая оптимизация доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ, которая для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΡƒΡΠΊΠΎΡ€Π΅Π½ΠΈΡŽ ΠΈΡ… Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ случаСм.

Β· Врансформация ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Ρ… языках Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ 77 ΠΈΠ»ΠΈ Π‘ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡΠΌ Π² ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ стандартными компиляторами. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π»ΠΈΠ±ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Π»ΠΈΠ±ΠΎ быстрСС. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ соврСмСнными компиляторами сущСствСнно (дСсятки ΠΈ ΡΠΎΡ‚Π½ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΎΠ²) ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΈΡ… Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.

Β· НСкоторыС Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ выполнСния ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ Π΅Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ запроса ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ памяти Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ Π² ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π² Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ слоТныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ создания ΠΈ ΡƒΠ½ΠΈΡ‡Ρ‚оТСния распрСдСлСнного массива).

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ процСссорС (Ссли это нСльзя ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π° ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ Π­Π’Πœ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ это окаТСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ станции), Ρ‚ΠΎ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

ВсС это ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² Π²ΠΈΠ΄Ρƒ, приступая ΠΊ Π°Π½Π°Π»ΠΈΠ·Ρƒ потСрянного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚.

Π‘Π½Π°Ρ‡Π°Π»Π° слСдуСт ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ Ρ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ потСрянного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ уровня (всСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹). НаиболСС вСроятно, Ρ‡Ρ‚ΠΎ основная доля потСрянного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ приходится Π½Π° ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π΄Π²ΡƒΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ (нСдостаточный ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ).

Π’ ΡΠ»ΡƒΡ‡Π°Π΅ Ссли ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ оказался нСдостаточный ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ΡŒ, Π½Π° ΠΊΠ°ΠΊΠΈΡ… участках ΠΎΠ½ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ — ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ…. Π’ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ случаС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ простой — Π½Π΅Π²Π΅Ρ€Π½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ процСссоров ΠΏΡ€ΠΈ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ»ΠΈ Π½Π΅Π²Π΅Ρ€Π½ΠΎΠ΅ распрСдСлСниС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠΉ. Если ΠΆΠ΅ нСдостаточный ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… участках, Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ этого, скорСС всСго, являСтся Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅Π³ΠΎ большой объСм вычислСний. УстранСниС этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… усилий.

Π’ Ρ‚ΠΎΠΌ ΠΆΠ΅ случаС, Ссли основной ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ΠΏΠΎΡ‚Π΅Ρ€ΡŒ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ…арактСристику ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈΠ·-Π·Π° рассинхронизации. Если Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±Π»ΠΈΠ·ΠΊΠΎ ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌ ΠΏΠΎΡ‚Π΅Ρ€ΡŒ ΠΈΠ·-Π·Π° ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ, Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ характСристику разбалансировка, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΠΌΠ΅Π½Π½ΠΎ разбалансировка вычислСний Π² ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅ являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ вСроятной ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ рассинхронизации ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΠΎΡ‚Π΅Ρ€ΡŒ Π½Π° ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΡΡ…. Если Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° разбалансировки Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ мСньшС Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ синхронизации, Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ разброса Π²Ρ€Π΅ΠΌΠ΅Π½ ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Если рассинхронизация Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся слСдствиСм разброса Π²Ρ€Π΅ΠΌΠ΅Π½ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Ρ‚ΠΎ Π΅Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ разбалансировки Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π° Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π΅ΠΌΠΎΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π΅ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π²Π·Π°ΠΈΠΌΠ½ΠΎ ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ характСристик разбалансировки Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°Ρ… Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ вСроятной ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΠΎΡ‚Π΅Ρ€ΡŒ ΠΈΠ·-Π·Π° рассинхронизации ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ рассинхронизация процСссоров, которая Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ Π²Ρ‹Π΄Π°Ρ‡Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°. Π­Ρ‚ΠΎ происходит ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ основная Ρ€Π°Π±ΠΎΡ‚Π° (ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Ρ„ункциям Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы) производится Π½Π° ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π΅ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ процСссоры Π² ΡΡ‚ΠΎ врСмя ΠΆΠ΄ΡƒΡ‚ получСния ΠΎΡ‚ Π½Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π­Ρ‚Ρƒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ ΠΏΠΎΡ‚Π΅Ρ€ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ² Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ характСристики ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ — ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈΠ·-Π·Π° ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅-Π²Ρ‹Π²ΠΎΠ΄Π΅.

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΠΎΡ‚Π΅Ρ€ΡŒ ΠΈΠ·-Π·Π° ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΈ запускС ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ MPI Π½Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ совмСщСниС вычислСний с ΠΎΠ±ΠΌΠ΅Π½Π°ΠΌΠΈ.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Π°Π½Π°Π»ΠΈΠ·Ρƒ характСристик, ΠΊΠΎΠ³Π΄Π° сначала Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ коэффициСнты эффСктивности ΠΈ ΠΏΠΎΡ‚СрянноС врСмя Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°Ρ… ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ уровня, Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ уровня, ΠΈ Ρ‚. Π΄. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ опрСдСляСтся критичСский участок ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½Π° Π°Π½Π°Π»ΠΈΠ· характСристик ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ся основныС усилия. ΠŸΡ€ΠΈ этом Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ΠΏΠΎΡ‚Π΅Ρ€ΡŒ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π΅ ΠΈΠ·-Π·Π° рассинхронизации ΠΈ ΠΏΡ€ΠΎΡΡ‚ΠΎΠ΅Π² ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ разбалансировки ΠΈ Ρ€Π°Π·Π±Ρ€ΠΎΡΡ‹ Π²Ρ€Π΅ΠΌΠ΅Π½ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΡΡ‚ΠΎΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π΅, Π½ΠΎ ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ…, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ²ΡˆΠΈΡ…ΡΡ Π΄ΠΎ Π½Π΅Π³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°Ρ….

ΠŸΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π΅Π΅ Ρ Ρ‚Π΅ΠΌ большим объСмом вычислСний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π΅Π½ для использования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, количСство рСгулярно ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ Π΄ΠΎ ΠΎΠ΄Π½ΠΎΠΉ — Π΄Π²ΡƒΡ… ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ. ΠŸΡ€ΠΈ этом коэффициСнт эффСктивности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, сущСствСнно зависящий ΠΎΡ‚ ΠΏΠΎΡ‚Π΅Ρ€ΡŒ Π½Π° Ρ‚Π΅Ρ… участках ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ послС окончания послСднСй ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒΡΡ. Однако ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° (Π½ΠΎ ΠΏΡ€ΠΈ этом Π½Π°Π΄ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°ΠΌΠΈ ΠΈΠ·-Π·Π° динамичСской ΠΏΠΎΠ΄Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы) ΠΈ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ΅, которая Π±Ρ‹Π»Π° описана Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ.

5. БрСдство Π°Π½Π°Π»ΠΈΠ·Π° эффСктивности MPI ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

5.1 ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

Π’ ΡΠΈΡΡ‚Π΅ΠΌΠ΅ DVM ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π²ΠΈΡ‚Ρ‹Π΅ срСдства Π°Π½Π°Π»ΠΈΠ·Π° эффСктивности выполнСния ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ DVM-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π­Ρ‚ΠΈ срСдства ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹ΠΌΠΈ, Ρ‡Π΅ΠΌ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ для MPI-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²Π°ΠΆΠ½Ρ‹Π΅ характСристики выполнСния MPI-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… вычислСний) Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΠ·-Π·Π° отсутствия Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² Π½Π°ΡΡ‚оящСС врСмя ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ MPI-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Ρƒ Π½Π°Ρ Π² ΡΡ‚Ρ€Π°Π½Π΅ практичСски Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ся ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ срСдства ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ эффСктивности. Π­Ρ‚ΠΎ Π²Ρ‹Π·Π²Π°Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ основными Ρ„Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ: — Ρ€Π°Π·Π½Ρ‹Π΅ срСдства Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Сля знания ΠΈΡ… ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΠΎΠ³ΠΎ интСрфСйса (отсутствиС фактичСского стандарта); - отсутствиСм Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… срСдств Π°Π½Π°Π»ΠΈΠ·Π° эффСктивности Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… Π­Π’Πœ.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Π°ΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ срСдства для получСния характСристик эффСктивности MPI-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π±Ρ‹Ρ‚ΡŒ доступны ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π½Π° Π»ΡŽΠ±Ρ‹Ρ… многопроцСссорных Π­Π’Πœ.

ЦСлью Π΄Π°Π½Π½ΠΎΠΉ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ являСтся созданиС ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ систСмы ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ эффСктивности MPI-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

Π’Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ для Π½Π΅Π΅ Π±ΡƒΠ΄ΡƒΡ‚ трассы, создаваСмыС DVM-систСмой для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ MPI-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π’ ΡΡ‚ΠΈΡ… трассах ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Ρ‹ обращСния ΠΊ MPI-функциям ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π° ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρ‹. Для получСния характСристик, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π΄Π°ΡŽΡ‚ΡΡ для DVM-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΎΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Π° потрСбуСтся Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ информация ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ вычислСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ, Π° ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ (Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ процСссорС). Π­Ρ‚ΠΈ указания Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Ρ‹ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΡ… Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π² MPI-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π΅ ΠΌΠ΅ΡˆΠ°Π»ΠΎ Π΅Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌΡƒ ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌΡƒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ Π½Π° Ρ‚Π΅Ρ… Π­Π’Πœ, Π³Π΄Π΅ отсутствуСт данная систСма ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ эффСктивности MPI-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ„ΠΎΡ€ΠΌΠ»ΡΡ‚ΡŒΡΡ ΠΈ ΡΡ€Π΅Π΄ΡΡ‚Π²Π° описания Ρ‚Π΅Ρ… ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ² выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… трСбуСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ всС характСристики эффСктивности.

Π­Ρ‚Π°ΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°.

Π’ Ρ€Π°Π±ΠΎΡ‚Π΅ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ этапы.

Π­Ρ‚Π°ΠΏ 1

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° трасс со Π²ΡΠ΅Ρ… процСссоров ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ процСссора ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… характСристик:

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ характСристики ΠΈ ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

ΠšΠΎΡΡ„Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚ эффСктивности (Parallelization efficiency) Ρ€Π°Π²Π΅Π½ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΊ ΠΎΠ±Ρ‰Π΅ΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ использования процСссоров.

ВрСмя выполнСния (Execution time).

Число ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… процСссоров (Processors).

ΠžΠ±Ρ‰Π΅Π΅ врСмя использования процСссоров (Total time) — ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния (Execution time) Π½Π° Ρ‡ΠΈΡΠ»ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… процСссоров (Processors).

ПолСзноС врСмя (Productive time) — ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ΅ врСмя выполнСния Π½Π° ΠΎΠ΄Π½ΠΎΠΌ процСссорС

ΠŸΠΎΡ‚Π΅Ρ€ΡΠ½Π½ΠΎΠ΅ врСмя (Lost time).

ΠšΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ (Communication) ΠΈ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΈ (Idle time).

Разбалансировка (Load_Imbalance).

ΠŸΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈΠ·-Π·Π° синхронизации (Synchronization) ΠΈ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

ΠŸΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈΠ·-Π·Π° разброса Π²Ρ€Π΅ΠΌΠ΅Π½ (Time_variation) ΠΈ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

Π₯арактСристики выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ процСссорС

ΠŸΠΎΡ‚Π΅Ρ€ΡΠ½Π½ΠΎΠ΅ врСмя (Lost time) — сумма Π΅Π³ΠΎ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… — ΠΏΠΎΡ‚Π΅Ρ€ΡŒ ΠΈΠ·-Π·Π° нСдостаточного ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° (User insufficient_par), систСмных ΠΏΠΎΡ‚Π΅Ρ€ΡŒ ΠΈΠ·-Π·Π° нСдостаточного ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° (Sys insufficient_par), ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ (Communication) ΠΈ ΠΏΡ€ΠΎΡΡ‚ΠΎΠ΅Π² (Idle time).

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΈ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ процСссорС (Idle time) — Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ выполнСния ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° (Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ процСссорС) ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Π΅Π³ΠΎ выполнСния Π½Π° Π΄Π°Π½Π½ΠΎΠΌ процСссорС.

ΠžΠ±Ρ‰Π΅Π΅ врСмя ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ (Communication).

Π Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈΠ·-Π·Π° рассинхронизации (Real synchronization).

ΠŸΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈΠ·-Π·Π° разброса Π²Ρ€Π΅ΠΌΠ΅Π½ (Variation).

Разбалансировка (Load_imbalance) вычисляСтся ΠΊΠ°ΠΊ Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ процСссорным Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ (CPU+MPI) ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ процСссорС.

ВрСмя выполнСния ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° (Execution_time).

ПолСзноС процСссорноС врСмя (User CPU_time).

ПолСзноС систСмноС врСмя (MPI time).

Число ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… процСссоров для Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° (Processors).

Π’Ρ€Π΅ΠΌΠ΅Π½Π° ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ для всСх Ρ‚ΠΈΠΏΠΎΠ² ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ

Π Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈΠ·-Π·Π° рассинхронизации для всСх Ρ‚ΠΈΠΏΠΎΠ² ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

ΠŸΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈΠ·-Π·Π° рассинхронизации для всСх Ρ‚ΠΈΠΏΠΎΠ² ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

ΠŸΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈΠ·-Π·Π° разброса Π²Ρ€Π΅ΠΌΠ΅Π½ для всСх Ρ‚ΠΈΠΏΠΎΠ² ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

Π­Ρ‚Π°ΠΏ 2

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° тСкстового прСдставлСния вычислСнных характСристик. Π’Π°ΠΊΠΎΠ΅ прСдставлСниС ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· характСристик ΠΏΡ€ΠΈ запускС ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π­Π’Πœ.

Π­Ρ‚Π°ΠΏ 3

Визуализация Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π°Π½Π°Π»ΠΈΠ·Π° эффСктивности.

ΠŸΠΎΠ΄ΡΠΈΡΡ‚Π΅ΠΌΠ° Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ графичСскоС прСдставлСниС вычислСнных характСристик эффСктивности ΠΈ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΈΡ… ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ — ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ с Ρ€Π°Π·Π½ΠΎΠΉ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒΡŽ подробности ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΎΠ±ΡŠΡΡΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Π±Ρ‹Π»ΠΈ вычислСны Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Π΅ характСристики.

5.3 Устройство Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°

Π˜Ρ‚Π°ΠΊ, Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ состоит ΠΈΠ· Ρ‚Ρ€Π΅Ρ… основных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚.

ΠŸΠ΅Ρ€Π²Π°Ρ — сбор ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ‚рассС. Вторая — Π°Π½Π°Π»ΠΈΠ· собранных Π΄Π°Π½Π½Ρ‹Ρ…. Π’Ρ€Π΅Ρ‚ΡŒΡ — визуализация.

5.3.1 Π‘Π±ΠΎΡ€ трассы

ΠŸΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запускС ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ трассировки, создаСтся Π³Ρ€ΡƒΠΏΠΏΠ° Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎΠ±ΠΎ всСх ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… событиях Π² Ρ‚рассС. Π’ΡƒΡ‚ Π΅ΡΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π° ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ всСх событий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅Π»ΠΈ мСсто ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. К ΡΡ‚ΠΈΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ доступа Ρ‡Π΅Ρ€Π΅Π· ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ интСрфСйса. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ для Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† (ΠΈΠΌΠ΅Π½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, исходных Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Ρ‚. ΠΏ.).

Π”Π°Π»Π΅Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Π½Π° Π²Ρ…ΠΎΠ΄ модулям Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ ΡΠ±ΠΎΡ€Π° характСристик.

5.3.2 Анализ

Π’ ΡΠΎΠΎΡ‚вСтствии с ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ Π² ΠΏΡƒΠ½ΠΊΡ‚Π΅ 4.2 ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΎΠΉ, вся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π±ΠΈΡ‚Π° Π½Π° ΡΠΈΡΡ‚Π΅ΠΌΡƒ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ², Ρ‚ΠΎΡ‡Π½Π΅Π΅ Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ². ΠšΠΎΡ€Π½Π΅ΠΌ Π΄Π΅Ρ€Π΅Π²Π° Π±ΡƒΠ΄Π΅Ρ‚ вся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΎΠ½Π° считаСтся ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠΌ Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ уровня.

Π”Π°Π»Π΅Π΅ Π² ΡΠΎΠΎΡ‚вСтствии с Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Ρ‹ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ уровня ΠΈ Ρ‚. Π΄.

Как ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ²?

Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ MPI_Send () ΠΈ MPI_Recv () для указания Π½Π°Ρ‡Π°Π»Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°, ΠΈ Ρ‚акая ΠΆΠ΅ ΠΏΠ°Ρ€Π° для указания Π΅Π³ΠΎ окончания. ΠŸΡ€ΠΈ этом посылка ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌ сообщСния происходят самому сСбС ΠΈ ΠΎΡ‚ ΡΠ°ΠΌΠΎΠ³ΠΎ сСбя (имССтся Π²Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π½ΠΎΠΌΠ΅Ρ€Π° отправитСля/получатСля ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½ΠΎΠΌΠ΅Ρ€ самого процСсса). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, тэг сообщСния ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

TAG = 0x (aa)(id)(aa/bb).

Вэг являСтся Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ…Π±Π°ΠΉΡ‚Π½Ρ‹ΠΌ Ρ†Π΅Π»Ρ‹ΠΌ числом. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π±Π°ΠΉΡ‚ Ρƒ «Π½Π°ΡˆΠ΅Π³ΠΎ» тэга — это 0xaa. Π­Ρ‚ΠΎ позволяСт ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… посылок/ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠ² сообщСний. ПослСдний Π±Π°ΠΉΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ 0xaa — символизируСт Π½Π°Ρ‡Π°Π»ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°, 0xbb — ΠΊΠΎΠ½Π΅Ρ† ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°. Π’Π½ΡƒΡ‚Ρ€ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° (2 Π±Π°ΠΉΡ‚Π°), Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π°.

Π’Π°ΠΊΠΎΠΉ способ выдСлСния Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ:

Β· ΠΎΠ½ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² Ρ‚рассировку (Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ€ΠΎΠ΄Π΅ MPI_Pcontrol () Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсии трассировщика Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚).

Β· Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (порядка 100 Ρ‚ΠΈΠΊΠΎΠ² процСссора).

Β· прост Π² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… срСдств, ΠΏΠΎΠΌΠΈΠΌΠΎ стандартных MPI-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, программист ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΡ… Π΅Π³ΠΎ областСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Π² Π½Π°ΡˆΠ΅ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Ρ‹).

Π”Π°Π»Π΅Π΅ ΠΏΠΎ ΡΡ‚ΠΈΠΌ тэгам срСди всСх событий Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ² ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΈΡ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹.

Для этого вводится ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ класс:

class Margin

{

public:

Margin (bool, unsigned long, int, unsigned int, int);

friend bool operator <(const Margin& s1, const Margin& s2)

bool enter_leave;

unsigned long time;

int identity;

unsigned int proc;

unsigned int scl;

};

И Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ:

vector<Margin>* createMargins(void);

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ