PVM-де жұмыс. Ағындарды құру және PVM-де мәліметтерді параллель
өңдеу.
Жұмыстың мақсаты: PVM - параллельді виртуальді машинасының жұмыс
жасау принципімен танысу, хабарламаларды беру және процессті
синхронизациялауға арналған кітапханалармен жұмыс жасау.
Материалдар және жабдықтар: ДК, параллельді есептеулер программалау
ортасы, PVM кітапханасы.
Жұмыстың мазмұны және орындалу тәртібі:
1.
PVM жүйесін қондыру (1-әдіс).
Linux ОЖ-мен жұмыс жасайтын компьютерге PVM жүйесін қондыру үшін
бума құру керек, мысалы /pvm3 бумасы құрылсын. Осы бумада tar zxvf
pvm3.3.4.tgz архивтелген файлын ашу керек. PVM қосылу үшін
$PVM_ROOT
айнымалысына буманың жолын көрсету керек. Командалық қабықша ретінде
csh қолданылса,
.cshrc файлына келесі командалық жолды қосу керек:
setenv PVM_ROOT=/pvm3
Егер командалық қабықша ретінде sh немесе ksh қолданылса, онда .profile
файлына келесі командалық жолды қосу керек:
export PVM_ROOT=/pvm3
2-әдіс. pvm_spawn() функциясы үшін орындалатын файл қатаң түрде бумада
сақталынады. Linux ОЖ-де мына каталогтар пайдаланылады:
$PVM_ROOT/bin/$PVM ARCH/ және
$HOME/pvm3/bin/$PVM_ ARCH,
PVM_ROOT/ usr/local/pvm/current
PVM-де орындалу үшін aimk қолданылады, сонда master және slave
компиляцияланады және байланысады.
PVM-ді іске қосу үшін pvmd.exe –даемонды пайдалану керек. Жаңа
компьютерлер қосу керек: addhost <хост аты>. Тапсырманы орындау үшін
spawn-> командасы орындалады (консольдық режим). PVM-ді
тоқтату exit командасының көмегімен жүзеге асады.
PVM іске қосу үшін, әрі қарай make командасы орындалады да, PVM
жүйесінде жұмысты бастауға болады.
PVM-де есептерді басқару белгілі бір функциялар негізінде жүргізіледі.
Алдымен, call pvmfmytid( tid ) функциясы шақырылады, ол идентификатор
мәнін tid >= 0 қайтарады.
Әрі қарай есептің қалған бөлімдері басқа процессорларда орындалады. Ол
мына функциялардың көмегімен іске асады:
call pvmfspawn( task, flag, where, ntask, tids, numt )
task - орындалатын файл аты;
INTEGER flag - іске қосу опциясы;
where - іске қосылатын орын;
INTEGER ntask – орындалатын программалар саны;
INTEGER tids - мәндер массиві.
call pvmfkill( tid, info )- tid идентификаторымен жұмысты аяқтайды.
call pvmfexit( info ) - PVM жұмысын аяқтайды.
Хабарлама жіберерден бұрын оны мына функциялар көмегімен
буферге орналастыру керек:
pvm_initsend (int encoding) – үнсіз келісім бойынша инициализациялайды;
pvmrnkbuf (int encoding) – хабарламаны орналастыратын жаңа буфер
құрып, идентификаторды қайтарады;
pvm_setsbuf (int bufid) – ағымдағы буферді хабарлама жіберуге дайындайды;
tid – хабарлама жіберетін есеп идентификаторы;
msgtag – осы хабарлама тэгі;
startAddress – бірінші бүтін сан адресі;
nlnts – бүтін сандар саны;
Достарыңызбен бөлісу: