
- •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 функциялары
ҚАЗАҚСТАН РЕСПУБЛИКАСЫ
БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ
Е. Е. Дүйсембиев
ПАРАЛЛЕЛЬ ЕСЕПТЕУЛЕР
Жоғары өнімді технологиялар
Оқулық
Қазақстан Республикасы Білім және
ғылым министрлігі бекіткен
Алматы, 2011
ӘОЖ 004.4(075.8)
КБЖ 32.973-018.2я73
Д 87
Пікір берушілер:
техника ғылымдарының докторы, профессор М. Н. Немеребаев;
техника ғылымдарының кандидаты, доцент М.К.Кайранов
техника ғылымдарының кандидаты, доцент Г. К. Сембина.
Е. Е. Дүйсембиев
Д Параллель есептеулер: ЖОО «Информатика», «Есептеу техникасы және бағдарламалық қамтамасыз ету» және «Ақпараттық жүйелер» мамандықтарының білімгерлеріне арналған. Оқулық. – Алматы: ЖСШ РПБК «Дәуір», 2011 ж.
Оқулықтың негізгі мақсаты – білімгерлерге жоғары өнімді технологиялардың ерекшеліктері мен мүмкіндіктерін көрсете отырып, параллель есептеу машиналарында жұмыс істеу негіздерін қалыптастыру.
Оқулықта, виртуалды машиналардың қажеттілігі, олардың артықшылықтары қысқаша қарастырылып, параллель есептеулер курсының компьютер өнімділігін арттыру, параллель компьютерлер түрлері, есептеу жүйелерінің архитектурасы, параллель бағдарламалау және параллель бағдарламалау технологиялары тақырыптары бойынша дайындалған теориялық материалдарға және OpenMP, MPI бағдарламалау жүйелерінде негізгі операцияларды орындау тәсілдеріне талдаулар берілген.
Курсты толық игеру мақсатында, әрбір бөлімнің соңында бақылау сұрақтары мен тапсырмалар ұсынылған.
Isbn 978-601-217-247-8
ӘОЖ 004.4(075.8)
КБЖ 32.973-018.2я73
© Е. Е. Дүйсембиев, 2011
© ҚР Жоғары оқу орындарының
қауымдастығы, 2011
МАЗМҰНЫ
КІРІСПЕ 5 |
|
|
|
1-ШІ БӨЛІМ: ВИРТУАЛДЫ ЖӘНЕ ПАРАЛЛЕЛЬ ЕСЕПТЕУ МАШИНАЛАРЫ |
|
|
|
1-ШІ ТАРАУ. ВИРТУАЛДЫ МАШИНАЛАР |
|
§1.1.1 Параллель виртуалды машиналар..........................................................................7 |
|
§1.1.2 Виртуалды машиналардың түрлері.....................................................................12 |
|
§1.1.3 Виртуаландыру - ақпараттық жүйелерді реттеудің басты жолы.....................15 |
|
|
|
2-ШІ ТАРАУ. КОМПЬЮТЕРДІҢ ӨНІМДІЛІГІН АРТТЫРУ |
|
§1.2.1 Компьютердің аппараттық құрылымын жетілдіру...........................................22 |
|
§1.2.2 Компьютерді басқарудың интеллектуалдығын жоғарылату...........................35 |
|
§1.2.3 Функционалды құрылғылар жүйесі...................................................................53 |
|
|
|
3-ШІ ТАРАУ. ПАРАЛЛЕЛЬ ЕСЕПТЕУ ЖҮЙЕЛЕРІНІҢ АРХИТЕКТУРАСЫ |
|
§1.3.1 Параллель компьютерлер және жүйелер классификациясы............................65 |
|
§1.3.2 Векторлы-конвейерлік компьютерлер................................................................72 |
|
§1.3.3 Ортақ жадылы параллель компьютерлер...........................................................82 |
|
§1.3.4 Таратылған жадылы есептеу жүйелері...............................................................89 |
|
§1.3.5 Метакомпьютинг..................................................................................................99 |
|
|
|
2-ШІ БӨЛІМ: ПАРАЛЛЕЛЬ ПРОГРАММАЛАУ |
|
|
|
1-ШІ ТАРАУ. ҮЛКЕН ЕСЕПТЕР ЖӘНЕ ПАРАЛЛЕЛЬ ЕСЕПТЕУЛЕР |
|
§2.1.1 Үлкен есептер және үлкен компьютерлер........................................................106 |
|
§2.1.2 Алгоритм графы және параллель есептеу........................................................110 |
|
§2.1.3 Шексіз параллелділік концепциясы..................................................................117 |
|
§2.1.4 Ішкі параллелділік...............................................................................................124 |
|
|
|
2-ШІ ТАРАУ. ПАРАЛЛЕЛЬ ПРОГРАММАЛАУ ТЕХНОЛОГИЯСЫ |
|
§2.2.1 Дәстүрлі тізбекті тілдерді пайдалану................................................................138 |
|
§2.2.2 OpenMP бағдарламалау технологиясы ............................................................141 |
|
§2.2.3 Хабарлама жіберу негізіндегі бағдарламалау жүйелері. MPI бағдарламалау жүйесі...................................................................................................................153 |
|
§2.2.4 Басқа тілдер және бағдарламалау жүйелері.....................................................191 |
|
|
|
ПАРАЛЛЕЛЬ ЕСЕПТЕУДЕ ҚОЛДАНЫЛАТЫН ҚЫСҚАША ҚАЗАҚША-ОРЫСША ЖӘНЕ ОРЫСША-ҚАЗАҚША ТЕРМИНОЛОГИЯЛЫҚ СӨЗДІК208 |
|
|
|
ӘДЕБИЕТТЕР |
228 |
АЛҒЫ СӨЗ
Ұсынылып отырған оқулық техникалық жоғарғы оқу орындарының білімгерлеріне және магистранттарына арналған. Осы уақытқа дейін бұл сала бойынша қазақ тілінде арнайы жазылған оқу құралдарының тапшылығы бүгінгі таңда, яғни ғылым және техниканың қарқындап дамуы заманында ерекше сезілуде.
Оқулық (1-ші бөлім), «Параллель есептеулер» курсының бағдарламасына сәйкес құрастырылған мемлекеттік тілдегі алғашқы оқулықтардың бірі болары анық.
Бүгінгі күні білімгерлердің бұл пәннен өз бетінше дайындалуға қажетті қазақ тіліндегі оқулықтар мен оқу-әдістемелік құралдар университет кітапханасында ғана емес, қалалық кітапханаларда да жоқ екенін ескерсек, оқулықтың оқырмандардың параллель есептеулер бағытында білімдерін тереңдетуге және жан-жақты түсінік алуларына көмектесетініне сенімдіміз. Сонымен қатар, оқулықтың кемшілігі жоқ деп те айта алмаймыз және пәннің оқу бағдарламасындағы материалдар толық қамтылмағанын да айта кету керек.
Ұсынылып отырған кітаптың негізгі мақсаты білімгерлерге параллель есептеу машиналары, олардың архитектурасы, өнімділігі, жұмыс істеу принциптері және т.б. туралы жалпы мағлұматтар беру және параллель бағдарламалау негіздерін үйрету.
Бұл оқулықты даярлауда – Ресей, Қазақстан және шетелдік ғалымдардың еңбектері, ғылыми мақалалары, монографиялары, Ресей баспаларынан жарық көрген оқулықтар, оқу-әдістемелік құралдар және Интернет желісіндегі параллель есептеулер бойынша ақпаратты-аналитикалық орталықтың (http://www.parallel.ru) материалдары пайдаланылды. Атап айқанда, А. С. Антонов «Параллельное программирование с использованием технологии MPI», Учебное пособие, 2004., А. С. Антонов, «Параллельное программирование с использованием технологии OpenMP», Учебное пособие, 2009, В. В. Воеводин, Учебное пособие: Математические модели и методы в параллельных процессах, 1986, В. В. Воеводин, Вл. В. Воеводин. «Параллельные вычисления», 2002, Вл. В. Воеводин, С. А. Жуматий, «Вычислительное дело и кластерные системы», 2007, А. К. Гультяев «Виртуальные машины: несколько компьютеров в одном», 2006, және т.б.
Автор ұсынылып отырған еңбектің құндылығының артуына көмектесетін барлық сын-пікірлерді шын ниетпен қабыл алады және де оқулықтың жарық көруіне ықпал еткен сын-пікір жазған және жазатын барлық азаматтарға өз ризашылығын білдіріп, алдын ала алғыс айтады.
КІРІСПЕ
Жаңа компьютерлік және ақпараттық технологиялардың стратегиялық маңызы зор облысы - жоғары өнімді компьютерлер болып табылады. Бүгінгі таңда, жоғары өнімді суперкомпьютерлерсіз әлемдік деңгейде заманауи фундаментальді ғылыми ізденістер жүргізу, шет ел рыногында бәсекеге қабілетті өнімдерді қамтамасыз ету, еліміздің қорғаныс қабілетін алдыңғы қатарлы державалар деңгейіне көтеру, еліміздің тәуелсіздігі мен қауіпсіздігін қамтамасыз ету мүмкін емес екені анық. Сонымен қатар жоғары өнімді компьютерлер жаңа талаптарға сай мемлекеттік басқару, маркетинг, білімнің, мәдениеттің және адам іс-әрекетіне қатысты көптеген салалардың дамуын қамтамасыз етудің басым бағыттарының бірі екені айқын.
Соңғы жылдары параллель есептеулерге негізделген жоғары өнімді компьютерлер жасанды интеллект жүйесін жасауда, жаңа технология құрастыруда, космос, астрофизика, аэрогазодинамика, мұнай-газ, экология, медицина, экономика, социология, криптография, сейсмология, криминалистика және де көптеген басқа күрделі өндірістік, әлеуметтік мәселелерді шешуде кеңінен қолданыс табуда.
Ғалымдар о бастан-ақ уақытты неғұрлым үнемдейтін және сапалы өнімдер даярлайтын техникаларды шығаруды мақсат етіп келеді. Себебі, жоғары өнімді техникалардың қолданыста болуы қай салада болса да жұмысты жеңілдетеді, әрі сапалы өнімдер даярлауда минималды шығын шығарып, максималды нәтижеге қол жеткізеді.
Қазіргі таңда қоғамда болып жатқан өзгерістер білім беру саласының дамуына да ықпал етуде. Сондай-ақ ақпараттық қоғамда және өндірістің дамуының негізгі құралы болып ақпараттық ресурстардың қажеттілігі көрінеді. Сондықтан білім беру әлемі де өзінің дамуы үшін жаңа қадамдар жасауда. Қазіргі таңда ғылым мен білімнің дамуы әр мемлекеттің мәдениеті мен экономикасына ықпал ететіні сөзсіз.
Соңғы толқындағы алдыңғы қатарлы суперкомпьютерлердің қуаттылығы өте жоғары, олардың секундына бірнеше квадриллион операция жасай алатын мүмкіндіктері бар. Қазақстан енді-енді қадам басқан ақпараттық технологиялардың биік белестерінің бірі – осы суперкомпьютерлер. Биылғы жылы шетел компаниялары және ҚР тұңғыш президенті қоры біріккен жобаларының нәтижесінде алғашқы суперкомпьютерлердің бірі – НPC (High Performance Cluster) Қ.Сәтбаев атындағы ҚазҰТУ-де орнатылуда Оның көмегімен Қазақстандық ғалымдар жоғары жылдамдықта есептеулер жүргізе алуға қол жеткізеді және ол өз кезегінде бірқатар саланың ғылыми зерттеулерін дамытуға жаңа серпін береді деп күтілуде.
Оны қолданысқа енгізу арқылы Қазақстан да суперкомпьютерлік орталықтардың қатарына қосылады. Бұл – өте үлкен қадам. Ол параллельді есептеулер мен инженерлік модельдеу саласындағы бағдарламалық шешімдер туралы білімді арттыру мен толықтыруға зор үлес қосары анық.
Заманауи жоғары өнімді есептеуіш машиналарының, республика көлемінде екі университетте енді ғана орналастырыла бастауы - бұл саланың Қазақстан үшін әлі де болса жазылмаған ақ парақ екендігінің белгісі. Ақпараттық технологиялардың “жарық жылдамдығымен” дамып жатқандығы сондай, бүгінгі көшбасшы ертең-ақ аутсайдерге айналатыны анық. Дегенмен замана көшінен қалмас үшін алғашқы қадам жасалуы керек болған – ол жасалды. Бүгінгі күні ҚР Тұңғыш Президентінің қорынан осы мақсатта қомақты қаржы бөлініп, қор жанынан суперкомпьютерлік технологиялар орталығы ашылмақ. Жақында Алматыда Қор өкілдері әлемдік Intel компаниясының өкілдерімен орталықты ашу бағытындағы әріптестік жөніндегі келісімге қол қойғаны белгілі. Бұл Жаңа орталық Қазақстанда Intel мультиядролық шағын процессорлар негізінде өндіріс пен ғылым, жоғары білім саласын дамытуға бағытталған шешімдерді жасақтау, технология мен үлгілерді, ғылыми-инженерлік шешімдерді дамыту, мамандарды дайындау мен біліктілігін көтеру, зерттеушілерге көмек көрсету, әлемдік суперкомпьютерлік орталықтармен байланыс орнатуға ықпал жасамақ.
1993 жылдан бастап TOP500 ұйымы әлемдегі ең күшті суперкомпьютерлердің рейтингтерін жасап отырады, нәтижелері жылына екі рет: маусым мен қараша айларында жарияланады. 2011 жылдың маусым айында жарияланған тізімі бойынша, әлемдегі ең қуатты суперкомпьютер болып RIKEN ғылыми-зерттеу институтында орналасқан жапондық K Computer-і тіркелген. Оның өнімділігі, екінші орынды иеленіп тұрған есептеу қуаты 2,6 петафлопс құрайтын қытайлық суперкомпьютерден шамамен үш есе жоғары.
Тізімдегі үшінші орынды Cray компаниясы құрастырған америкалық Jaguar суперкомпьютері иеленген. Ең қуатты компьютерлердің алғашқы ондығына, жапондық екі есептеу машинасы, қытайлық – екі, америкалық – бес және француздық бір компьютер кіреді.
МГУ мамандары қатысуымен құрылған Ресейлік ең қуатты «Ломоносов» суперкомпьютері, рейтингте он үшінші орынды иеленеді. Оның қуаты шамамен 0,67 петафлопс.
Енді осы суперкомпьютерлерде пайдаланылып жатқан операциялық жүйелерге келсек, TOP500-ге кірген есептеу жүйелерінің 400-ден астамы Linux ОЖ-нің әр түрлі нұсқаларымен жұмыс істейді (80% астамы), Unix-пен 22 жүйе, Windows HPC 2008 ОЖ-5 жүйе, ал қалғандары аралас операциялық жүйелерді қолданады (шамамен 6%).
1-ШІ БӨЛІМ: ВИРТУАЛДЫ ЖӘНЕ ПАРАЛЛЕЛЬ