- •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 функциялары
§1.3.4 Таратылған жадылы есептеу жүйелері
Таратылған жадылы есептеу жүйелерін құрастыру идеясы өте қарапайым. Есептеу тораптарының бірнешеуі алынып, олар бір-бірімен қандай да бір коммуникациялық ортада біріктіріледі. Мұндағы әрбір есептеу торабы бір немесе бірнеше процессорлардан және осы процессорларға бөлінген өзінің жеке жергілікті жадысынан тұрады. Әрбір процессордың тек өз торабының жергілікті желісіне ғана қолжетімді болуын жадының таратылуы деп түсінеміз. Басқа тораптар жадыларындағы орналастырылған деректерге қатынас ұзағырақ орындалады және басқа күрделірек тәсілдермен жүзеге асырылады. Соңғы кездері тораптар ретінде өз сыртқы құрылғылары да болуы мүмкін толықфункционалды компьютерлер жиі пайдаланылуда. Коммуникациялық ортаға келетін болсақ, ол берілген есептеу жүйесі үшін арнайы жобалануы болмаса рыноктағы қолжетімді стандартты желі де болуы мүмкін.
Параллель компьютерлерді осылай ұйымдастыру схемасының артықшылықтары көп. Мысалы, сатып алушы өз қаражатының мөлшеріне және қандай есептеу қуатының қажеттілігіне байланысты компьютер конфигурациясын дәл таңдай алады. Басқа класқа кіретін компьютерлермен салыстырғанда таратылған жадылы жүйелерде баға/өнімділік қатынасы көп төмен. Және бастысы, мұндай схема жүйедегі процессорлар санын шексіз көбейтуге және жүйенің өнімділігін арттыруға мүмкіндік береді. Процессорлар санының көп болуы осы класқа жататын жүйелер үшін арнайы атауды анықтап берді десе де болады: ол массивті-параллель компьютерлер.
Осы тектес компьютерлер өткен ғасырдың 90-шы жылдарынан бастап кең тарала бастады. Олардың қатарына Intel Paragon, IBM SP1/SP2, Cray T3D/T3E және т.б. жатқызуға болады. Бұл компьютерлердің бір-бірінен айырмасы олардағы пайдаланылатын процессорлар және коммуникациялық ортаның ұйымдастырылуында. Intel Paragon компьютері, төртбұрышты екіөлшемді тордың(решетка) түйіндерінде орналасқан Intel i860 процессорларының негізінде тұрғызылған. IBM SP компьютерлерінің есептеу тораптарында, олардың даму барысына қарай Power PC, P2SC және POWER3 сияқты процессорлардың бірнеше түрі пайдаланылды. Олардың өзара қатынасы жоғары өнімді коммутаторлардың иерархиялық жүйесі арқылы жүреді, ал ол өз кезегінде әрбір тораптың кезкелген басқа тораптармен қатынасу мүмкіндігін береді. Cray T3D/T3E компьютерлері DEC Alpha процессорлары және үшөлшемді тор топологиясына негізделген.
Бұл параграфты біз қызықты да және қосымша ерекшеліктерге ие Cray T3D/T3E компьютерлерінің архитектурасын сипаттаудан бастаймыз. Cray T3D/T3E компьютерлері – бұл таратылған жадылы, максималды конфигурацияда 2000-нан аса процессорларды біріктіретін массивті-параллель компьютерлер. Осы класқа жататын кезкелген басқа компьютерлер сияқты олар негізгі екі компонентті қамтиды: тораптар және коммуникациялық орта. Компьютердің балық тораптары үш топқа бөлінеді. Пайдаланушы компьютерге қосылған кезде, ол басқарушы тораптарға келіп түседі. Бұл тораптар көппайдаланушы режимінде жұмыс істейді, осы тораптарда бірпроцессорлы бағдарламалар орындалады және командалық файлдар жұмыс істейді. Операциялық жүйенің тораптары пайдаланушыға тікелей қолжетімді емес. Бұл тораптар операциялық жүйенің көптеген жүйелік сервистік функцияларының орындалуын қамтамасыз етеді, дербес жағдайда файлдық жүйемен жұмыс істейді. Компьютердің есептеу тораптары монопольді режимде пайдаланушы бағларламаларын орындауға арналған. Бағдарламаны жүктеген сәтте оған талап етілген тораптар саны бөлінеді және ол тораптар бағдарлама жұмысы аяқталғанша бекітіліп беріледі. Бағдарлама жұмыс істеп тұрған кезде оған бұл бекітілген есептеу тораптарын басқа ешқандай бағдарлама пайдалана алмауына кепілдік беріледі. Әр типтің тораптар саны жүйе конфигурациясына байланысты. Мысалы, Cray T3E компьютерінің екі нақты конфигурациясынан алынған деректер: 24/16/576 немесе 7/5/260 (басқарушы тораптар/ОЖ тораптары/есептеу тораптары).
Компьютердің соңғы модельдерінде әрбір торап процессорлық элементтен (ПЭ) және желілік интерфейстен тұрады. Процессорлық элемент бір Alpha процессорынан, жергілікті жадыдан және көмекші бағыныңқы жүйеден тұрады. Cray T3E-1200Е моделінде DEC Alpha 21164/600 микропроцессоры пайдаланылған, Cray T3E-1350 моделінде тораптарда тактілік иілігі 675 МГц және шектік өнімділігі 1,35 Гфлопс Alpha 21164А микропроцессоры пайдаланылады. Қызықтысы – Cray T3D сериялы компьютерлерде әрбір торапта бір-біріне тәуелсіз екі процессордан DEC Alpha 21164/150 бар болуы.
Әрбір процессорлық элементтің жергілікті жадысы тұтас компьютердің физикалық таратылған, бірақ логикалық бөлінетін жадысының бір бөлігі болып табылады. Жады физикалық таратылған, себебі әрбір процессорлық элементтің өз жергілікті жадысы бар. Кезкелген ПЭ өзінің желілік интерфейсі арқылы кезкелген басқа ПЭ (оның жұмысын бөлмей) жадысына қатынай алуы себепті жады барлық ПЭ бөлінеді.
Тораптың желілік интерфейсі коммуникациялық ортаның бір бөлігі боып табылатын сәйкес желілік маршрутизатормен байланысқан. Барлық маршрутизаторлар үшөлшемді бүтінсанды төртбұрыш тордың (решетка) тораптарында орналасқан және бір-бірімен үшөлшемді тор топологиясына сәйкес жалғастырылған (30 сурет).
