ΠΠ»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΠΏΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΠΌΠΎΠ΄Π΅Π»ΠΈ PRAM. Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° EREW (ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ΅Π΅ ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ°Ρ Π·Π°ΠΏΠΈΡΡ) ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΡΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΌΠ°ΡΠΎΡΠ°. ΠΡΡΡΠ΅ΠΊΡΠ½ΡΠΉ ΡΠ΅ΠΌΠ°ΡΠΎΡ Π·Π°ΡΠΈΡΠ°Π΅Ρ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°Π·Π΄Π΅Π», ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π» ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ Π²Ρ ΠΎΠ΄ Π² Π½Π΅Π³ΠΎ. ΠΡΠ° ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ Π»ΠΈΠ±ΠΎ Π΄ΠΎΡΡΡΠΏ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ, Π»ΠΈΠ±ΠΎ Π΄ΠΎΡΡΡΠΏ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ. Π‘ΡΠ°Π½Π΄Π°ΡΡ POSIX ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΌΡΡΡΠ΅ΠΊΡΠ½ΡΠΉ ΡΠ΅ΠΌΠ°ΡΠΎΡ ΡΠΈΠΏΠ° pthread_mutex_t , ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ° EREW. Π§ΡΠΎΠ±Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° CREW (ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ°Ρ Π·Π°ΠΏΠΈΡΡ), ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΠ΅Π½ΠΈΡ-Π·Π°ΠΏΠΈΡΠΈ. Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° CREW ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠ΅Π½ΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π° ΡΡΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΠΏΡΠΈ ΠΌΠΎΠ½ΠΎΠΏΠΎΠ»ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π΄Π°Π½Π½ΡΡ . Π‘ΡΠ°Π½Π΄Π°ΡΡ POSIX ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠ΅Π½ΠΈΡ-Π·Π°ΠΏΠΈΡΠΈ ΡΠΈΠΏΠ° pthread_rwlock_t , Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΡΡΠΎΠΈΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π² ΠΎΠ±ΡΠ΅ΠΊΡ Π΄Π°Π½Π½ΡΡ .
ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ C++ ΡΡΠ΅Π΄ΡΡΠ² Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ PVM
ΠΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΠ»ΠΈ Π½Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π° Π΄Π²Π΅ ΡΠ°ΡΡΠΈ: ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΡΠΈ Π΄Π²Π΅ ΡΠ°ΡΡΠΈ ΠΎΡΡΠ°ΡΡΡΡ ΡΠ΅ΡΠ½ΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌΠΈ. ΠΠ΅Π»ΡΠ·Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ, ΡΡΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ ΡΠ΄Π°ΡΠ½ΠΎΠΉ Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΆΠ΅ ΠΏΠΎΠΏΡΡΠΊΠΈ. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΊΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΉΠ΄Π΅Ρ ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ... ΠΠ»Π°Π½ Π’ΡΡΡΠΈΠ½Π³ (Alan Turing), ΠΠΎΠΆΠ΅Ρ Π»ΠΈ ΠΌΠ°ΡΠΈΠ½Π° Π΄ΡΠΌΠ°ΡΡ?
Π‘ΠΈΡΡΠ΅ΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌ ΠΌ Π½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ PVM (Parallel Virtual Machine β ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½Π°Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌ Π°ΡΠΈΠ½Π°) ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ ΠΠ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ. Π‘ΠΈΡΡΠ΅ΠΌΠ° PVM ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² Π² Π²ΠΈΠ΄Π΅ Π΅Π΄ΠΈΠ½ΠΎΠΉ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°. ΠΠΎΠΌΠΏΡΡΡΠ΅ΡΡ ΡΡΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ ΠΈΠ»ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ. Π PVM-ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π΄Π°ΠΆΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ MPP (Massively Parallel Processor β ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Ρ ΠΌΠ°ΡΡΠΎΠ²ΡΠΌ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠΎΠΌ). ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ ΡΡΠΎ PVM-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠ³ΡΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°, ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠΎΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΈ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠΈ Π΄Π²ΡΡ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ².
6.1. ΠΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ PVM
Π‘ΠΈΡΡΠ΅ΠΌΠ° PVM Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΌΠΈΡΡ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Ρ PVM ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ, ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΡΠΈΠ³Π½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈ Ρ.Π΄. Π‘++-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Ρ PVM-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Ρ Π»ΡΠ±ΡΠΌΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ. Π‘++-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΡΠ½ΠΊΡΠΈΡΠΌ Π VM-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠΎΡΠΌΡ ΠΈΠ»ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ,Π² ΡΠΎ Π²ΡΠ΅ΠΌ Ρ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΌ Π½Π° Π΄ΡΡΠ³ΠΈΡ Ρ Π·ΡΠΊΠ°Ρ , Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ΅Π΄Ρ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π‘++-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡΠ΅ΡΠ°ΡΡ PVM-Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΠΈΠ»ΡΠΌΠΈ Π‘++-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΌ, Π°Π³Π΅Π½ΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΈ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ). ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΠΊΠ°ΠΊ PVM, MPI ΠΈΠ»ΠΈ Linda, Π‘++-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ·ΡΠΊΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π°ΠΌΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΡΡΠΎΠ΅Π½Ρ Π² ΡΠ°ΠΌΠΈ ΡΠ·ΡΠΊΠΈ. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° PVM ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ, ΠΏΠΎΠΆΠ°Π»ΡΠΉ, ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΡΠ΅Π΄ΡΡΠ² ΡΠ·ΡΠΊΠ° Π‘++ Π·Π° ΡΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ PVM
Π‘ΠΈΡΡΠ΅ΠΌΠ° PVM ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ MIMD (Multiple-Instruction, Multiple-Dataβ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄, ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π΄Π°Π½Π½ΡΡ ) ΠΈ SPMD (Single-Program, Multiple-Data β ΠΎΠ΄Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π΄Π°Π½Π½ΡΡ ) ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°. Π Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ SPMD β ΡΡΠΎ Π²Π°ΡΠΈΠ°Π½Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ SIMD (Single-Instruction, Multiple-Data β ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π΄Π°Π½Π½ΡΡ ). ΠΡΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΏΠΎΡΠΎΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Π΄Π°Π½Π½ΡΡ . Π ΠΌΠΎΠ΄Π΅Π»ΠΈ MIMD ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄, ΠΏΡΠΈΡΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΈΠ· Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π΄Π°Π½Π½ΡΡ . ΠΠΎ ΡΡΡΠΈ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π·Π΄Π΅ΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ. Π PVM-ΡΡΠ΅Π΄Π΅ ΠΌΠΎΠ΄Π΅Π»Ρ MIMD ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΌΠΎΠ΄Π΅Π»ΡΡ Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΡΡ (Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ ΠΎΠ±ΡΠ΅ΠΉ ΠΏΠ°ΠΌΡΡΡΡ). Π ΠΌΠΎΠ΄Π΅Π»ΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΉ ΠΏΠ°ΠΌΡΡΡΡ Π²ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ Β«Π²ΠΈΠ΄ΡΡΒ» ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ ΡΡΠ΅ΠΉΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ. Π ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΡΡ ΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ Ρ ΡΠ°Π½ΠΈΠΌΡΠΌΠΈ Π² Π½Π΅ΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΠΎΠ΄Π΅Π»Ρ SPMD ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ , ΠΏΡΠΈΡΠ΅ΠΌ ΡΡΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ Π½Π° Π²ΡΠ΅Ρ ΠΌΠ°ΡΠΈΠ½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π΄Π°Π½Π½ΡΡ . PVM-ΡΡΠ΅Π΄Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΊΠ°ΠΊ MIMD-, ΡΠ°ΠΊ ΠΈ SIMD-ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΠ»ΠΈ ΠΈΡ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅. Π§Π΅ΡΡΡΠ΅ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ Π½Π° ΡΠΈΡ. 6.1.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ SISD ΠΈ MISD (ΡΠΌ. ΡΠΈΡ.6.1) Π½Π΅ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ΅ PVM. ΠΠΎΠ΄Π΅Π»Ρ SISD ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΎΠ΄Π½ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ, Π° Π΄Π»Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ MISD Π²ΠΎΠΎΠ± Ρ Π΅ ΡΡΡΠ΄Π½ΠΎ Π½Π°ΠΉΡΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅. ΠΠ²Π΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ PVM, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ, ΠΊΠ°ΠΊ Π‘++-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°ΠΌΠΈ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΠ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠ΄ΠΈΠ½ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ ΠΊΠ°ΠΊ ΡΡΠ΅Π΄Ρ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ Π·Π°Π΄Π°Ρ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ Π΄Π°Π½Π½ΡΠΌ, Π»ΠΈΠ±ΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ΅ΠΉΡΡ Π² Π²ΠΈΠ΄Π΅ Π½Π°Π±ΠΎΡΠ° ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ ΠΊΠ»ΠΎΠ½ΠΎΠ², ΠΏΠΎΠ»ΡΡΠ°Ρ Ρ ΠΈΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΠΎΠ±Π»Π°ΡΡΡΠΌ Π΄Π°Π½Π½ΡΡ . Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Ρ PVM-Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ ΠΌΡ Π±ΡΠ΄Π΅Ρ ΡΠ²ΡΠ·ΡΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ Ρ ΠΈΠ΅ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌ ΠΌ Ρ.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° PVM Π΄Π»Ρ ΡΠ·ΡΠΊΠ° Π‘++
Π ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌ PVM ΠΈΠ· Π‘++-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ Ρ ΠΏΠΎΠΌΠΎ Ρ ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΡΡΠ΅Π΄ΠΎΠΉ PVM. ΠΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ PVM ΠΎΠ±ΡΡΠ½ΠΎ Π΄Π΅Π»ΡΡ Π½Π° ΡΠ΅ΠΌΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ.
β’Β Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ.
β’Β Π£ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ΡΠΎΠΎΠ± Ρ Π΅Π½ΠΈΠΉ ΠΈ ΠΈΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠ°.
β’Β Π Π°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ΡΠΎΠΎΠ± Ρ Π΅Π½ΠΈΠΉ ΠΈ ΠΈΡ ΠΏΡΠΈΠ΅ΠΌ.
β’Β ΠΠ±ΠΌΠ΅Π½ Π·Π°Π΄Π°Ρ ΡΠΈΠ³Π½Π°Π»Π°ΠΌΠΈ.
β’Β Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π±ΡΡΠ΅ΡΠΎ ΠΌ ΡΠΎΠΎΠ± Ρ Π΅Π½ΠΈΠΉ.
β’Β Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΠΎΡ ΠΌ Π°ΡΠΈΠΈ ΠΈ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ.
β’Β ΠΡΡΠΏΠΏΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
ΠΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π»Π΅Π³ΠΊΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ Π² Π‘++ ΡΡΠ΅Π΄Ρ. ΠΡΠ΅ΡΠΈΠΊΡ pvm_ Π² ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π΅ Π·Π°Π±ΡΡΡ ΠΎ Π΅Π΅ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Ρ ΠΈΠΌΠ΅Π½. ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ PVM-ΡΡΠ½ΠΊΡΠΈΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» pvm3 . h ΠΈ ΡΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Π°ΡΡ Π΅Π΅ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ libpvm. Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ 6.1 ΠΈ 6.2 Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅ΡΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠΎΡΡΠ°Ρ PVM-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°. ΠΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ 6.1 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«ΠΡΠΎΡΠΈΠ»Ρ ΠΏΡΠΎΠ³ΡΠ° ΠΌΠΌ Ρ 6.1Β».
// ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° 6.1
#include Β«pvm3.hΒ» #include <iostream> #include <string.h>
int main(int argc,char *argv[]) {
int RetCode,MessageId;
int PTid, Tid;
char Message[100j;
float Result[l];
PTid = pvm_mytid();
RetCode = pvm_spawn(Β«program6-2Β»,NULL,0,''",l,&Tid);
if(RetCode == 1){
MessageId = 1;
strcpy(Message,Β«22Β»);
pvm_initsend(PvmDataDefault);
pvm_pkstr(Message);
pvm_send(Tid,MessageId);
pvm_recv(Tid,MessageId);
pvm_upkfloat(Result,1,1);
cout Β« Result[0] Β« endl;
pvm_exit();
return(0) ;
}
else{
cerr << Β«ΠΠ°Π΄Π°ΡΡ ΠΏΠΎΡΠΎΠ΄ΠΈΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. " Β« endl;
pvm_exit();
return(1) ;