Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Duisembiev-Parallel-esep.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
5.86 Mб
Скачать

11 Сурет. Illiac IV матрицалық жүйесінің жобасы

Жоспар бойынша жүйе жалпы басқару арқылы жұмыс істеу керек болатын, алайда әрбір квадрантта синхронды жұмыс істейтін процессорлық элементтер үшін командалар беретін өзінің жеке басқару құрылығысы орналасты. Мұнда екі квадрантты 128 процессорлық элементтен тұратын бір квадрантқа біріктіру немесе барлық төрт квадрантты 16×16 бір матрица ретінде есептеу мүмкіндігі қарастырылған. Жоба бойынша компьютердің такті уақыты 40 нс, ал шектік өнімділігі секундына 1 миллиард нақты операцияға тең болады деп жоспарланған. Әрине, бұл өз уақытындағы күрделілігі және масштабы жағынан фантастикалық жоба екені анық. Жүйені құру 1967 жылы басталып, 1972 жылы 64 процессорлық элементтен тұратын бір квадрант дайындалды. Бұл жүйе NASA Ames (АҚШ) ғылыми-зерттеу орталығына орнатылып, 1975-ші жылдарға дейін толықтыру жұмыстары жүргізілді. Бұл бір экземпляр күйінде дайындалған жүйе нақты пайдалануда 1982-ші жылға дейін болып, соңында музейге өткізілді. Нәтижесінде не алынды? Төрт квадранттан және 256 процессорлық элементтен тұратын матрица жасау жоспарланып, біреуі ғана жасалынды, технологиялық пайымдаулар бойынша тактілік жобалау уақытын 80 нс-ке дейін арттыруға тура келді, төрттен бір бөлігін дайындау құнының өзі алдын-ала есептелген сомадан төрт есе жоғары болды, ал оның нақты өнімділігі секундына 50 млн. операцияға ғана жетті. Әрине, жобаны толық орындау мүмкіншілігі болмады, бірақ бұл жоба компьютерлердің келесі буынының архитектурасы және параллель есептеу жүйелерінің бағдарламалық қамтамасының көптеген компоненттерінің дамуына да зор үлесін қосты. Жобада қарастырылып, пысықталған технологиялар, параллельдеу компиляторлары туралы идеялар кейінірек PEPE, BSP, ISL DAP және де басқа көптеген жүйелерді, параллель компьютерлер мен супер ЭЕМ-ын құруда кеңінен пайдаланылды.

Компьютерлердің командалар жүйесіне векторлық операцияларды да енгізу идеясы көптен бері ғалымдар мен ізденушілерді қызықтырып келді. Біріншіден, векторлық операцияларды пайдалану машиналық командалар терминінде көптеген есептеу фрагментерін әлдеқайда қарапайым қысқа түрде жазуға мүмкіндік береді. Егер екі векторды қосу С = А + В керек болса, онда бірнеше қосымша командаларды (индексті үлкейту, циклдан шығу шартын тексеру, циклдің басына көшу және т.б.) орындау қажеттілігі жойылып, оның орнына, сәйкесінше, векторлық команданы пайдаланса жеткілікті. Көріп отырғанымыздай, есептеу тиімділігі дәстүрлі үлгілерден көп жоғары. Екіншіден, көптеген алгоритмдерді векторлық операциялар терминінде жеңіл өрнектеуге болатындығы. Үшіншіден, осындай операциялар конвейерлік құрылғыларды пайдалануда максимал тиімділікке жетуге мүмкіндік беретіндігі.

Векторлық командалар үлкен жетістіктермен пайдаланылған есептеу жүйелерінің жобаларына мысалдарды көптеп келтіруге болады. Солардың ішіндегі ең бастысы ретінде Cray векторлы-конвейерлік суперкомпьютерлерін айта кету керек.

1972 жылы Control Data Corporation компаниясының вице-президенті және көптеген есептеу машиналарының бас конструкторы болған С. Крэй компанияны тастап, жаңа Cray Research компанияcының негізін қалайды. Жаңа компания 1976 жылы өзінің бірінші векторлы-конвейерлік компьютерін Cray-1 құрастырып шығарады. Аталған компьютер архитектурасының негізгі ерекшеліктеріне векторлық командалар, тәуелсіз конвейерлік функционалдық құрылғылар және дамыған регистрлік структурасын айтуға болады. Конвейерлік және функционалдық құрылғылардың тәуелсіздігі компьютердің жоғары теориялық өнімділігін анықтады (бір тактіде екі операция), практика жүзінде векторлы командалар жоғары өнімділікке жету жолын қысқартты (конвейерлердің тиімді жүктелуі), ал регистрлі функционалды құрылғылар жұмысы санаулы операциялар кезінде де жоғары өнімділікке жетуге мүмкіндік берді.

Cray-1 компьютерінің жалпы сипаттамалары: тактілік уақыты 12,5 нс, конвейерлік функционалдық құрылғылар саны – 12 және де бұл конвейерлік функционалдық құрылғылардың бәрі де бір-біріне тәуелсіз бір мезгілде жұмыс істей алады, жедел жадысы 1 Мс-ға дейін, компьютердің шектік өнімділігі секундына 160 млн. операция. Кейінгі тарауларда, біз Cray-1 компьютерінің архитектурасына көп ұқсас, бірақ одан 15 жыл кейін пайда болған Cray-С90 векторлы-конвейерлік компьютерінің архитектурасы мен бағдарламалау ерекшеліктеріне жеке тоқталатын боламыз.

Сонымен, компьютер архитектурасының ерекшеліктерін талдай келе біз өте маңызды мәселелердің біріне бірнеше рет тоқталып өттік – ол мәселе процессор жұмысының жылдамдығы және жадыдан деректерді таңдау уақыты арасындағы үйлесімділік (келісімділік) мәселесі. Бір компьютерлерде жадының қабатталуы пайдаланылса, біреулеріне дамытылған регистрлік структура, көпдеңгейлі жады, кэш-жады немесе т.б. енгізілген, бірақ барлық жағдайда да жадыны осылайша ұйымдастыру ерекшеліктері тек бір мақсатқа жету үшін бағытталған – деректерді және командаларды таңдауды жеделдету.

Бағдарламалардың басым көпшілігінің орындалу процесі екі қасиетпен сипатталатыны белгілі: есептеудің жергіліктілігі және деректерді пайдалану жергіліктілігі. Екі жағдайда да бағдарламаның жұмысы үшін қажетті келесі объект (команда немесе операнда) жедел жадыда алдыңғы объектіге «жақын» жерде орналасады. Бір оператордан және көп итерациядан тұратын цикл – жоғары есептеу локальділігі ұйымдастырылған бағдарлама фрагментінің идеалды мысалы бола алады. Тәжірибе жүзінде көптеген бағдарламаларда осы екі қасиет есептеудің жергіліктілігі және деректерді пайдалану жергіліктілігі де кездеседі. Әрине, бұл заңдылық емес. Подпрограммалар және функцияларды шақыру, массивтерді жанама адрестеу, көп өлшемді массивтер және деректердің күрделі структурасымен сәтсіз жұмыс істеу, әртүрлі шартты операторларды пайдалану – мұның бәрі нақты бағдарламалардағы жергіліктілік қасиетінің әлсіздену себебінің тек шамалы тізімі ғана.

Бағдарламалау тілдеріндегі есептеу және деректерді пайдалану жергіліктілігін анықтайтын негізгі конструкция циклдар болып табылады. Әрине, цикл денесін жылдам жадыға орналастырған орынды, себебі келесі итерацияда дәл сол командаларды орындау қажет болуы мүмкін. Деректермен де осыған ұқсас ситуация: жиі пайдаланылатындардың барлығын да, оқу/жазу уақыты және процессордың жұмыс істеу жылдамдығы әруақытта үйлестірілген (келісілген) регистрларда сақтаған тиімді. Бірақ-та, деректердің үлкен көлемін регистрларде ұстау мүмкін емес. Бұндай жағдайларда жады иерархиясындағы келесі деңгей, мысалы, кэш-жады пайдаланылады. Егер кэш-жады көлемі жетпесе, онда келесі деңгейді іске қосуға және т.с. болады. Күнделікті өмірден бұл фактіге ұқсас көптеген мысалдар келтіруге болады. Мысалы, кітапхананың оқу залын қарастырып көрелік. Күнделікті қажеттінің бәрі залдағы қол жетімді жұмыс столдарына (регистрлар) қойылады, жиі пайдаланылатын кітаптар қоры осы залдағы сөрелерге жайғастырылады (кэш-жады), негізгі кітаптар қоры залға жақын маңдағы бөлмелерде сақталады (негізгі жады), кейбір жағдайларда кітапхананың абоненттік бөліміне, архив қорларына баруға тура келеді (дискілік жады), табылмаған кітаптарды басқа кітапханалардан заказ беретін кездер де кездеседі (магниттік лентадағы (дискідегі) архив).

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

Әрине, әрбір компьютердегі жады иерерхиясын қалыптастыру заңдылығы бірдей: иерархия деңгейі жоғары болған сайын деректермен жұмыс істеу жылдамдығы да жоғары.

Жады иерархиясын пайдаланудың тиімділігі ертеде белгілі болды. Жоғарыда қарастырылған ILLIAC IV компьютерінің өзінде төрт деңгейді бөлуге болады. Әрбір процессорлық элемент 6 бағдарламалық адрестелген регистрлерді және 2048 сөзге арналған өзінің жеке жергілікті жедел жадысын қамтыды. Деректерді сақтау үшін әрбірі 1 Гбит болатын екі қатты диск пайдаланылды, ал деректерді ұзақ мерзімге сақтау үшін, сыйымдылығы 1012 бит болатын бір реттік жазбалы лазерлік жады қолданылды (аргондық лазер сәулесі барабанға бекітілген, жұқа металдан жасалған пленкаға тесіктер күйдіріп түсірді).

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

Сұрақтар мен тапсырмалар

  1. Компьютердің тактілік уақыты және тактілік жиілігі бір бірімен қандай қатынаспен байланысқын?

  2. Егер компьютердің тактілік уақыты 2,5 нс тең болса, және әрбір тактіде ол екі операция орындай алса, онда компьютердің шектік өнімділігі неге тең?

  3. Мектеп немесе ЖОО өмірінен, өндірістен конвейерлік өңдеуге мысал келтіріңіз.

  4. Мектеп немесе ЖОО өмірінен, өндірістен параллель өңдеуге мысал келтіріңіз.

  5. Компьютер параллель жұмыс жасайтын 7 құрылғыдан тұрсын және оның әрбірі бір операцияны 7 уақыт бірлігінде орындай алсын. Қандай минимал уақытта бұл компьютер 7 тәуелсіз операцияны өңдей алады?

  6. Конвейерлік құрылғы сәйкесінше n1 , n2, ..., nk тактіде қосылатын к деңгейден тұрсын. Осы құрылғыда m операция қандай минималді такті санында орындалады?

  7. Не себепті конвейерлік компьютердің шектік өнімділігіне практика жүзінде дәл жету мүмкін емес?

  8. Соңғы компьютерлердің жады иерархиясында қандай деңгейлер пайдаланылады?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]