Pvm-ді орындау үшін master және slave-ті компиляциялап және байланыстыру үшін aimk қолдану керек.
Pvm-ді жіберу үшін pvmd.exe – да менін қолдану керек. Жаңа компьютерлерді қосу керек: addhost<хостатауы>.Тапсырманы орындау үшін spawn-> , консольдық режимде теріп орындау керек. PVM-дітоқтату exit командасымен орындалады.
MPI – хабар беру интерфейсі MPI параллель программалаудың алғашқы құралдарының бірі. MPI кітапханасын қолданғанда торап үлестірілген программалар процессі С және Fortran сияқты тізбекті программалар тілдерінде жазылады. Процесстердің өзара әрекеті және оларды синхрондау MPI кітапханасына процедураларын шақыру көмегімен беріледі.
MPI қосымшаларын программалау интерфейсін 90-жылдардың ортасында университеттер,үкімет және өндіріс ұйымдарының жобалау топтары құрған.Мақсат- әртүрлі көп процессорлы машиналарда тиімді жүзеге асыратын бірдей кітапхана жасау.Бүгінгі күні MPI стандартқа айналды.
MPI кітапханасын қолданушы программаның SPMD стилі болады. Ол алдыңғы тауарларда сипатталған. Берілген жағдайда әрбір процесс бір ғана программаның көшірмесін орындайды. Программаның әрбір экземпляры MPI кітапханасының функцияларын шақыру арқылы өзара әрекеттеседі, олар процесстер, топтар және қоршаған ортаның өзара әрекеттерін қамтамасыз етеді.
MPIфункционалдық сұраулардың кейбіреулерін қарастырамыз.
MPIInit-MPIкітапханасын инициализациялайды және программаға беретін командалық жолдың аргументерінің көшірмесін қайтарады.Нәтижесінде жіберілген процесстер жиыны инициаланады.
MPI Comm size- жіберілетін процесстер санын анықтайды.
MPI Send- процестің процесс рангін(идентификатор) анықтайды.0-ден1-гедейінгісандар бола алады.
MPI Recv- хабарды беруді бұғаттау.Басқа процесске хабар береді.
MPI Finalize-MPI кітапханасын«алыптастайды»және процессті аяқтайды.
MPI Send және MPI Recv кітапханаларын толығырақ қарастырайық:
Int MPI Send(void*buf, intcount, MPI DatatypedataType, intdest, inttag, MPIComm comm)
Мұндағы buf,-буфер адресінің басы, count-жіберілетін элементтер саны;dataType-әрбір элемент типі,мысалы: MPIInt, MPIDouble, MPIChar,жәнет.б.; dest-адресат рангісі; tag-хабартэгі; comm.-коммуникатор.
IntMPI Recv (void*buf, intcount, MPI DatatypedataType, intsource, inttag, MPIComm comm, MPIStatus*status) Мұндағы status-қайтару күнін қайтарады, source-беретін процессидентификаторы немесе«немқұрайлы»; tag- хабар белгісі;қалған аргументтер MPI Send процедурасында сипатталған сияқты.
MPI кітапханасының көмегімен екі процесс арасындағы мәндерді алмастыру программасының бірін келтіреміз.
#include #include main(int argc, char*argv[]) Int myid,otherid,size; Int length=1, tag=1; Int myvalue, othervalue; MPI Status status; MPIInt MPIComm MPIComm