- •Isbn 978-601-217-247-8
- •Есептеу машиналары
- •§1.1.1 Параллель виртуалды машиналар
- •1 Сурет. Vm/sp, vм/ха, vn/еsа машиналары
- •2 Сурет. Виртуалды машина жүйесі
- •3 Сурет. VMware терезесі
- •4 Сурет. Бір компьютерде бірнеше операциялық жүйе
- •5 Сурет. Вм консолынің мысалы
- •6 Сурет. Виртуалды машиналар жүйесінің архитектурасы
- •§1.1.2 Виртуалды машиналардың түрлері
- •§1.1.3 Виртуаландыру - ақпараттық жүйелерді реттеудің басты жолы
- •§1.2.1 Компьютердің аппараттық құрылымын жетілдіру
- •7 Сурет. Бір операцияны бес тактіде орындайтын тізбекті құрылғының
- •8 Сурет. Бір операцияны әрбірі бес тактіде орындайтын екі бірдей тізбекті
- •10 Сурет. Конвейерлік құрылғы өнімділігінің кіріс деректер
- •11 Сурет. Illiac IV матрицалық жүйесінің жобасы
- •§1.2.2 Компьютерді басқарудың интеллектуалдығын жоғарылату
- •12 Сурет. Ортақ жадылы параллель компьютерлер
- •13 Сурет. Таратылған жадылы параллель компьютерлер
- •14 Сурет. Ортақ шиналы мультипроцессорлық жүйе.
- •15 Сурет. Матрицалық коммутаторлардағы
- •16 Сурет. Омега - желі мультипроцессорлық жүйесі.
- •17 Сурет. Мультикомпьютерлерлік жүйелер байланыс топологияларымен: а – сызықша; б – дөңгелек; в – жұлдызша
- •18 Сурет. Процессорлардың байланыс топологияларының нұсқалары
- •19 Сурет. Сm* есептеу жүйесінің сызбасы
- •20 Сурет. Bbn Butterfly есептеу жүйесінің сызбасы
- •§1.2.3 Функционалды құрылғылар жүйесі
- •§1.3.1 Параллель компьютерлер және жүйелер классификациясы
- •21 Сурет. М. Флин классификациясының sisd және simd кластары
- •22 Сурет. М. Флин классификациясының misd және mimd кластары
- •23 Сурет. Mimd класына р. Хокнидың қосымша
- •§1.3.2 Векторлы-конвейерлік компьютелер
- •24 Сурет. Cray c90 компьютерінің жалпы сүлбесі
- •25 Сурет. Cray c90 компьютері жадысының бөлінуі
- •26 Сурет. Cray c90 компьютерінде векторлық операциялардың орындалуы
- •27 Сурет. Cray c90 компьютерінде векторлық операциялардың ілінісуі
- •§1.3.3 Ортақ жадылы параллель компьютерлер
- •28 Сурет. Hewlett Packard Superdome компьютері
- •29 Сурет. Hewlett Packard Superdome компьютерінің
- •§1.3.4 Таратылған жадылы есептеу жүйелері
- •30 Сурет. Cray t3e компьютерінің коммуникациялық торы
- •31 Сурет. Cray т3d/t3e компьютерлеріндегі барьерлі синхрондау
- •32 Сурет. Есептеу кластерінің жалпы схемасы
- •33 Сурет. Мвс-1000м суперкомпьютерінің құрылымы
- •34 Сурет. Коммуникациялық ортаның латенттілігі және өткізу қабілеті
- •§1.3.5 Метакомпьютинг
- •§2.1.1 Үлкен есептер және үлкен компьютерлер
- •35 Сурет. Сандық эксперименттің этаптары
- •§ 2.1.2 Алгоритм графы және параллель есептеулер
- •§ 2.1.3 Шексіз параллелділік концепциясы
- •§ 2.1.4 Ішкі параллельділік
- •37 Сурет. Матрицаларды көбейту графы
- •38 Сурет. Үшбұрышты жүйелерге арналған графтар
- •39 Сурет. Блокты-екідиагоналды жүйеге арналған Макрограф
- •40 Сурет. Блокты-екідиагоналды жүйеге арналған граф
- •41 Сурет. Жалпыланған пралллель форманың ярустары
- •42 Сурет. Графтағы микро және макропараллельділік
- •§2.2.1 Дәстүрлі тізбекті тілдерді пайдалану.
- •§2.2.2 OpenMp бағдарламалау технологиясы
- •44 Сурет. ОреnМр: бағдарламаның орындалу процесі
- •§2.2.3 Хабарлама жіберу негізіндегі бағдарламалау жүйелері. Mpi бағдарламалау жүйесі
- •Int mpi_Comm_rank(mpi_Comm comm, int *rank)
- •Int mpi_Send(void *buf, int count, mpi_Datatype datatype, int dest, int msgtag, mpi_Comm comm)
- •Integer count, datatype, dest, msgtag, comm, request, ierr
- •Int mpi_Isend(void *buf, int count, mpi_Datatype datatype, int dest, int msgtag, mpi_Comm comm, mpi_Request *request)
- •Int mpi_Irecv(void *buf, int count, mpi_Datatype datatype, int source, int msgtag, mpi_Comm comm, mpi_Request *request)
- •Integer count, datatype, source, msgtag, comm, request, ierr
- •Int main(argc,argv)
- •Int argc;
- •Include 'mpif.H’
- •Integer ierr, rank, size, prev, next, reqs(4), buf(2)
- •Integer stats(mpi_status_size, 4)
- •Int mpi_Waitany( int count, mpi_Request *requests, int *index, mpi_Status *status)
- •Integer count, requests(*), index, status(mpi_status_size), ierr
- •Int mpi_Waitsome( int incount, mpi_Request *requests, int *outcount, int *indexes, mpi_Status *statuses)
- •Integer incount, requests(*), outcount, indexes(*), ierr,
- •Int mpi_Test(mpi_Request *request, int *flag, mpi_Status *status)
- •Integer request, ierr, status(mpi_status_size)
- •Int mpi_Testall( int count, mpi_Request *requests, int *flag, mpi_Status *statuses)
- •Integer count, requests(*), statuses(mpi_status_size,*), ierr
- •Int mpi_Testany(int count, mpi_Request *requests, int *index, int *flag, mpi_Status *status)
- •Integer count, requests(*), index, status(mpi_status_size), ierr
- •Int mpi_Testsome( int incount, mpi_Request *requests, int *outcount, int *indexes, mpi_Status *statuses)
- •Integer incount, requests(*), outcount, indexes(*), ierr,
- •Int mpi_Iprobe( int source, int msgtag, mpi_Comm comm, int *flag, mpi_Status *status)
- •Include 'mpif.H’
- •Integer ierr, rank, size, n, nl, I, j
- •Integer irr, status(mpi_status_size), req(maxproc*2)
- •If(ir .Ne. Rank)
- •Int mpi_Send_init( void *buf, int count, mpi_Datatype datatype, int dest, int msgtag, mpi_Comm comm, mpi_Request *request)
- •Integer count, datatype, dest, msgtag, comm, request, ierr
- •Int mpi_Recv_init( void *buf, int count, mpi_Datatype datatype, int source, int msgtag, mpi_Comm comm, mpi_Request *request)
- •Integer count, datatype, source, msgtag, comm, request, ierr
- •Integer сомм, ierr
- •Include 'mpif.H’
- •Integer ibuf(maxproc)
- •Integer req(2*maxproc), statuses(mpi_status_size, maxproc)
- •Integer count, datatype, root, comm, ierr
- •Integer scount, stype, rcount, rtype, root, comm, ierr
- •Integer scount, stype, rcounts(*), displs(*), rtype, root, comm, ierr
- •Integer scount, stype, rcount, rtype, root, comm, ierr
- •Int mpi_Bcast(void *buf, int count, mpi_Datatype datatype, int source, mpi_Comm comm)
- •Int mpi_Gather( void *sbuf, int scount, mpi_Datatype stype, void *rbuf, int rcount, mpi_Datatype rtype, int dest, mpi_Comm comm)
- •Int mpi_Scatter(void *sbuf, int scount, mpi_Datatype stype, void *rbuf, int rcount, mpi_Datatype rtype, int source, mpi_Comm comm)
- •Int main(argc,argv)
- •Int argc;
- •Int numtasks, rank, sendcount, recvcount, source;
- •Int mpi_Barrier (mpi_Comm comm)
- •§ 2.2.4 Бағдарламалаудың басқа тілдері және жүйелері.
- •Параллель есептеуде қолданылатын қысқаша қазақша-орысша терминологиялық сөздік
- •Параллель есептеуде қолданылатын қысқаша орысша-қазақша терминологиялық сөздік
- •Және орта айнымалылары
- •Mpi функциялары
21 Сурет. М. Флин классификациясының sisd және simd кластары
Үшінші класс – MIMD (Multiple Instruction stream/ Multiple Date stream) - командалардың көптеген ағыны және деректердің көптеген ағыны (22 сурет).
22 Сурет. М. Флин классификациясының misd және mimd кластары
Бұл класта, есептеу жүйесінде бір кешенге біріктірілген, командаларды өңдейтін бірнеше құрылғы бар деп есептеледі және олардың әрқайсысы өз командалар ағынымен және деректер ағынымен жұмыс істейді. Оған көп процессорлы векторлы супер ЭЕМ ғана емес, басқа да көп процессорлы компьютерлер жатады. Көптеген қазіргі супер ЭЕМ-ың архитектурасы MIMD болып табылады.
Төртінші класс – MISD (Multiple Instruction stream/Single Date stream) - командалардың көптеген ағыны және деректердің жеке ағыны (22 сурет).
Анықтама бойынша, архитектурада бір деректер ағынын өңдейтін көптеген процессорлар болуы қажет. Алайда бүгінгі күні бұл қағидамен жұмыс жасайтын есептеу машинасы тіркелмеген. Әзірше бұл класс бос десе болады.
Сонымен, жоғарыда айтылғандай SISD класына VAX 11/780 типі сияқты бірпроцессорлы тізбекті компьютерлер кіреді. Алайда, бұл класқа, егер сәйкес команда үшін векторды бүтін бөлінбейтін берілген деп қарастыратын болсақ, онда векторлы-конвейерлік машиналарды да енгізуге болады. Бұл жағдайда SISD класына Cray-16, CYBER 205, FACOM VP машиналары және көптеген т.б машиналар да жатады.
SIMD класына даусыз процессорлық матрицалар: ILLIAC IV, ICL DAP, Goodyear Aerospase MPP, Connection Machine 1 және т.б. кіреді. Мұндай жүйелерде процессорлық элементтер жиынын ортақ басқару құрылғысы қадағалайды. Әрбір бекітілген уақыт мезетінде, әрбір процессорлық элемент, басқару құрылғысынан бірдей команданы қабылдап, оны өздерінің локальды берілгендеріне орындайды. Классикалық процессорлық матрицалар үшін ешқандай сұрақ туындамайды. Алайда бұл класқа векторлы-конвейерлік машиналарды да енгізуге болады, мысалы Cray-1. Бұл жағдайда вектордың әрбір элементін деректер ағынының жеке элементі деп қарастыру қажет.
MIMD класы өте кең, себебі оған барлық мүмкін мультипроцессорлық жүйелер: Cm*, C.mmp, Cray Y-MP, Denelcor HEP, BBN Butterfly, Intel Paragon, Cray T3D және көптеген басқа машиналар енеді. Қызықты жері – егер конвейерлік өңдеуді жеке деректердің векторлық ағыны емес, ал скалярлық ағын жиынымен түрлі командалардың тізбектеліп орындалуы деп қарастыратын болсақ, онда жоғарыда қарастырылған барлық векторлы-конвейерлік компьютерлерді де осы класқа жатқызуға болады.
Флин ұсынған бұл классификация сызбасы, бүгінгі күні ең көп қолданылуда екенін айта кету керек. Егер компьютер SIMD немесе MIMD класына кіреді деп айтылса, онда оның жұмысының бірден базалық қағидалары түсінікті және кейбір жағдайларда осының өзі жеткілікті болады. Алайда айқын жетіспеушіліктері де көрініп тұрады. Дербес жағдайда, кейбір көңіл бөлуге тұрарлық архитектуралар, мысалы, dateflow және векторлы-конвейерлік машиналар аталған классификацияға толық сәйкес келмейді. Келесі жетіспеушілігі – MIMD класының тым толып кетуі. Сондықтан, Флин бойынша бір класқа кіретін, бірақ процессор санымен олардың арасындағы байланыс топологиясы және табиғатымен, жадыны ұйымдастыру тәсілі және де бағдарламалау технологиясы жағынан әртүрлі болатын архитектураларды одан ары да таңдап жүйелейтін құрал қажет.
Р. Хокни классификациясы. Жоғарыда айтылғандай, MIMD класы өте кең және ол архитектуралардың көптеген әртүрлі типтерін өзіне біріктіреді. Хокни осы Флин жүйелеуі бойынша MIMD класына кіретін компьютерлерді одан ары терең бөлшектеп жүйелеу үшін өз тәсілін құрастырды. Осы класс ішінде архитектураны жүйелеу нәтижесінде ол төмендегі 23-ші суретте келтірілген иерархиялық құрылымды алды.
