Реферат Бітіру жұмысы анықтамалар тізімі кіріспе, 7 негізгі бөлім, қорытынды, 3 қосымша, 14 сурет, 3 кесте және 29 әдебиеттер тізімінен құралған, барлығы 53 беттен тұрады. Тірек сөздер



жүктеу 0.79 Mb.
бет1/3
Дата03.07.2016
өлшемі0.79 Mb.
түріРеферат
  1   2   3
Реферат
Бітіру жұмысы анықтамалар тізімі кіріспе, 7 негізгі бөлім, қорытынды, 3 қосымша, 14 сурет, 3 кесте және 29 әдебиеттер тізімінен құралған, барлығы 53 беттен тұрады.

Тірек сөздер: Херст экспонентасы, нормаланған қатар, параллель есептеулер, уақыттық қатар, нейтрондық монитор, канал, фракталды өлшемділік, өзіндік.

Жұмыстың мақсаты: Уақыттық қатарларды талдауға қолданылатын қарапайым алгоритмдердің жұмысын модельдейтін параллель компьютерлік программалар кешенін жазып шығару. Жұмыстың мақсаты келесі тапсырмалар қатарын орындау болып табылады: Херст экспонентасын бағалау және фракталды өлшемділікті бағалау; деректердің түпнұсқалық мәтіндік файлын эффективті талдауды ұсыну; пен -ны есептеу алгоритмдеріндегі бірдей қадамдарды идентификациялап, осы шамаларды анықтаудағы нәтижелердің беріктігін қамтамасыз ету.

Қолданылған әдістер мен аппаратура: Жұмысты жазудағы әдістемелік және теориялық негіз ретінде Херст экспонентасы және фракталды өлшемділікті сипаттайтын негізгі теңдеулер қолданылды. Жұмыс барысында Matlab, C++ және OpenMPI программалары пайдаланылды. C ++ программалау тілін қолдана отырып біз талданатын уақыттық қатар үшін Херст экспонентасын және фракталды өлшемділікті бір уақытта параллель есептеу үшін алгоритм жазып, сол алгоритмді жүзеге асырдық. Параллель программалау ортасы OpenMPI 64 разрядты Debian Wheeze 7.4 операциялық жүйесіндегі үш машинадан тұратын виртуалды кластерде орналастырылды.

Алынған нәтижелер: Жұмыстың нәтижесінде біз уақыттық қатарды талдауға арналған компьютерлік программа алдық. Параллель процестердің арасында жұмыс жүктемесін дұрыс бөлуден басқа, деректерді канал бойынша немесе масштабтың негізінде есептелу бойынша бөлу арқылы біз екі айнымалыны есептеудегі ортақ ұқсатықтарды анықтадық. Осы арқылы біз алгоритмді оптимизациялаудың қосымша жолын анықтадық. Алынған нәтижелер мақалаларда жарық көріп, конференцияларда баяндалды.

Реферат
Работа объемом в 53 страниц, состоит из перечня терминов, введения, 7 основных разделов, заключения, 3-х приложений, 14 рисунков, 3 таблиц и из 29 источников списка использованной литературы.

Перечень ключевых слов: параллельные вычисления, компьютерный кластер, алгоритм, временной ряд, нейтронный монитор, экспонента Херста, фрактальная размерность.

Цель работы: создание параллельных компьютерных программ и алгоритмов для анализа данных временных рядов и других физических экспериментов.

Задачи работы: литературный обзор и анализ методов организации параллельных вычислений, создание вычислительного кластера и соответствующего программного обеспечения, оценка значений экспоненты Херста H и фрактальной размерности D в едином параллельном алгоритме; анализ эффективности и корректности работы написанной программы на примере анализа данных нейтронного монитора, отработка интерфейса пользователя, оптимизация программы, вычислительного кластера и среды параллельного программирования.

Использованные методы и аппаратура: уравнения-математические модели экспоненты Херста и фрактальной размерности, языки программирования Matlab, C++ и среда параллельного программирования OpenMPI, установленные на виртуальных и реальных вычислительных кластерах.

Полученные результаты: реализован алгоритм для параллельного вычисления значении экспоненты Херста H и фрактальной размерности D для анализируемого сигнала нейтронного монитора. Были исследованы принципы и методы реализации параллельных алгоритмов, распределение нагрузки между множественными процессами, методы и принципы построения вычислительных кластеров.

Практическое использование: полученные программы и инструменты для параллельного программирования были использованы для анализа и интерпретации данных нейтронного монитора.

Abstract
Thesis has 53 pages, consists of a list of terms, the introduction, 7 main sections, conclusion, 3 appendices, 14 figures, 3 tables and 29 bibliography sources.

Key words: parallel computing, computer cluster, algorithm, time series, neutron monitor, Hurst exponent, fractal dimension.

Objective: writing of the parallel computer programs and algorithms for the analysis of time series and other physical experiments’ data.

Intermediate tasks: a literature review and analysis of the methods of parallel computing, construction of a cluster and installation of appropriate software, calculation of the Hurst exponent and fractal dimension D in a single parallel algorithm; analysis of the effectiveness and correctness of the program for the neutron monitor data analysis, user interface and parallel software optimization.

Methods and equipment used: equations and mathematical models of the Hurst exponent and fractal dimension, programming languages ​such as ​Matlab, C++ and parallel programming library such as OpenMPI, installed on virtual and real computer clusters.

The results: the algorithms for parallel computation H Hurst exponent and fractal dimension D have been written to analyze signal the neutron monitor. We investigated the principles and methods of implementation of parallel algorithms, load balancing between multiple processes, methods and principles of computing clusters management.

Practical application: the utilities and tools for parallel programming have been used for data analysis and interpretation of neutron monitor data.



Мазмұны


АНЫҚТАМАЛАР

7

КІРІСПЕ

9

1 Компьютерлік программа. Программалардың түрлері

11

1.1 Компьютерлік программа

11

1.2 Компьютерлік программаның түрлері

13

1.3 Көпағынды программалар. Қолданбалы және жүйелік программалар

15

2 MPI технологиясы

19

2.1 MPI параллельді программалау ортасы

19

2.2 MPI-дің негізгі функциялары және программа құрылымы

20

2.3 Топтар және коммуникаторлар

22

3 УАҚЫТТЫҚ ҚАТАРЛАР. НЕЙТРОНДЫҚ МОНИТОР

29

3.1 Уақыттық қатарлар

29

3.2 Нейтрондық монитор

32

4 Херст критериі

34

4.1 Херст критерийінің жалпы түсінігі

34

5 ФРАКТАЛДАР ЖӘНЕ ӨЛШЕМДІЛІК

37

5.1 Фракталдар

37

5.2 Өлшемділік

39

5.3 Өлшемділікті өлшеудің басқа тәсілдері

41

6 Херст экспонентасын бағалау

42

6.1 Херст экспонентасын есептеу

42

6.2 Талқылау

43

6.3 Қорытынды

47

7 Фракталды өлшемділікті бағалау

48

7.1 Фракталды өлшемділікті есептеу

48

7.2 Талқылау

51

7.3 Қорытынды

51

ҚОРЫТЫНДЫ

53

ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ

54









АНЫҚТАМАЛАР
Алгоритм – нақты мәселені шешуге қажетті әрекеттердің реттелген тізбегі.

Алгоритмдеу – есепті шығару алгоритмін құрастыру процесі.

Алгоритмдік тіл – алгоритмдерді жазуға арналған символдар мен сол символдардан тұратын конструкцияларды құрастыру және түсіндіру ережелерінің жиыны.

Бит – компьютердегі ақпаратты кодтау бірлігі (0 немесе, иә немесе жоқ дегенді білдіреді).

Бос оператор – ешқандай да әрекеттің орындалмайтынын көрсетеді, бірнеше жолды орындамай өткізіп жіберіп, блок соңына бірден көшетін кезде пайдаланылады.

Деректер – сан мәндерін, мәтін ретіндегі сөз тіркестерін мән ретінде қабылдай алатын тұрақтылар, айнымалылар, т.б. осы сияқты құрылымдар немесе солардың адрестері; белгілі бір процесс көмегімен тасымалданып, өңдеуге болатын фактілер мен идеялар,

Жиым – бір атаумен белгіленіп бір өлшеммен өлшенетін шамалардың реттелген тізбегі. Қасиеттері ұқсас болып келетін бір типтегі айнымалылардың реттелген жиыны.

Интерфейс – компьютерлік жүйенің құрауыштары мен қатысушыларының арасындағы өзара байланыс.

Командалар – қандай деректер қай операцияға қатысатынын, олар қандай реттілікпен орындалатынын және нәтиженің қандай түрде шығарылатынын көрсетеді.

Командалық жол – графикалық интерфейсі жоқ операциялық жүйенің командаларын еңгізу үшін қызмет ететін жол, мысалы, MS-DOS жүйесі. «Шақыру» термині де жиі қолданылады. Егер де тек команданы ғана емес, қосымша параметрлерді де еңгізу талап етілсе, онда командалық жол қолайлы болады. Графикалық операциялық жүйелер әдетте арнайы сұқбаттық терезеде немесе командалық жолдың қызметін орындайтын қосымша тақтада беріледі.

Компилятор – жоғары деңгейлі бағдарламалау тілінде жазылған бағдарламаның бастапқы кодын процессордың машиналық кодында тәржімелеуді орындайтын қызметтік бағдарлама.

Компиляция – жоғары деңгейлі бағдарламалау тілінде жазылған бағдарламаның бастапқы кодын процессордың машиналық кодына түрлендіру процесі. Компиляция процесі бағдарламаны атқарумен ешқандай байланысты емес. Ол жеке және тәуелсіз жүргізіледі.

Модель – оқып-білетін объектінің сипаты мен іс-әрекетін имитациялауды қамтамасыз ететін бағдарлама немесе құрылғы.

Нәтиже алу – аралық немесе қорытынды деректерді экранға, дискіге немесе еңгізу-шығару порттарына жазу.

Оператор – программалау тілінің белгілі бір іс-әрекетті орындай алатын тиянақты мағынасы бар қарапайым сөйлемі.

Операциялар – берілген, есептелген мәндерді меншіктеу, оларды өңдеу, салыстыру істерін орындайды.

Программа – командалардың реттелген тізбегі.

Программалық жабдықтама – компьютермен жұмыс істеуде пайдаланылатын бағдарламалық және ақпараттық ресурстардың жиынтық атауы.

Программаны тестілеу – бағдарламада қарастырылған режимдерде де, қарастырылмаған режимдерде де жұмыс істейтін бағдарламаны жан-жақты тексеру.

Процедура – ішкі бағдарламаның алуан түрі. Әдеттегідей, стандарттық және жиі қайталанатын қандай да бір әрекеттерді атқару үшін бас бағдарламамен шақырылады.

Синтаксис – тіл элементтерін жазу ережелері.

Тип – мәліметтердің қабылдай алатын мәндерінің және оларға қолдануға болатын амалдардың жиыны, яғни, тип деген шамалардың қабылдайтын мәндеріне берілетін сипаттама.

Функция – ішкі бағдарламалардың алуан түрлілігі. Есептеу стандартты немесе жиі қайталанатын сипат жағдайларында қолданылады. Есептеулердің аяқталуы бойынша басқару шақырушы бағдарламаға беріледі.

Цикл – белгілі бір шарт орындалса (кейде орындалмаса), көрсетілмеген командалар жиыны бірнеше рет қайталанып атқарылады немесе шарт көрсетілмей-ақ алдын ала олардың неше рет қайталанатыны бүтін санмен беріледі.

Циклдік оператор – аргументтердің әртүрлі мәндері бойынша алгоритмнің белгілі бір бөліктерін бірнеше рет қайталауға арналған операторлар тізбегі.

Шартты оператор – тармақталу процестері бар алгоритмдерді ұйымдастыру үшін пайдаланылатын оператор. Тармақталу белгілі бір шарттың орындалуы немесе орындалмауына байланысты атқарылады. Шарт ретінде логикалық өрнектің мәні пайдаланылады.

Ішкі бағдарлама – стандарттық немесе жиі қайталанатын операцияны орындайтын дербес бағдарлама.

КІРІСПЕ
Деректерді өңдеуде қолданылатын параллель алгоритмдер ұзақ уақыт бойы қазіргі есептеуіш және ақпараттық технологиялардың дамуының іргелі себебі болып отыр. Параллель алгоритмдер кванттық есептеулер сияқты жаңа, заманауи есептеулердің негізі болып табылады.

Программалаудың және модельдеудің барлық заманауи кәсіби пакеттері, мысалы, Matlab, Mathematica және Origin, параллель программалау үшін қажет орта мен құралдар жиынтығын қамтамасыз етеді. Microsoft Office және Libre Office сияқты офистік пакеттер деректердің ағынын және формулаларды параллель есептейтін опцианалды қолдаулар мен мүмкіншіліктерге ие. Мұндай қолдаулар мен мүмкіншіліктер қосымша қосылатын плагиндердің арқасында жүзеге асырылуы немесе шығарушылармен алдын-ала ойластырылған болуы мүмкін. Көпядролы процессорларды қолданудың арқасында параллелизм қосымшалардың деңгейінде де, аппараттық жабдықтаманың деңгейінде де қамтамасыздандырылады.

Деректерді өңдеуде параллелизмді пайдаланып, тапсырмаларды шешу ғылым мен техниканың түрлі облыстарында қолданылады. Мысалы, сейсмология, биохимиядағы ақуыздар мен протеиндерді модельдеу, кванттық компьютерлердің модельдері. Кванттық компьютерлер классикалық есептеу жүйелеріне қарағанда көптеген сыйымды ресурсты есептерді шеше алатын перспективті құрал болып табылады.

Біз бұл жұмыста уақыттық қатарларды талдау үшін параллельді есептеулер жүргіземіз.

Бұл жұмыста уақыттық қатарды талдаудың, форматтаудың, оқудың негізгі механизмдері қарастырылады. Нейтрондық монитордың сигналының мысалында авторлар жазған параллель алгоритмдер уақыттық қатарларды талдау үшін қолданылады.

Уақыттық қатардың Херст экспонентасын және фракталды өлшемділігін есептеудің параллельді механизмдері қарастырылады. Жұмыстағы ең негізгі мақсаты берілген деректерге эффективті талдау жасауды ұсыну, пен -ны есептеу алгоритмдеріндегі бірдей қадамдарды идентификациялап, осы шамаларды анықтаудағы нәтижелердің беріктігін қамтамасыз ету және программалық жабдықтаманы кросс-платформалық сәйкестендіру. Сонымен қатар, программаны ұтымды қолданудың түрін көрсететін жылдам тест ұсыну.

Алгоритм C++ тілінде Bloodshed Dev-C++ компиляторында жүзеге асырылды. Алгоритм әр түрлі желілік компьютерлерде тәуелсіз іске асырылатындай етіліп және табиғаты мен көзі түрлі болып келетін уақыттық қатарларды зерттеу құралы ретінде пайдаланылатындай етіліп компеляцияланған. Кейін, деректерді өңдеуде эффективтілігі жоғары параллель алгоритмдерге тұрақты түрде жүгініп отыру C++ тіліндегі алгоритмнің негізгі бейімделушілігі Message Passing Interface программасына (біздің жағдайымызда, MPI және OpenMPI) аударылды. Message Passing Interface дегеніміз параллель есептеулердің ортасы.

Параллель программалау ортасы OpenMPI 64 разрядты Debian Wheeze 7.4 операциялық жүйесіндегі үш машинадан тұратын виртуалды кластерде орналастырылды. Алынған программаны қолдана отырып, біз минуттық айырыммен бір жарым аптада 6 канал бойынша тіркелген нейтрондық монитордың деректерінің файлына салыстырмалы талдау жүргіздік.

Алгоритмнің жұмысын тексеру үшін, біз алынған нәтижелерді деректерді талдаудың бірдей нәтижелерімен салыстырдық, яғни кездейсоқ Гаусс шуының сигналымен, өзіндік элементтері жасанды еңгізілген уақыттық қатармен және мәндері белгілі және шамаларымен салыстырдық.

Алынған нәтижелердің барлығы бір-бірімен және жүзеге асырылған алгоритмнің дұрыстығын растап қазіргі заманғы теориялармен жақсы үйлеседі. Біздің деректеріміз және алгоритмдеріміз көп қолданысты, және де олар болашақта үлкен потенциалға ие.


1 Компьютерлік программа. Программалардың түрлері
1.1 Компьютерлік программа

Компьютерлік программа (ағылшынша Computer program) – белгілі бір алгоритмді жүзеге асыру мақсатында деректерді өңдеу жүйесінің нақты құрауыштарын (компьютерді) басқаруға арналған деректер тізбегі. Программа орындалуға немесе өңделуге тиіс реттелген командалар тізбегі, есеп шығару алгоритмін сипаттайтын программалау тілінің сөйлемдер жиыны. Есеп шығаруға, сондай-ақ берілген мәселені шешуге арналған, қабылданған синтаксиске сәйкес жазылған компьютер командаларының немесе нұсқауларының реттелген тізбегі.

Алгоритм дегеніміз – берілген есептің шығарылу жолын реттелген амалдар тізбегі түріне келтіру. «Алгоритм» атауы атақты араб математигі әл-Хорезмидің есімінің латынша жазылуынан шыққан. Ол санаудың ондық жүйесінде көпорынды сандар мен арифметикалық амалдардың орындалу ережесін ұсынған. Қазіргі кезде алгоритм ұғымы тек математикалық есеп шығару әдістерімен шектелмейді. Алгоритмді реттелген амалдар жиыны, кезекпен орындалатын операциялар тізімі деп қарауға болады. Алгоритмді орындаушының рөлін, негізінен адам немесе автоматтандырылған құрылғы, яғни, робот немесе компьютер атқарады. Алгоритмді компьютерде орындау үшін оны программа түрінде жазу керек [1].

Алгоритмнің үш түрі бар: сызықтық алгоритм, тармақталу алгоритмі, циклдік алгоритм.

Сызықтық алгоритм дегеніміз – іс-әрекеттердің тізбектей орындалуын сипаттайтын алгоритмдер.

Тармақталу алгоритмі дегеніміз – іс-әрекеттердің логикалық шартын тексере отырып, тармақтала орындалуын сипаттайтын алгоритмдер.




c:\users\userz\downloads\image105.pngc:\users\userz\downloads\разв.алг.jpg

Сурет 1. Сызықтық және тармақталу алгоритмі


Циклдік алгоритм дегеніміз – іс-әрекеттердің тізбегі бірнеше рет қайталанып отыратын алгоритмдер.





Сурет 2. Циклдік алгоритм


Программа – машинаға түсінікті түрде жазылған, яғни, компьютер қабылдап, оны орындай алатын түрде жазылған алгоритм. Программада берілген деректердің сипаттамаларымен бірге оларды өңдейтін командалар болады.

Программалау жүйесі – программалауды автоматтандыру құралдары. Олар программалау тілінен, осы тілдің трансляторынан, құжаттамаларынан және программалауды дайындау немесе орындау құралдарынан тұрады.

Программалау тілі дегеніміз программаны құрайтын жазбалар жүйесін, қолданылатын грамматикалық құрылыс синтаксисі мен семантикасын анықтайтын ережелер жинағы. Программа нұсқаулардан құрылады. Әр нұсқау бір тапсырманы орындайды. Нұсқауларды программаның командалары деуге болады. Процессор барлық нұсқауларды келіп түскен ретімен орындайды.




c:\users\userz\downloads\компьютерная программа.png

Сурет 3. Компьютерлік программа



Операторлар тізбегі программаның маңызды бөлігі болып табылады, бірақ олар толық программалау тілі емес. Операторлар тізбегінен басқа программаларды қолдану ережелері анықталуы қажет – бұл синтаксис ережелері.

Программалау тілін процессор түсінетіндей, сандық кодқа ауыстыру керек. Мұндай аударманы, компилятор деп аталатын арнайы программалар орындайды.

Компилятор үздіксіз процесс барысында жоғары дәрежелі тілде жазылған программаның бүкіл мәтінін аударады. Интерпретатор программаның операторын бір-бірден, ретпен талдайды. Сонымен қатар жоғары дәрежелі тілде жазылған әрбір синтаксистік құрылымда машиналық кодқа бірінен соң бірін орындай отырып ауыстырады. Кез-келген программалар белгілі бір мәселені, есепті шешуге арналған. Есеп шығару барысында компьютерге бастапқы деректер еңгізіледі, олардың қалай өңделетіндігі көрсетіледі және нәтиже қандай түрде, қандай құрылғыға шығарылатыны айтылады.
1.2 Компьютерлік программаның түрлері

Компьютерде есептеу операцияларын жүргізу үшін алдымен берілген есептің шарттарын қанағаттандыратын алгоритмді немесе программаны жазу қажет. Программалаудың екі түрі бар:

- программалаудың жүйелі түрі;

- программалаудың параллельді түрі.

Программалаудың жүйелі моделінің сипаттамалары:

- өндірушіліктің мардымсыздығы;

- стандартты программалау тілдерінің қолданылуы;

- жақсы тасымалданушылық.

Программалаудың параллельді моделінің сипаттамалары:

- жоғары өндірушілікке қол жеткізу мүмкіндігі.

- арнайы әдістер және программалаудың түрлі құралдарын қолдану;

- көптеген процестердің жұмыстарын басқару;

- процестердің арасында өзара деректер алмасу;

- программаларды тасудың қиындығы;

- локальді емес және динамикалық қателіктердің көптігі;

- тұйық жағдайлардың пайда болу мүмкіндігі.





c:\users\userz\downloads\01_07.jpg

Сурет 4. Жүйелі және параллельді программа


Параллельді программа – бұл өзара әсерлесетін көптеген параллель процестер. Параллельді есептеулердің ең негізгі мақсаты берілген есептеулерді шешуді үдету. Параллельді алгоритм жеткілікті түрде қажет үдетуді беруі мүмкін, дегенмен мұны көптеген процестерге қолдану тиімсіз.


: Downloads
Downloads -> Ескі басылымдардан даярлауға қатысқан жинақтары, редакторлық жасаған кітаптары
Downloads -> Именительный падеж Выбери правильное слово
Downloads -> Приказ от 2016 г. План работы Ассоциации учителей русского языка и литературы
Downloads -> П. М. Кольцов т.ғ. д., профессор, Қалмақ мемлекеттік д и. н., профессор, Калмыцкий
Downloads -> Жүйесінде пайдалану ТҰжырымдамасы алматы, 2004 ббк 74. 200. 52 Ш 21
Downloads -> Қазақстан Республикасының білім және ғылым министрлігі


  1   2   3


©tilimen.org 2017
әкімшілігінің қараңыз

    Басты бет