Параллельді алгоритімді ақпараттық қауіпсіздікте қолдану


КІРІСПЕ
Ақпараттық технологиялардың күрт дамуының әсерінен цифрлық ақпарат алмасу процесі күрделенді. Яғни цифрлық ақпараттың қоғамдағы рөлі артты. Қазіргі таңда барлық салада цифрлық ақпарат қолданылады. Цифрлық ақпаратқа деген сұраныс жылдан-жылға өсуде. Сонымен қатар ақпараттық қауіпсіздік мәселелері артты. Ақпараттық қоғамда мәліметтің бүтіндігін сақтап қалу өте қиын. Әр-түрлі вирустық шабуылдар арқылы IT-жүйені бұзып, өзіне қажетті ақпаратты заңсыз иемденетін хакерлердің шабуылдары артты. Жылдан-жылға ақпаратты алу мақсатында шабуылдың жаңа түрлері пайда болуда. Ал, оларға тойтарыс беретін ақпараттық қауіпсіздік жүйелері аз. Себебі жаңа вирустардың алгоритімін түсіну өте қиын. Қоса айтсақ жаңа вирустарға ескі ақпаратты қорғау әдістерін қолдану тиімсіз. Қоғамдағы ақпараттық қауіпсіздік мәселесін қамтамасыз ету еліміздегі өзекті мәселелердің бірі болып табылады. Ақпаратты қорғау жүйесін құру кезінде көптеген ақпаратты шектеу және оны сұрыптау жолдарын қарастырып, оларды қауіпсіз беру амалдарын ойластырады. Бұл көптеген бағдарламалық қамсыздандыру мәселелерін туғызады. Себебі қазіргі цифрлық құрылғылар әр-түрлі операциондық жүйелерде жұмыс жасайды. Сонымен қатар олардың арасындағы ақпарат алмасу процесін жоғарлатуымыз керек. Егерде күрделі қорғау жүйелерін жиі қолданатын болсақ, ақпаратты өңдеу, сақтау және тарату ұзақ уақытты алады. Сол себепті қазіргі таңда ақпаратты қорғау мақсатында параллельді алгоритімдерді жиі қолданады. Ақпараттық қауіпсіздікте параллельді алгоритмдерді қолдану арқылы құрылғылар арасындағы қауіпсіздікті қамтамасыз ете аламыз. Негізінен параллельді алгоритм криптографиялық шифрлану әдістерін оңтайландыру мақсатында енгізеді. Яғни криптографиялық шифрлаудың уақытын жоғарлатады. Сонымен қатар криптографиялық шифрдың алгоритімін бұзу осалдылығы азаяды. Параллельді алгоритмнің көмегімен бір мезетте бірнеше процесстерді орындауға мүмкіндік береді.
Дипломдық жұмыстың зерттеу обьектісіне паралелльді және криптографиялық алгоритм жатады.
Дипломдық жұмыстың мақсатына:
- Параллельді алгоритімнің қолдану аясымен танысу;
- Параллельді алгоритмдеуді ақпараттық қауіпсіздік мәселелерін шешуде қолдану;
- Параллельдік алгоритімнің тиімділігін зерттеу
Дипломдық жұмыстың міндеттеріне:
- Ақпараттық қауіпсіздікті қамтамасыз ету әдістерімен танысу
- Криптографиялық шифрлауда паралельді алгоритмді қолдану
Дипломдық жобада классикалық зерттеу әдісін қолданамын. Зерттеу жұмысының мақсаттары мен міндеттерін айқындап, зерттеу мәселелерінің шешу жолдарын қарастырамын. Сонымен қатар салыстырмалы талдау жүргізіп, жобаның экономикалық және әлеуметтік тиімділігін анықтаймын. Дипломдық жоба негізгі үш бөлімнен құрылады. Бірінші теориялық бөлім. Теориялық бөлімде зертеліп жатқан мәселе бойынша соңғы жаңалықтарымен танысып, олардың ерекшеліктері мен практикалық маңыздылығына SWOT-талдау жүргіземін. Екінші және үшінші бөлімде жобаның практикалық және экономикалық нәтижелеріне анализ жүргіземін. Алынған нәтижеге сәйкес қорытынды жазамын.
Теориялық бөлім
I-ТАРАУ Параллельді алгоритімді ақпараттық қауіпсіздікте қолдану
1. 1 Криптографиялық жүйеде параллельді алгоритмді қолдану
Ақпараттың қауіпсіздік шарларын ұйымдастыру кезінде криптографиялық шифрлау әдісі жиі қолданылады. Криптографикалық шифрлау кезінде параллельді ашгоритімді жиі қолданылады. Себебі әр шифрдың өз алгоритімі болады. Параллельді алгоритмнің көмегімен шифрлаудың сенімділігі мен шифрлауға кететін уақыттың үнемділігін қаматамасыз етуге болады. Дегенмен криптографикалық шифрлаудың түрлері мен әдістері өте көп. Криптоалгоритм- ақпаратты шифрлау мақсатында қолданылатын алгоритм түрі. Криптоалгоритмдер жылдан-жылға дамып, күнделікті өмірде жиі қолданамыз. Мысалы ретінде егов порталын алсақ болады. Ол жердегі логин және құпиясөз симметриялы криптографиялық шифрде жазылған. Сол себепті егов кілттері арқылы сайтқа кіре аламыз. Негізгі криптографикалық алгоритмдеу үш топқа жіктеуге болады. Кілтсіз, біркілтті және көпкілтті криптографикалық алгоритмдер ( 1-ші суретте көрсетілген) .
Сурет-1 Криптографикалық алгоритм түрлері
Криптографикалық алгоритімнің негізгі мақсаты шабуылдарға тойтарыс беру. Яғни криптографиялық алгоритім күрделі болуы керек. Криптографикалық алгоритімнің нәтижесі шифрлық код. Көптеген шабуылдар осы шифрлық кодты шешу мақсатында орындалады. Дегенмен параллельді алгоритмнің көмегімен шифрлық кодты күрделендіруге болады. Бір сөзбен бір декодтау үшін бірнеше алгоритімнің көмегімен жүзеге асады. Ал бұндай алгоритмдерді біз параллельді алгоритмдер деп атаймыз.
Шифрлаудың негізгі міндеті- құпия ақпаратты сенімді қорғау. Ақпаратты сенімді қорғау мақсатында шифрларға арнайы кілттер құрады. Ол кілттердің көмегімен жасырын ақпаратқа қол жеткізуге мүмкіндік береді. Мәліметтердің қауіпсіздігін қамтамасыз ету мақсатында құпия кілттердің алгоритімін құрады ( 2-сурет) . Қазіргі таңда құпия кілттердің алгоритімін ұйымдастыру екі жолмен іске асады. Біріншісі симметриялық құпия кілттер. Симметриялық құпия кілттер өте қарапайым. Олардың шифрлау алгоритімі құпия сақталады. Дегенмен қазіргі таңдағы мультиагенттік жүйелердің көмегемен шифр алгоритіміне қол жеткізуге мүмкіндік береді. Симметриялық кілтті алгоритмде сандар мен символдар белгілі бір кодтарға немесе таңбаларға ауыстыруы мүмкін. Заңсыз алынған ақпаратты декодтауға шифр алгоритімі қажет. Оны бұзу үшін көп уақытты талап етеді. Бірақ қазіргі таңда суперкомпьютерлердің көмегімен бұзуға болады. Сол себепті бұл шифрлауды қолдану ақпарат қауіпсіздігінің сенімділігін толығымен қамтамасыз етпейді.
Ассиметриялық шифрлау кілттері өте күрделі. Бұл жерде бірнеше шифрлық кілттер қолданылады. Біріншісі құпия кілт. Ал екінші қоғамдық кілт. Ақпарат алмасу кезінде шифрды ашу үшін құпия кілттерді қолданамыз. Ассиметриялық шифрлаудың негізгі кемшілігі күрделілігінде. Бұл кілттерді бұзу мүмкін емес. Қазіргі таңда ассиметриялық шифрлау құпия ақпараттарды қорғау мақсатында қолданады. Екі кілт арасындағы байланыс ұйымдастыру кезінде паралелльді алгоритм қолданылады. Сол себепті бұл шифрлау сенімді әдістердің бірі болып табылады. Ассиметриялық шифрлаудың негізгі кемшіліктерінің бірі ақпаратты өңдеу кезінде есептеу құрылғыларының процессорларына қосымша жүктеме түсіреді. Яғни ақпаратты өңдеу кезінде жүйеге қосымша жүктеме түсіреді.
Криптожүйелердің күрделілігі келесідей мәселелер туғызады:
- Ақпаратты өңдеу уақытынын жоғарлауы;
- Компьютерлерге және есептеуіш құралдарына қосымша жүктеме беріледі;
- Ақпаратты тарату кезіндегі қателіктердің көбеюі;
- OSI моделінің құру кезінде сәйкестендіру қиын;
- Қосымша бағдарламалық қамсыздандыру қамтамасыз ету;
- Ақпаратты өңдеу операцияларының бірнеше рет қайталануы;
- Техникалық күтім көрсету мен экспулатациялың қымбаттылығы;
- Ашық кілттерді қорғау кезінде қателіктер пайда болады;
- Ықтималдық теория және математикалық тұрақтылығының болуын қамтамасыз ету.
Сурет-2 Криптожүйелердің жіктелуі
Ағындық криптожүйелік алгоритімдерді көбінесе аутентификациялау кезінде қолданылады. Аутентификациялау алгоритімі бірнеше паралельді алгоритмдерден құралған. Яғни бұл процестерде сервер мен қолданушылардың арасындағы алгоритім. Қолданушылардың жеке ақпараттары сақтандырылған каналдар арқылы беріледі. Жеке ақпарат әуелі шифрланып, сосын желі арқылы серверге жөнетіледі. Сервер қажетті ақпаратты алған соң декодтау басталады, ол ақпаратты үшінші тарапқа жаңа шифрмен шифрлап жібереді. Үшінші тарап алынған ақпаратты тексеріп, дұрыстығына көз жеткізген соң IT-жүйеге қосылуға рұқсат береді. Дегенмен бұл процесте екі алгоритім іске асырылыдаы. Бірінші біздің шифрлау алгоритімі, екінші декодтау алгоритімі. Нәтижесінде екі алгоритім бір мезетте іске асырылады. Сондықтан бұл криптожүйелік алгоритім ағындық деп аталады. Ағындық криптожүйелік алгоритім қазіргі таңда кеңінен қолданылады. Мысалы әлеуметтік желідегі аутентификациялау осы жүйе арқылы іске асырылады. Бұл жүйенің осалдығы көп шабуылдарға тойтарыс бере алмайды. Қазіргі замандағы DDOS шабуылдардың әсерінен құпия ақпаратты жоғалтып алу қауіпі бар. Бұл жүйенің артықшылықтьарына келсек, телекоммуникациялық және естеуіш электрондық құрылғылардың ресурстарын аз пайдаланады. Яғни аутентифкациялау процессі жеңіл, әрі жылдам іске асады(сурет-3) .
Сурет-3 Параллельді алгоритмдік аутентификациялаудың орындалу сызбасы
Параллельді алгоритімді қазіргі таңда шифрлаудан бөлек аутентинфикациялау және авторизациялау кезінде жиі қолданады. Яғни бұл екі процесс парраллельді орындалатындықтан қолданамыз. Сол себепті мәліметтердің жоғарғы сапалы қорғанысын қамтамасыз ету үшін параллельді алгоритмдерді қолдану тиімді. Қазіргі таңдағы қорғаныс жүйелері әр-түрлі архитектуралық бағдарламалық платформаларда орындалған. CUDA, RADUIS және TACACS тағы басқалары жатады. Көртеген мәліметтерді басқару және қорғау мақсатында жоғарыдағы құралдар мен бағдарламаларды жиі қолданады. Бұл бағдарламалардың жұмыс істеу принципі парраллельді алгоритмге байланған. Сол себепті бұл жүйені бұзу мүмкіндігі аз. Төменгі суретте параллельді алгоритімнің компьютермен айланысы көрсетілген(Сурет-4) . Қосылған бағдарламаның алгоритімі алдымен сервермен байланыс орнатылады. Сервердегі байланысты қауіпсіздігін қаматамасыз ету мақсатында желілік қауіпсіздікті қамтамасыз ететін протоколдардың алгоритімі қосылғаннан кейін, компьютрдегі бағдарлама шифрланады. Яғни нақтыланған сервермен байланыс орналмаса, бағдарлама жұмыс жасамайды. Себебі желідегі ақпараттық қауіпсіздікті қамтамасызе ету үшін сервер мен компьютер арасындағы қорғалған канал параллельді жұмыс жасайды. Егер сервердің немесе компьютердің жұмыс жасау алгоритімі өзгерсе. Параллелдік есептеуді қамтамасыз ететін бағдарлама автоматты түрде мәліметтерді шифрлайды. Және компьютердің драйверлерін жояды. Бұл әрекет компьютердегі бағдарламаны желі немесе басқада физикалық тасымалдаушы құрал арқылы ақпаратты көшірудің алдын алады. Нәтижесінде компьютердегі мәліметтер шифрланып, оны декодтау үшін арнайы алгоритмді қажет ететін жабық кілтті қажет етеді. Сол себепті ақпаратты қорғау кезінде жабық кілттерді жиі қолданылады.
Сурет-4 Қорғаныс жүйелерінің компьютермен байланысы
1. 2 Параллельдік алгоритмді CUDA ақпараттық-бағдарламалық құралының көмегімен құру
CUDA (ағылшын тілінде “ Compute Unified Device Architecture” ) - қазіргі таңдағы есертеу құралдарының көпшілігі параллельді алгоритмді графикалық процессорларда жиі өңдейді. CUDA ақпаратттық-бағдарламалық құралы NVIDIA компаниясының графикалық процессорларына арнап жасалған. Параллельді есептеулердің көмегімен ақпаратты өңдеу уақытын қысқартуға мүмкіндік береді. NVIDIA компаниясының видеокарталары кеңінен тарған. Әсірессе мобильді құрылғыларда жиі қолданылады. Видеокартаның графикалық процессоры негізгі процессормен қабаттасып жұмыс атқарады. Яғни негізгі процессордың есептеу күші әлсіз болған жағлайда, CUDA көмегімен графикалық процессорлың есептеу ресурсын қолдануға мүмкіндік береді. Сол себепті қазіргі таңдағы ноутбуктердің көпшілгі NVIDIA компаниясының видеокарталарын орнатады. Себебі ноутбуктердегі процессордың қуаты дербес компьютердегі процессормен салыстырғанда әлдеқайда әлсіз. Сондықтан CUDA ақпараттық-бағдарламаның көмегімен графикалық процессорлың құуатын параллельді алгоритімдік есептеулерде қолданады. Яғни ақпаратты шифрлау немесе декодтау кезінде ноутбуктердің процесорларының қуаты жеткіліксіз. Сол себепті графикалық және негізгі процессордың көмегімен параллельді алгоритмді өңдеуге болады. Яғни процессорлар ақпаратты өңдеу кезінде бірнеше параллельді ағымдық алгоритмдерді қолданылады. Ағындар параллель өңделеді және өңдеу процесінде өзара әрекеттеседі. Бұл CUDA жұмысы салынған NVIDIA процессорларының арқасында мүмкін болады. Олардың негізінде GPGPU технологиясы жатыр. Бұл технологияның жұмысын сипаттау үшін қолданыстағы процессорлармен танысу керек. Жұмыс барсында негізінен екі түрлі процессор қолданады. Бірінші негізгі есептеуіш процессоры. Екіншісі графикалық есептеу процессоры.
CPU (ағылш. Central Processing Unit) - бұл деректерді мүмкіндігінше қысқа мерзімде өңдеуге бағытталған орталық процессор. Ол келесі принцип бойынша жұмыс істейді: бір тапсырманы бірнеше ағынға бөледі, олардың әрқайсысы бөлек өңделеді. Содан кейін бұл ағындар қайтадан біріктіріліп, дұрыс ретпен реттеледі. Бұл тәсіл тапсырмаларды дәйекті өңдеу жылдамдығын арттыруға мүмкіндік береді.
GPU (ағылш. Graphics Processing Unit) - бұл 2D немесе 3D графикасын өңдеуге арналған арнайы графикалық процессор. Ол графикалық картаға орналастырылған, бұл деректерді өңдеу кезінде негізгі процессорды артық жүктемеден автоматты түрде босатуға мүмкіндік береді. GPU аз мөлшерде энергия тұтынатын бірнеше мың ядролардан тұрады. CUDA ядролар 1 ватт қуат тұтыну өнімділігі бойынша CPU-дан "озады". Осы процессорлардың арқасында қазіргі таңдағы ақпараттық қауіпсіздікті қамтамасыз ету мақсатында қолдануға болады. Ақапараттарды өңдеу кезінде жиі шабуыл болады. CUDA арқасында паралельді алгоритмді серверде емес, компьютердің өзінде жүзеге асыруға мүмкіндік береді. Көп жағдайда шабуыл серверлерге бағытталған. Сол себепті ақпаратты шифрлау сервер емес компьютердің өзінде жүзеге асқаны дұрыс. Неліктен деген сұрақ пайда болуы мүмкін?
Біріншіден серверді бұзған жағдайда, сервердегі активті қолданушылардың компьютерлері мен жеке ақпараттарына ұрлауға болады. Бір сөзбен сервермен байланысқа түскен компьютерлердің барлығына шабуыл жасау мүмкіндігі туады. Сол себепті жеке адамға шабуыл жаса са, тек бір компьютердің ақпараттарына қол жеткізуге болады. Қазіргі таңдағы ақпараттық қауіпсіздік мәселелері кең ауқымды салаларды қамтиды. Сол себепті әмбебап CUDA құралын жиі қолданады. CUDA процессорларының базасында параллельді алгоритмді өңдеудің GPGPU технологиясы құрылды. GPGPU (ағылшын тілінде General - purpose computing on graphics processing units) - осы технологияның арқасында біздің графикалық процессор негізгі процессордың функцияларын атқара алады. Параллельді алгоритмді жүзеге асыру үшін компьютердің жады мен процессорларына өте үлкен жүктеме түседі. Сол себепті CUDA GPGPU ағымдық паралельді өңдеудің жүктемесін басқаруға болады. Яғни ақпаратты қорғалған байланыс арнасы арқылы жіберу үшін оны шифрлайды. Ал шифрлау негізінен дербес компьютерлерде жүзеге асады. Ол көптеген блоктардан құралған. Сонымен қатар әр блоктың шифрлау алгоритімі әр-түрлі. Яғни процессор ақпаратты күрделі шифрлау үшін әр блокты жеке-жеке шифрлайды. Нәтижесінде ақпаратты бұзу үшін көптеген блоктардың шифрлау алгоритімін анықтау керек. Теориялық түрде бұндай жүйе бұзу үшін 1200 жылды қажет етеді. Сол себепті қазіргі таңда күрделі параллельді алгоритмді бұзу мүмкін емес. Дегенмен ашық кілттің бұзған жағдайда ақпаратты декодтауға болады. Тек толығымен декодтау мүмкін емес, тек бір бөлігін. Cuda технологиясы WIndows операциондық жүйенің өзінде жиі қолданылады.
CUDA ақпараттық қауіпсіздікке келесі жағдайларда қолданылады:
- Аутентификациялау және авторизациялау процесінде;
- Паралельді алгоритмдік есептеу жүйесін тестілеуде;
- Мәліметтер базасын оптимизациялау және реттеу;
- Ақпараттарды жылдам шифрлау үшін;
- Жүйедегі қателіктерді анықтау;
- Ақпараттық қауіпсіздікке анализ жүргізу кезінде;
- Бағдарламаның математикалық және логикалық дұрыстығын анықтау кезінде.
CUDA параллельді алгоритімін құру кезінде C, C+, C#, JAVA және Python бағдарламалық тілдерін қолдануға мүмкіндік береді. Сол себепті програмисттердің көпшілігі осы құралмен жұмыс жасағанды жөн көреді. CUDA оптимизациялау кезінде қателіктер аз болады. Сол себепті өте оңтайлы әмбебап архитектура ретінде қарастыруға болады. CUDA құралын әр-түрлі IT жүйелерді бұзу немесе шабуыл жасау үшін жиі қолданылады. Қазіргі таңда ақпараттық қауіпсіздік мамандары осы құралды жиі қолданады. Өте қарапайым интерфейс және әр-түрлі құрылғыларда қолдануға мүмкіндік береді. Көптеген жағдайларды виртуальды түрде CUDA көмегімен ақпараттық қауіпсіздіктің параллельді алгоритімін құруға мүмкіндік береді.
1. 3 CUDA ақпараттық қауіпсіздікті қамтамасыз етудің бағдарламалық деңгейлері
CUDA ақпараттық қауіпсіздікті қамтамасыз ету мақсатында арнайы кітапханалардың көмегімен жүзеге асады. Ол кітапханаларда ақпараттық қауіпсіздікті қамтамасыз етудің жолдары қарастырылған, солардың бірі шифрлау. Тек ақпараттық қауіпсіздікті мониторинг жасау және оны басқару үшін C тіліндегі командалардың көмегімен жүзеге асады. Яғни ақпараттық қауіпсіздікті басқару үшін төменгі деңгейлі тілдерді білу қажет. CUDA бағдарламалау келесі этаптардан құрылған:
- Хосттағы қажетті кэш жадыны дайындау;
- Компьютерді ақпаратты қорғалған каналдар арқылы көшіріп, хост кэшінің жадына сақтайды;
- Хосттағы ақпаратты өңдеу құрылғынығ процессор ядросына жүктеледі;
- Өңделген ақпаратты толығымен серверге жөнелтеді.
Әрине, GPU-ны эффективті қолдану үшін процессорлардағы ядроның өңдеуге кеткен жұмыс уақытысының жадқа көшіру кеткет уақыт қатынасы арқылы, параллельді алгоритмнің тиімділігін анықтауға болады. Енді біз осы архитектураны қарапайым компьютерде қосу үшін келесі іс-шараларды жүзеге асыруымыз қажет. Бірінші CUDA архитектурасының бағдарламалық драйверлдерін орнатуымыз керек. Содан кейін Visual studio құралыың көмегімен келесі кодтарды теріп оны компьютерде компиляция жүргізуіміз керек. Бірінші бағдарлама қаңқасын құрастырамыз. Ол үшін келесі командаларды OPENCV теруіміз қажет.
# incl <chrno>
# incl <iotream>
# incl <ctring>
# incl <strig>
# incl <opencv/core/cre. hp>
# incl <openv2/highgi/highgi. hpp>
# incl <openv2/opencv. hpp>
# incl <vectortpes. h>
# incl "openMP. hpp"
# incl "CUDA_wrappers. hpp"
# incl "common. hpp"
using name 45 ;
using name 33 ;
int main ( int a, char av )
{ using namespace std:no;
if ( argc != 0)
{ cout <<" Usage: file" << endl;
return -1; }
Mat image, uchar4 Array;
int numRows = numCols = image. cols;
auto start = now() ;
RGBtoGrayscaleOpenMP;
aut dur = duration_cast<milliseconds>(system_clock::now() - start) ;
counting <"Open (ms) :" < duration. count() < el;
memset(imageGrayArray, 0, sizeof ( unsigned char ) *numRows*numCols) ;
return 0; n }
Осы командалардың көмегімен CUDA архитектурасын экспулатацияға дайындаймыз. Яғни прпоцессорлардың жұмысын реттеу үшін керек. Бірақ қолданыстағы компьютерлерде бұл команда терілмесе CUDA архитектурасы жұмыс жасай береді. Тек алынған нәтижені өзгертуге немесе басқару мүмкіндігі болмайды. Себебі процессорлар арасындағы ақпаратты өңдеу автоматты түрде жүзеге асады. Осы кодтты терген соң VISUAL STUDIO-да келсі нәтижелерді аламыз:
temp clas 1 , class2
voidPointers ( contchar T1** inputImageArray,
cv::Mat& outputImage,
T2** outputImageArray,
const int outputImageType)
{
using namespace std;
using namespace cv;
if empty() )
{
cer << "Couldn't open input file. " << endl;
(1) ;
}
//allocate o, inputImage. cols, outputImageType) ;
cvColor(inputIm, inputIm, cv::OR_BGR2BGRA) ;
*inputIArray = (T1*) 2 < car >(12) ;
*outputIArray = (T2*) 12. ptr< car >(0) ; }
Негізгі процессорларды алғашқыда тек белгілі бір тапсырмаларды орындау мақсатында қолданды. Ал графикалық процессорлар әмбебеап көптеген ақпаратты өңдеу мақсатында жасады. Біз білетін параллельді алгоритмде екі процессордың қуатын пайдаланады. Яғни бұл параллельді алгоритмде жұмыс жасайтын компьютерледің ақпаратты өңдеу уақытын қысқарту мақсатында жүзеге асырылды.
Кесте 1 Негізгі және графикалық процессордың параллельді алгоритмдегі қолдану ерекшеліктерін салыстыру
GPU параллельді деректерді өңдеуді қолданатын алгоритмдерде тамаша нәтижелерді көрсетеді, яғни бірдей математикалық амалдар тізбегі деректердің үлкен көлеміне қолданылған кезде. Графикалық процессорда параллельді есептеулерді орындау үшін NVIDIA компаниясының әзірлеушілері параллельді есептеулердің әмбебап архитектурасын - NVIDIA CUDA (Compute Unified Device Architecture) әзірледі. Ол Isa архитектуралық нұсқаулар жиынтығын (Instruction Set Architecture) және GPU-да параллельді есептеулерді енгізуді қамтиды. Бағдарламалау үшін әзірлеуші ең көп таралған жоғары деңгейлі C және C язы тілдерін қолдана алады . CUDA архитектурасы екі негізгі мақсатты ескере отырып әзірленді: - бағдарламашыға стандартты бағдарламалау тілдерін кеңейтетін және тек параллель алгоритмдерді жүзеге асыруға мүмкіндік беретін мүмкіндіктер мен мүмкіндіктер беру; - гетерогенді есептеулерге қолдау көрсету, яғни алгоритмнің дәйекті бөліктері CPU-да, ал параллель бөліктері CPU-да орындалатын етіп орталық және графикалық процессорды бір уақытта қолданатын есептеулер-GPU-да. CUDA-ны бағдарламалық тұрғыдан қарастырмас бұрын, ағын, бұралу, блок және тор сияқты ұғымдарды ескеру қажет. Ағын (thread) - өңдеуге арналған негізгі деректер жиынтығы. Айта кету керек, CPU және GPU ағындары әртүрлі мәндерге ие. Бұрын айтылғандай, екі ағын арасында ауысу GPU-да ресурстарды қажет ететін операция емес. Warp (warp) - CUDA SIMD әдісімен өңделетін деректердің ең аз көлемі. Басқаша айтқанда, бұл 32 ағыннан тұратын топ. Блок (блок) - өзара байланысты ағындар тобы. Блоктардың максималды саны-65535. Орталық процессорлар мен графикалық процессорлардың архитектурасы әртүрлі және пайдалану жағдайлары әртүрлі.
... жалғасы- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz