- •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 функциялары
32 Сурет. Есептеу кластерінің жалпы схемасы
Кластерлерді жобалауда творчество үшін кеңістік өте кең екені түсінікті. Тораптарда жергілікті дискілер болмауы, коммуникациялық ортаның бірмезгілде әртүрлі желілік технологияларды пайдалана алу мүмкіндігі, тораптардың бәрі бірдей болуының міндетті еместігі және т.с.с. Шеткі нүктелерді қарастыра отырып, кластер ретінде жергілікті 10-мегабиттік Ethernet желісімен байланысқан дербес компьютерлер жұбын, бірнеше мыңдаған жұмыс станциялары біріктірілген жоғары жылдамдықты желілерді де есептеуге болады.
Кластерлік жүйелер
Алғашқы жобалардың бірі, параллель жүйелердің тұтас бір класына атау берген - Beowulf кластері болды. Ол NASA Goddard Space Flight Center (GSFC) орталығында дүниеге келді. Beowulf жобасы 1994 жылдың жазында басталып, көп ұзамай Intel 486DX4/100 МГц процессорларының базасында 16-процессорлы кластер құрастырылды. Оның әрбір торабына (түйінде) кәдімгі Ethernet желісі үшін 16 Мбайт жедел жады және 3 желілік картадан орнатылған. Бұндай конфигурациялармен жұмыс істеу үшін қолжетімді желілік карталар арасында тарифтерді бөлетін арнайы драйверлер құрастырылды.
Кейінірек GSFС орталығында theHIVE – Highly-parallel Integrated Virtual Environment кластері құрастырылды. Бұл кластер 332 процессорды және екі бөлінген хост-компьютерді біріктірген төрт ішкі кластерлерден (подкластер) Е, В, G және DL тұрады, және кластердің барлық тораптары Red Hat Linux басқаруымен жұмыс істейді.
1998ж Лос-Аламос ұлттық зертханасында астрофизик М.Уорен және теориялық астрофизика бөлімінің бір топ ғалымдары Alpha 21164A процессорлары базасында тактілік жиілігі 533 МГц Avalon Linux-кластерін құрды. Алғашқыда Avalon 68 процессордан тұрды, одан кейін процессорлар саны 140 дейін көбейтілді. Әр түйінде 256 Мбайт жедел жады, 3 Гбайт қаты диск және Fast Ethernet желілік адаптер орнатылды. Avalon жобасының жалпы құны 313 мың долларды құрады. LINPACK тестінде көрсеткен өнімділігі – 47,7 Гфлопс, Тор500 тізімінің 12-ші редакциясында оған 114 орынды иеленуге мүмкіндік берді. Осы, яғни 1998 жылы жоғары өнімді есептеулер облысы бойынша өткен Supercоmputing’98 конференциясында Avalon-ды құрастырушылар «Avalon» деген тақырыпта доклад ұсынды және ол «ең үздік баға/өнімділік ара-қатынасы» номинациясы бойынша бірінші премияны иеленді.
2000 ж. Корнельский университетінде биомедициналық зерттеулер жүргізу үшін Velocity+ кластері орнатылды. Ол әрқайсысы төрт Intel Pentium III процессорынан тұратын 64 тораптан құралды. Тораптар Windows 2000 операциялық жүйесі басқаруымен жұмыс істейді және cLAN желісімен біріктірілген.
Lots of Boxes on Shelfes жобасы АҚШ-ң ұлтық денсаулық институтында 1997 жылы іске асырылды. Онда коммуникациялық орта ретінде Gigabit Ethernet технологиясы қолданылады. Алғашында бұл кластер екі Pentium Pro/200 МГц процессорлы, 47 тораптан, 128 Мбайт жедел жадысынан және әр торапта 1,2 Гбайт дискіден тұрды. 1998 жылы жобаның келесі этапы – LoBoS2 іске асырылды. Онда тораптар кластерге біріктірілуі сақталған дәстүрлі столға қойылатын компьютерлерге өзгертілді. Қазір LoBoS2 әрбірі екі Pentium II/450 МГц процессордан, 256 Мбайт жедел және 9 Гбайт дискілік жадыдан құралған 100 есептеу торабынан тұрады. Кластерге, жалпы көлемі 1,2 Тбайт RAID-массивімен 4 басқарушы компьютер қосымша қосылған.
2000 жылы құрастырылған KLAT2 (Kentucky Linux Athlon Testbed 2) кластері әрбірінде AMD Athlon/700 МГц процессоры, және 128 Мбайт жедел жадысы бар 64 дискісіз тораптардан тұрады. Бағдарламалық қамтама, компиляторлар және математикалық кітапханалары (SCALAPACK6 BLACS және ATLAS) AMD процессорларының 3D-Now! технологиясын тиімді пайдалану үшін түзетіліп істеп бітірілген. Бұл жұмыс жүйенің өнімділігін айтарлықтай арттыруға мұмкіндік берді. Әрбір торапта төрт желілік адаптер Fast Ethernet орнатылған, ал тораптар тоғыз 32-порттық коммутаторлар көмегімен жалғастырылған. Сонымен қатар, кезкелген екі торап үшін коммутаторлардың бірі арқылы әрқашанда тікелей жалғасу бар, бірақ мүнда барлық тораптарды бірыңғай (дара) коммутатор арқылы жалғастырудың қажеттілігі жоқ. AMD архитектурасына және FNN топологиясына бағдарламалық қамтаманы тиімділеу арқасында LINPACK тестінде баға/өнімділік қатынасының рекордты көрсеткішін алуға қол жеткізілді – 650 доллар/1 гфлопс.
Кластерді бөлімдерге бөлу идеясы Аргондық Ұлттық зертханада дайындалған Chiba City жобасында жүзеге асырылды. Мұнда басты бөлім 256 есептеу тораптарын қамтиды, олардың әрбірінде екі Pentium III/500 МГц процессор, 512 Мбайт жедел және көлемі 9 Гбайт жергілікті жады орнатылған. Жүйеге есептеу бөлімінен басқа: шолу бөлімі (Мatrox Millenium G400 графикалық карталарымен 32 IBM Intellistation, 512 Мбайт жедел жады және 300 Гбайт диск), деректерді сақтау бөлімі (Xeon/500 процесорларымен және 300 Гбайт дискімен 8 сервер IBM Netfinity 7000) және басқарушы бөлім (12 компьютер IBM Netfinity 500). Олардың бәрі параллель қолданбаларға қолдау көрсету үшін пайдаланылатын Myrinet желісімен біріктірілген. Басқарушы және қызметтік мақсаттар үшін Gigabit Ethernet және Fast Ethernet желілері пайдаланылады. Барлық бөлімдер 32 компьютерден тұратын «қалаларға» (towns) бөлінеді. Олардың әрқайсысының өзінің «мэрі» бар, ол өзінің «қаласына» жергілікті қызмет атқарады және қызметтік желіге жүктемені азайтып, жергілікті ресурстарға жылдам қатынасты қамтамасыз етеді.
Россияның бас қаласы Москваның мекемеаралық суперкомпьютерлік орталығында орнатылған МВС-1000М суперкомпьютерін де кластер қатарына жатқызуға болады. Компьютер әрқайсысы 64 екіпроцессорлық модульдерді қамтитын алты базалық блоктардан тұрады (33 сурет). Әрбір модульдің құрамына екі процессор Alpha 21264/667 МГц (екінші деңгейлі кэш-жады 4 Мбайт), модуль процессорларымен бөлінген 2 Гбайт жедел жады, қатқыл диск кіреді. Жүйедегі процессорлардың жалпы саны – 768, ал МВС-1000М суперкомпьютерінің шектік өнімділігі 1 Тфлопс-тан асады.
МВС-1000М суперкомпьютерінің барлық модульдері екі тәуелсіз желілермен байланысқан. Пайдаланушылар бағдарламаларында Myrinet 2000 желісі есептеу барысында деректермен алмасу үшін пайдаланылады. MPI пайдаланғанда желі каналдарының өткізу қабілеті 110-170 Мбайт/сек мәндеріне жетеді. Операциялық жүйе сервистік функцияларды орындау үшін Fast Ethernet желісін пайдаланады.
