Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈ распрСдСлСнноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π‘++Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 10

Автор Π₯ьюз ΠšΠ°ΠΌΠ΅Ρ€ΠΎΠ½

β€’Β Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ POSIX Threads (ΠΈΠ»ΠΈ Pthreads);

β€’Β POSIX-Π²Π΅Ρ€ΡΠΈΡŽ spawn ();

‒ сСмСйство Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ exec ().

ВсС эти срСдства ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ систСмными API-функциями ΠΈ систСмными Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ. Если опСрационная систСма ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ 3-ΠΉ вСрсии Π½ΠΎΠ²ΠΎΠ³ΠΎ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ стандарта UNIX, Ρ‚ΠΎ Π‘++-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Π±ΡƒΠ΄ΡƒΡ‚ доступны эти API-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (ΠΎΠ½ΠΈ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Π³Π»Π°Π²Π°Ρ… Π— ΠΈ 4 ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… этой ΠΊΠ½ΠΈΠ³ΠΈ). Помимо Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ систСмного уровня, для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° Π² Π‘++ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ уровня, ΠΊΠ°ΠΊ MPI (Message Passing Interface β€” интСрфСйс для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний), PVM (Parallel Virtual Machine β€” ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Π°Ρ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина) ΠΈ CORBA (Common Object Request Broker Architecture β€” тСхнология построСния распрСдСлСнных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ).

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ MPI

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ MPI β€” стандартная спСцификация Π½Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ сообщСний β€” Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ с Ρ†Π΅Π»ΡŒΡŽ достиТСния высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ… с массовым ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠΎΠΌ ΠΈ кластСрах Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… станций (рабочая станция β€” это сСтСвой ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ рСсурсы сСрвСра). Π’ этой ΠΊΠ½ΠΈΠ³Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ MPICH-рСализация стандарта MPI. MPICH β€” это свободно распространяСмая пСрСносимая рСализация интСрфСйса MPI. MPICH прСдоставляСт Π‘++-программисту Π½Π°Π±ΠΎΡ€ API-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ MPI особСнно ΠΏΠΎΠ»Π΅Π·Π΅Π½ для программирования ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ SPMD (Single-Program, Multiple Data - ΠΎΠ΄Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° , нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…) ΠΈ MPMD (Multiple-Program, Multiple-Data β€” мноТСство ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, мноТСство ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…). Авторы этой ΠΊΠ½ΠΈΠ³ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ MPICH-Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MPI для 32-ΡƒΠ·Π»ΠΎΠ²ΠΎΠ³ΠΎ Linux-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ кластСра ΠΈ 8-ΡƒΠ·Π»ΠΎΠ²ΠΎΠ³ΠΎ кластСра, управляСмого ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ систСмами Linux ΠΈ Solaris. И хотя Π² Π‘++ Π½Π΅Ρ‚ встроСнных ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ² ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования, Π‘++-программист ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ срСдствами обСспСчСния ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°, прСдоставляСмыми Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ MPICH. Π’ этом ΠΈ состоит ΠΎΠ΄Π½ΠΎ ΠΈΠ· достоинств языка Π‘++, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π΅Π³ΠΎ фантастичСской гибкости.

PVM: стандарт для кластСрного программирования

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ PVM позволяСт ΡΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒ Π³Π΅Ρ‚Π΅Ρ€ΠΎΠ³Π΅Π½Π½ΡƒΡŽ (Π½Π΅ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½ΡƒΡŽ) ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² Π² ΡΠ΅Ρ‚ΡŒ для использования Π΅Π΅ Π² качСствС Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ ΠΌΠΎΡ‰Π½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. ΠžΠ±Ρ‰Π°Ρ Ρ†Π΅Π»ΡŒ PVM-систСмы β€” ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. РСализация Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ PVM ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚:

β€’Β Π³Π΅Ρ‚Π΅Ρ€ΠΎΠ³Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌ, сСтям ΠΈ прилоТСниям;

β€’Β ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΡƒΡŽ модСль ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний;

β€’Β ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° основС выполнСния процСссов;

β€’Β ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… (MPP, SMP) [5];

β€’Β Β«ΠΏΠΎΠ»ΡƒΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΉΒ» доступ ΠΊ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΡŽ (Ρ‚.Π΅. прилоТСния ΠΌΠΎΠ³ΡƒΡ‚ Π»ΠΈΠ±ΠΎ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ прСимущСства Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ Π² Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… срСдствах);

‒ динамичСски настраиваСмый ΠΏΡƒΠ» (процСссоры ΠΌΠΎΠ³ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒΡΡ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒΡΡ динамичСски, Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡ… ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ состав).

PVM β€” это самая простая (ΠΏΠΎ использованию) ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ гибкая срСда, доступная для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ примСнСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ², Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм. PVM-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° особСнно ΠΏΠΎΠ»Π΅Π·Π½Π° для объСдинСния Π² ΡΠ΅Ρ‚ΡŒ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… однопроцСссорных систСм с Ρ†Π΅Π»ΡŒΡŽ образования Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ с ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌΠΈ процСссорами. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ использования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ PVM Π² Π‘++-ΠΊΠΎΠ΄Π΅ ΠΌΡ‹ рассмотрим Π² Π³Π»Π°Π²Π΅ 6. PVM β€” это фактичСский стандарт для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π³Π΅Ρ‚Π΅Ρ€ΠΎΠ³Π΅Π½Π½Ρ‹Ρ… кластСров, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»Π΅Π³ΠΊΠΎ доступСн ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ распространСн. PVM прСкрасно ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования MPMD (MIMD) ΠΈ SPMD (SIMD). Авторы этой ΠΊΠ½ΠΈΠ³ΠΈ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΈ срСдних ΠΏΠΎ ΠΎΠ±ΡŠΠ΅ΠΌΡƒ Π·Π°Π΄Π°Ρ‡ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ PVM-Π±ΠΈΠ±Π»ΠΈoΡ‚eΠΊy, Π° для Π±ΠΎΠ»Π΅Π΅ слоТных ΠΈ ΠΎΠ±ΡŠΠ΅ΠΌΠ½Ρ‹Ρ… β€” MPI-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ. ОбС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ PVM ΠΈ MPI ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΡΠΎΡ‡Π΅Ρ‚Π°Ρ‚ΡŒ с Π‘++ для программирования кластСров.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ CORBA

CORBAβ€” это стандарт для распрСдСлСнного кроссплатформСнного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования. Π’Ρ‹ΡˆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ CORBA для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ стандарта CORBA ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ°Π³Π΅Π½Ρ‚Π½Ρ‹Ρ… систСм. ΠœΡƒΠ»ΡŒΡ‚ΠΈΠ°Π³Π΅Π½Ρ‚Π½Ρ‹Π΅ систСмы ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ Π²Π°ΠΆΠ½Ρ‹Π΅ сСтСвыС ΠΌΠΎΠ΄Π΅Π»ΠΈ распрСдСлСнного программирования с Ρ€Π°Π²Π½ΠΎΠΏΡ€Π°Π²Π½Ρ‹ΠΌΠΈ ΡƒΠ·Π»Π°ΠΌΠΈ (peer-to_peer). Π’ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ°Π³Π΅Π½Ρ‚Π½Ρ‹Ρ… систСмах Ρ€Π°Π±ΠΎΡ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ. Π­Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· областСй, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈ распрСдСлСнноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ. НСсмотря Π½Π° Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ Π°Π³Π΅Π½Ρ‚Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ…, это происходит Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‚.Π΅. Π°Π³Π΅Π½Ρ‚Ρ‹ совмСстно Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π°Π΄ ΠΎΠ±Ρ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ CORBA обСспСчиваСт ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡƒΡŽ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡƒΡŽ ΠΎΡ‚ изготовитСля Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ ΠΈ инфраструктуру, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Π΅ прилоТСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ для совмСстного функционирования Π² сСти. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ стандартный ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» IIOΠ  (Internet InterORB Protocol β€” ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ сообщСний ΠΌΠ΅ΠΆΠ΄Ρƒ сСтСвыми ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΏΠΎ TCP/IP), CORBA-ориСнтированная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° (созданная Π»ΡŽΠ±Ρ‹ΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ Π½Π° любом языкС программирования, выполняСмая практичСски Π½Π° любом ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ любой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Π² любой сСти) ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π΄Ρ€ΡƒΠ³ΠΎΠΉ CORBA-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ (созданной Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ Π½Π° любом Π΄Ρ€ΡƒΠ³ΠΎΠΌ языкС программирования, выполняСмой практичСски Π½Π° любом ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ любой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Π² любой сСти). Π’ этой ΠΊΠ½ΠΈΠ³Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ MICO-Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ стандарта CORBA. MICOβ€” свободно распространяСмая ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ трСбованиям рСализация стандарта CORBA, которая ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ язык Π‘++.

Π Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π½Π° основС стандартов

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MPICH, PVM, MICO ΠΈ POSIX Threads Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π½Π° основС стандартов. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ПО ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ эти Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ доступны ΠΈ пСрСносимы с ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ. Π­Ρ‚ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ПО Π²ΠΎ всСм ΠΌΠΈΡ€Π΅. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ POSIX Threads ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с Π‘++ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ программирования. Если ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° выполняСтся Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ с нСсколькими процСссорами, Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ процСссорС, Ρ‡Ρ‚ΠΎ позволяСт Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ программирования. Если ΠΆΠ΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ процСссор, Ρ‚ΠΎ иллюзия ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° обСспСчиваСтся Π·Π° счСт процСсса ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ контСкстов. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° POSIX Threads позволяСт Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, самый простой способ ввСдСния ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° Π² Π‘++-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Если для использования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ MPICH, PVM ΠΈ MICO Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ ΠΎΠ± ΠΈΡ… установкС, Ρ‚ΠΎ Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ POSIX Threads это излишнС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ срСда любой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, которая согласована с POSIX-стандартом ΠΈΠ»ΠΈ Π½ΠΎΠ²ΠΎΠΉ спСцификациСй UNDC (вСрсия 3), оснащСна Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ POSIX Threads. ВсС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ различия. Π’ Ρ‚Π°Π±Π». 1.2 ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с Π‘++.

Π’Π°Π±Π»ΠΈΡ†Π° 1.2. ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ MPICH, PVM, MICO ΠΈ POSIX Threads с Π‘++

MPICH Β ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±Π½ΠΎΠ΅ слоТноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ кластСров. ΠŸΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΌΠΎΠ΄Π΅Π»ΠΈ SPMD. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ SMP-, MPP- ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ

PVM ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ кластСрноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π³Π΅Ρ‚Π΅Ρ€ΠΎΠ³Π΅Π½Π½Ρ‹Ρ… срСд. Π›Π΅Π³ΠΊΠΎ

ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΎΠ΄Π½ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… (ΠΌΠ΅Π»ΠΊΠΎ- ΠΈ ΡΡ€Π΅Π΄Π½Π΅ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Ρ…) ._____кластСрных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ МРР-ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈΒ .

MICO ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈ распрСдСлСнноС, ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ эффСктивныС срСдства ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π°Π³Π΅Π½Ρ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ°Π³Π΅Π½Ρ‚Π½ΠΎΠ³ΠΎ программирования

POSIX ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π°