Оқулық Қазақстан Республикасы Білім және ғылым министрлігі бекіткен Алматы, 2011



Pdf көрінісі
бет105/121
Дата31.08.2022
өлшемі2,81 Mb.
#38343
түріОқулық
1   ...   101   102   103   104   105   106   107   108   ...   121
time_start = MPI_WTIME(ierr)
do it = 1, NTIMES 
call 
MPI_BARRIER(MPI_COMM_WORLD,ierr) enddo 
time_finish = MPI_WTIME(ierr)-time_start 
print *, 'rank = ', rank, „ barrier time = 
', 

(time_finish)/NTIMES 
call 
MPI_FINALIZE(ierr) end 
MPI_BCAST(BUF, COUNT
, DATATYPE, ROOT, COMM, IERR) 
 BUF(*) 
INTEGER COUNT, DATATYPE, ROOT, COMM, IERR 
Берілген 
сомм коммуникаторының барлық процестеріне, BUF 
массивіндегі 
COUNT
элементтерді 
ROOT
процесінен тарату. Процедурадан 
қайтарылу кезінде 
ROOT
процесінің buf буферіндегі мәлімет comm 
коммуникаторының әрбір процесінің жергілікті (жеке) буферіне кӛшіріледі 
Барлық процестерде count, datatype, source және comm 
параметрлерінің мәндері бірдей болуы керек. 
Келесі схема MPI_BCAST процедурасының іс-әрекетін кӛрсетеді. 
Мұнда және келесі схемаларда вертикаль бойында ұжымдық операцияларға 
қатысатын әртүрлі процестер бейнеленеді, ал горизонталь бойында – оларда 
орналасқан деректер блоктары.


185 
Мысалы, 2-ші процестен барлық қалған процестерге 100 бүтінсанды 
элементтен тұратын buf қосымша массивін жіберу үшін, барлық 
процестерде келесі шақыру кездесуі керек: 
call MPI_BCAST(buf, 100, MPI_INTEGER, 

2, MPI_COMM_WORLD, ierr) 
MPI_GATHER(SBUF, SCOUNT, STYPE, RBUF, RCOUNT, RTYPE, 
ROOT, COMM, 
IERR) 
 SBUF(*), RBUF(*) 
INTEGER SCOUNT, STYPE, RCOUNT, RTYPE, ROOT, COMM, IERR 
сомм коммуникаторының барлық процестерінен, SBUF массивтеріндегі 
STYPE 
типті SCOUNT элементтерді 
ROOT
процесінің RBUF буферінде жинау. 
Әрбір процесс, 
ROOT
процесін қоса алғанда, ӛз SBUF буферіндегі деректерді 
ROOT
процесіне жібереді. Жинақтаушы процесс, деректерді процесс нӛмірінің 
ӛсу реті бойынша орналастыра отырып RBUF буферінде сақтайды. 
ROOT
процесінде барлық параметрлердің мәндері маңызды орын алады, ал 
қалған барлық процестерде - тек SBUF, SCOUNT, STYPE, 
ROOT
және comm 
параметрлерінің ғана мәндері. Барлық процестерде 
ROOT
және comm 
параметрлерінің мәндері бірдей болуы керек. 
ROOT
процесінің RCOUNT 
параметрі, барлық процестен қабылданған қосынды элементтер емес, ал 
әрбір процестен қабылданатын RTYPE типті элементтер санын белгілейді. 
Келесі схема MPI_GATHER процедурасының іс-әрекетін кӛрсетеді. 
Мысалы, 2-ші процесс барлық қалған процестерден әрқайсысы 10 
бүтінсанды элементтен тұратын buf қосымша массивтерін rbuf массивіне 
жинау үшін, барлық процестерде келесі шақыру кездесуі керек: 


Достарыңызбен бөлісу:
1   ...   101   102   103   104   105   106   107   108   ...   121




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет