Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры к ГОСАМ (все билеты).doc
Скачиваний:
4
Добавлен:
01.04.2025
Размер:
2 Мб
Скачать
☆

3. Системы массовой параллельной обработки (мрр). Супер эвм фирмы sgi - Cray t3e(t3d) -1200.

MPP архитектура (massive parallel processing) - массивно-параллельная архитектура. Главная особенность такой архитектуры состоит в том, что память физически разделена. В этом случае система строится из отдельных модулей, содержащих процессор, локальный банк операционной памяти (ОП), два коммуникационных процессора (рутера) или сетевой адаптер, иногда - жесткие диски и/или другие устройства ввода/вывода. Один рутер используется для передачи команд, другой - для передачи данных. По сути, такие модули представляют собой полнофункциональные компьютеры (см. рис.). Доступ к банку ОП из данного модуля имеют только процессоры (ЦП) из этого же модуля. Модули соединяются специальными коммуникационными каналами. Пользователь может определить логический номер процессора, к которому он подключен, и организовать обмен сообщениями с другими процессорами. Используются два варианта работы операционной системы (ОС) на машинах MPP архитектуры. В одном полноценная операционная система (ОС) работает только на управляющей машине (front-end), на каждом отдельном модуле работает сильно урезанный вариант ОС, обеспечивающий работу только расположенной в нем ветви параллельного приложения. Во втором варианте на каждом модуле работает полноценная UNIX-подобная ОС, устанавливаемая отдельно на каждом модуле. 

Г лавным преимуществом систем с раздельной памятью является хорошая масштабируемость: в отличие от SMP-систем в машинах с раздельной памятью каждый процессор имеет доступ только к своей локальной памяти, в связи с чем не возникает необходимости в потактовой синхронизации процессоров. Практически все рекорды по производительности на сегодняшний день устанавливаются на машинах именно такой архитектуры, состоящих из нескольких тысяч процессоров (ASCI Red, ASCI Blue Pacific). 

Недостатки:

• отсутствие общей памяти заметно снижает скорость межпроцессорного обмена, поскольку нет общей среды для хранения данных, предназначенных для обмена между процессорами. Требуется специальная техника программирования для реализации обмена сообщениями между процессорами.  • каждый процессор может использовать только ограниченный объем локального банка памяти.  • 

Системы Cray T3E - это масштабируемые параллельные системы. Каждый процессорный элемент (ПЭ) Cray T3E имеет свою собственную DRAM-память объемом от 64 Мбайт до 2 Гбайт. В отличие от системы CRAY T3D, в которой исполняемая задача запрашивает фиксированное количество процессоров на все время выполнения, в CRAY T3E свободные процессоры могут использоваться другими задачами.

Каждый узел в системе содержит один процессорный элемент (ПЭ), включающий процессор, память и средство коммутации, которое осуществляет связь между ПЭ. Система конфигурируется до 2048 процессоров.

Системы Cray T3E выполняют операции ввода/вывода через многочисленные порты на один или более каналов GigaRing. Каналы ввода/вывода интегрированы в трехмерную межузловую сеть и пропорциональны размеру системы.

Быстродействие серии Cray T3E-1200 в два раза превышает производительность систем Cray T3E при уменьшенной вдвое стоимости за Мфлоп. Конфигурации в воздушно-жидкостном охлаждении имеют от 6 процессоров, а в жидкостном - от 32 процессоров. Система предназначена для наиболее важных научных и технических задач в аэрокосмической, автомобильной, финансовой, химико-фармацевтической, нефтяной и т.д. отраслях промышленности, а также в широких областях прикладных исследований, включая химию, гидродинамику, предсказание погоды и сейсмические процессы.

Билет 29

1. Ввод-вывод. Потоки ввода-вывода. Библиотека ввода-вывода (iostream). Группы классов библиотеки ввода-вывода. Краткая характеристика иерархии классов производимых от conbuf. Иерархия классов производимых от ios. Состояние потока. Ошибки потоков. Форматирование в С++. Форматирующие функции-члены. Форматирующие функции-элементы, изменяющие флаги форматирования. Управление потоком при помощи манипуляторов.

Библиотека потоков iostream представляет набор классов для управления вводом выводом (иерархию смотрите ниже). Эти классы имеют множество преимуществ, такие как надежность, расширяемость, простота и последовательность.

Библиотека iostream имеет 4 объекта-потока, которые ассоциированы со стандартным вводом выводом:

cin - стандартный ввод (клавиатура)

cout - стандартный вывод (на экран)

сегг - стандартное устройство ошибок с небуферизированным выводом

clog - то же, только с буферизированным выводом

В библиотеке используются 2 оператора:

« -- помещение в поток

»--извлечение из потока

Пример:

cout « ":-)"; //вывод на экран сложного слова

cin » YourName; //а теперь введите свое имя :)

Немножко пояснений по иерархии:

  • ios - базовый класс ввода/вывода определяет основные операторы состояния потока, форматирования обработки ошибок

  • istream - класс ввода из стандартного потока (клавиатуры)

  • ostream - класс вывода в стандартный поток (монитор)

  • iostream = istream+ostream.

  • fstream - работа с файловым потоком, организует стандартный ввод ifstream и стандартный вывод ofstream на жесткий диск.

  • streambuf, filebuf - буфера стандартного и файлового потока

Состояние потока. Ошибки потока. С каждым потоком связывается его состояние, определяемое с помощью комбинации:

enum io_state

{ goodbit=0, //нет ошибки

eofbit=1; //поток в конечной позиции

faitbit=2: //последняя операция ввода/вывода совершилась ненормально; ошибка форматирования или преобразования; использование потока можно продолжать

badbit=4: //ошибка ввода/вывода более серьезная; скорее всего дальше потоком пользоваться нельзя

hardfail=8 //неустранимая ошибка обычно связана с неисправным оборудованием

}

Состояние потока проверяется через функцию int rdstate(void), которая возвращает код ошибки, затем эта величина проверяется на то, какая ситуация имела место:

int eof() -состояние eof

int good() -состояние good

Int fail() -состояние fail or bad

int bad() -состояние bad

Функция clearfint(state=0) устанавливает состояние в state.

Форматирование. Существует три способа - функции, использование флагов и применение манипуляторов.

С каждым потоком связывается отдельный набор функций, доступ к которым осуществляется при содействии функций класса ios:

width() - макс. число символов

fill() - символ которым дополняется поле вывода (пробел по умолч.)

precision() - число дробных цифр вещественного числа

Флаги можно устанавливать или сбрасывать посредством функций setf и unsetf. Манипуляторы представляют собой функции, которые можно включать в цепочку последовательных операций помещения и извлечения из потока.