Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на экзаменационные вопросы.doc
Скачиваний:
45
Добавлен:
01.05.2014
Размер:
888.32 Кб
Скачать

9. Использование традиционных микропроцессоров для построения многопроцессорных систем. Микропроцессоры с нетрадиционной архитектурой. Архитектура транспьютера т-805.

Согласно данным TOP500 (www.top500.org), с точки зрения применяемых процессоров безусловное первенство принадлежит Intel (с процессорами Itanium или Xeon), далее идут IBM с семейством POWER, HP c PA-RISC и AMD. Этот факт наглядно демонстрирует тенденцию к тому, что стандартные компоненты Intel все шире используются для создания высокопроизводительных вычислительных решений. По мнению руководства Intel, этот факт свидетельствует о том, что сообщество разработчиков высокопроизводительных вычислений отдает предпочтение стандартным компонентам, видя в этом большие преимущества. В результате мир уходит от использования экспериментальных систем на основе компонентов собственной разработки, которые стоят целое состояние и на создание которых уходят годы. Число систем на базе архитектуры Itanium в списке самых мощных в мире компьютеров TOP500 сейчас превышает общее число систем на базе RISC-архитектуры.

Ну а вот на рисунке ниже наш Т-805.

10. Программная модель parix: статические и динамические возможности. Система индексации процессоров в малтикластереMc-3de. Идентификация процессоров

Статические свойства:

  • идентичные программы запускаются на всех процессорах;

  • обеспечивается идентификация всех процессоров в сети;

  • предопределенная топлогия.

Динамические свойства:

  • возможность создания потоков (threads) на одном процессоре

  • возможность создания виртуальных линков между любыми процессорами

  • синхронная и асинхронная коммутация

  • возможность создания виртуальных топологий

  • загрузка и выполнение дополнительных кодов

Программе, выполняемой на каждом процессоре, доступна следующая информация:

  • количество процессоров в разделе;

  • идентификатор данного процессора;

  • размеры решетки раздела;

  • положение данного процессора в решетке (координаты);

Эти данные можно получить программно из структуры:

typedef struct {

int MyProcID; // уникальный идентификатор процессора

int MyX; // координата процессорного элемента по оси X

int MyY; // координата процессорного элемента по оси Y

int MyZ; // координата процессорного элемента по оси Z

int nProcs; // количество процессорных элементов

int DimX; // размерность решетки процессорных элементов по оси X

int DimY; // размерность решетки процессорных элементов по оси Y

int DimZ; // размерность решетки процессорных элементов по оси Z

} RootProc_t;

Например, получение идентификатора процессорного элемента:

int MyProcID = GET_ROOT()->ProcRoot->MyProcID;

Визуально решетку процессорных элементов можно изобразить так:

Обмен данных основан на концепции виртуальных связей между процессорами, которые образуют каналы «точка-точка» между любыми процессорами. Набор созданных виртуальных связей задает виртуальную топологию (решетка, конвейер, дерево, гиперкуб).

11. Средства и правила создания параллельных программ на одном процессоре. Работа встроенного планировщика.

Работа встроенного планировщика

Планировщик обрабатывает параллельные процессы на одном процессоре.

У нас тут реализован аппаратный планировщик. В любой момент времени существуют активные и неактивные процессы.

Активные выполняются либо готовы к выполнению. Примеры неактивных: ожидание ввода/вывода.

Только активные процессы попадают в планировочный список.

Планировочный список — связный список рабочих областей активных процессов.

Процессы с низким приоритетом выполняются только когда список процессов с высоким приоритетом пуст.

Во время выполнения процессы могут перейти в неактивное состояние.

Если во время выполнения процесса с низким приоритетом появляется процесс с высоким приоритетом, происходит прерывание процесса с низким приоритетом.

Текущий активный процесс низкого приоритета выполняется до тех пор пока:

  • он не завершится

  • он становится неактивным

  • пока не появится процесс с высшим приоритетом

  • время выполнения процесса не превышает время синхронизации (750 мкс).

Механизм синхронизации для процессов с высшим приоритетом не работает.

Про планировщик см. вопрос 16.