
- •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.3 Ортақ жадылы параллель компьютерлер
Ортақ жадылы параллель компьютерлерді пайдаланушылардың оларға деген қатынасы әрқашанда бірмәнді болмады. Бір жағынан, компьютерлердің бұл класын бағдарламалау таратылған жадылы есептеу кластерін бағдарламалауға қарағанда едәуір қарапайым болып табылады. Бұл жағдайда, массивтердің таратылуын ойлап қажеті жоқ, бағдарламалардың ішкі параллельділігі жеңіл сипатталады, жөндеу процесі тезірек жүреді. Екінші жағынан, бұл компьютерлер класының классикалық түрлерінің екі кемшілігі бар: процессорлар саны аз және олардың бағасы өте жоғары. Бірыңғай адрестік кеңістікте жұмыс істеуін сақтай отырып, процессорлар санын көбейту үшін әртүрлі шешімдер ұсынылды. Соның бірі соңғы жылдары кең тараған нұсқа ссNUMA (cache coherent Non Uniform Memory Access) архитектурасы негізіндегі шешім. Мұндай архитектурада компьютердің жадысы физикалық тұрғыдан таратылған (бөлінген), ол оның масштабталу потенциалын едәуір арттырады. Сонымен қатар мұнда жады логикалық тұрғыдын ортақ болып қалады. Бұл SMP компьютерлері үшін жасалған программалау әдістері мен барлық технологияларды пайдалануға мүмкіндік береді. Мұндай архитектурада жекелеген процессорлардың кэш-жадысының мазмұны аппаратура деңгейінде жедел жады мазмұнымен үйлеседі (кэштің когеренттілік мәселесі шешіледі, cache coherence problem). SMP компьютерлерімен салыстырғанда процессорлар санын едәуір арттыра отырып, ссNUMA архитектурасы ортақ жадылы компьютерлерге тән емес қосымша ерекшеліктерді ұсынды. Жадыға қатынау уақыты бұл қатынастың түріне, яғни жергілікті немесе қашықтағы жадыға екеніне байланысты. Бағдарламаны жазу процесі өзгермей қалады, және жадының физикалық таратылуы бағдарламашыға көрінбейді. Бірақ-та, бағдарламаның тиімділігі жадыға қатынаудың «біртекті еместік» дәрежесіне тікелей байланысты екендігі түсінікті болуы анық.
Осы класқа жататын компьютерлер архитектурасын зерттеуді Hewlett Packard Superdome есептеу жүйесін мысалға ала отырып жүргізіп көрейік. Компьютер 2000 жылы пайда болды, ал 2001 жылы қараша айында өткен Тор 500 тізімінде олар 147 позицияны иеленіп үлгерді. Стандартты комплектіде, Hewlett Packard Superdome компьютері жүйені одан ары кеңейтуге мүмкіндік бере отырып, 2-ден 64 процессорларға дейін біріктіре алады. Барлық процессорлар ссNUMA архитектурасына сәйкес ұйымдастырылған ортақ жадыға қатынай алады. Бұл біріншіден, барлық процестер дәстүрлі оқу/жазу операциялары арқылы кезкелген жады байтын адрестей отырып, бірыңғай адрестік кеңістікте жұмыс істей алады дегенді білдіреді. Екіншіден, жойылған жадыға қатынауға қарағанда, жүйедегі жергілікті (локальді) жадыға қатынау біршама тезірек жүреді. Үшіншіден, процессорлардың кэш-жадысында туындайтын деректердің мүмкін сәйкессіздіктері мәселелері аппаратура деңгейінде шешілген. Максималды конфигурацияда Superdome компьютерінде жедел жады 256 Гбайт-қа дейін болуы мүмкін. Компанияның жақын келешектегі жоспарының бірі - компьютер жадысын 1 Тбайтқа дейін жеткізу.
Hewlett Packard Superdome компьютерінің архитектурасы, онда микропроцессорлардың бірнеше түрін (типін) пайдалана алатындай етіп жобаланған. Бұл әрине, HP Superdome есептеу жүйесі үшін дәстүрлі РА ұрпағындағы процессорлар: РА-8600 және РА-8700. Сонымен қатар, есептеу жүйесі НР және Intel компаниялары бірігіп құрастырған процессорлардың IA-64 архитектуралы келесі ұрпағын да пайдалануға толық дайындалған.
HP Superdome компьютері архитектурасының негізін айырып/қосқыштардың иерархиялық жүйесімен байланысқан есептеу ұяшықтары (cells) құрайды. Әрбір ұяшық, барлық қажетті компоненттері бар бір тақшада жүзеге асырылатын симметриялық мультипроцессор болып табылады (28 - сурет):
•процессорлар (4-ке дейін);
•оперативті жады ( 16 Гбайтқа дейін);
•ұяшық бақылаушысы;
•қорек көзін түрлендірушілер;
• енгізу/шығару жүйесімен байланыс.
Hewlett Packard Superdome ұяшықтары жаңа заманғы ссNUMA компьютерлерінің архитектуралық элементтерімен көп ұқсас болып келеді. Hewlett Packard Superdome компьютерінде мұндай элемент болып ұяшық, SGI Origin 3x00 типті машиналарында торап (node), ал Compad Alphaserver GS320 сериялы компьютерлерде - QBB (Quad Building Block) болады. Барлық жүйелерде әрбір элемент 4 процессордан тұрады.