Реализация прототипа комплекса аппаратных средств мультипроцессора для Т-системы

Позлевич Р.В.



Общая схема мультипроцессора

В отчетный период разработки проекта Т-системы предоставленная поддержка (в виде образцов вычислительной техники) позволила реализовать прототип комплекса аппаратных средств мультипроцессора. Прототип реализован по схеме мультикомпьютер: быстрая локальная сеть мощных рабочих Unix-станций. В составе мультикомпьютера использованы традиционные (однопрoцессорные) и SMP-мультипроцессорные PC-совместимые Unix-станции.

Структурная схема комплекса аппаратных средств мультипроцессора представлена ниже (Рисунок 1).

Основные технические характеристики комплекса в целом:

Подробнее технические характеристики узлов и комплекса в целом представлены ниже (Таблица 1, Таблица 2).

Рисунок 1. Структурная схема комплекса аппаратных средств мультипроцессора
Таблица 1. Укрупненная спецификация комплекса аппаратных средств мультипроцессора Т-системы

Число узлов
Число процессоров
в узле

Тип
процессора
Теоретический пик процессора (MFlops)
Теоретический пик узла (MFlops)

RAM
(MB)

HDD
(GB)
узел 6xPPro/20026
PPro/200
200 1,20025612.8
узел 2xP2/26652
P2/266
266 5321286.4
узел 1xP2/26621
P2/266
266 2661286.4
ВСЕГО:9 24
-
-5,592 1,40870.4

Таблица 2. Спецификация вычислительных узлов комплекса аппаратных средств мультипроцессора Т-системы
КомпонентаОписание
Однопроцессорный узел P2/266
MBASUS P2PL97 ATX
CPUPentium2/266
RAM128MB SDRAM 10ns
VideoMatrox Mistique 220 4MB
NICIntel EtherExpress PCI 10/100 Fast Ethernet
HDDQuantum ST 6.4GB UDMA
CD-ROMCreative 24x
FDD1.44MB FDD
Двухпроцессорный узел 2P2/266
MBSuperMicro P6DLE ATX
CPU2 Pentium2/266
RAM128MB SDRAM 10ns
VideoMatrox Mistique 220 4MB
NICIntel EtherExpress PCI 10/100 Fast Ethernet
HDDQuantum SE 6.4GB UDMA
CD-ROMCreative 24x
FDD1.44MB FDD
Шестипроцессорный узел 6PPro/200 (ALR Revolution 6x6)
CPU6 PentiumPro/200
RAM256MB ECC
VideoCL5446 4MB
NICDEC21142/43 PCI 10/100 Fast Ethernet
HDD2 Western Digital Caviar-AC36400L 6.4Mb
CD-ROM16x SCSI CD-ROM Drive
FDD1.44MB FDD

Коммуникационная сеть

Коммуникационная сеть прототипа комплекса аппаратных средств мультипроцессора представляет собой современную локальную сеть на базе протокола Switched Fast Ethernet 100Base-TX. Кабельная система коммуникационной сети выполнена на основе фольгированной витой пары категории 5 (FTP Cat5). В качестве активного оборудования используется Ethernet-коммутатор (Ethernet Switch) BayStack 350T.

Ethernet-коммутатор BayStack 350T

В коммуникационной сети прототипа комплекса аппаратных средств мультипроцессора используется 16-портовый Ethernet-коммутатор (Ethernet Switch) BayStack 350T, имеющий следующие основные технические характеристики:

Базовое общесистемное программное обеспечение-Linux/SMP

Linux версии 2.0.xx (stable, стабильный) имеет поддержку SMP и может быть использован на PII системах и 2PII системах, но не на ALR Revolution 6x6.

Linux версии 2.1.xx (development, в разработке) имеет оптимизированную поддержку SMP и может быть использован на всех типах узлов мультипроцессора. Пример эффективности поддержки SMP в ОС Linux версии 2.1.92 на ALR Revolution 6x6 приведен в разделе 3.2.

SMP-мультипроцессирование. Терминология

MIMD (Multiple Instruction stream, Multiple Data stream-множественные потоки команд, множественные данные) обозначает модель параллельного исполнения, в которой каждый процессор работает независимо от других процессоров. Эта модель наиболее естественно укладывается в концепцию распараллеливания задач на основе функционального подхода.

Разделяемая (общая) память (Shared Memory). Разделяемая память-это модель взаимодействия процессоров внутри параллельной системы. В системах с физически разделяемой между несколькими процессорами памятью значение, записанное в память одним из процессоров, может быть напрямую доступно для другого процессора-для передачи данных между процессорами не требуется делать обращение к сетевой поддержке.

Если в системе каждый процессор имеет свою собственную память, то возможна реализация так называемой логически разделяемой памяти (logically shared memory). Этот способ реализуется посредством трансляции обращений к памяти по нелокальному адресу в соответствующий вид межпроцессорных коммуникаций.

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

SMP (Symmetric Multi-Processor-симметричное мультипроцессирование) обозначает концепцию операционной системы при работе с группой процессоров как с равнозначными, то есть любая работа совершенная одним процессором, может быть в равнозначной степени выполнена любым другим. Как правило, SMP подразумевает MIMD + shared memory. В мире IA32 (Intel Architecture, 32-bit) SMP означает совместимость с MPS (Intel MultiProcessor Specification).

Демонстрация эффективности поддержки SMP в ОС Linux версии 2.1.92 на ALR Revolution 6x6

Ниже приводится пример параллельного исполнения программ на 6-ти процессорах. В качестве тестовой программы использована программа обсчета трехмерных изображений trt. Ниже приведен протокол запуска тестовой программы.

revolt:~/t-system/w> time ./trt ../xtrt/scenes/balls1.nff /dev/null
_UT_APP_INIT_STEP called with 2 args
../xtrt/scenes/balls1.nff
/dev/null
opening /dev/null for output

Light sources: Point lights .. 3
Solids:        Spheres ....... 10
               Polygons ...... 1

40.020u 0.030s 0:40.05 100.0%   0+0k 0+0io 119pf+0w

Первый аргумент программы-имя файла содержащего сцену для обсчета, второй-имя файла для вывода обсчитанного результата. В данном случае для вывода результата используется файл /dev/null, что означает, что результат запуска не будет сохранен (для данного эксперимента важно было только значение времени счета задачи).

Время работы программы измеряется командой time-встроенной командой пользовательской оболочки tcsh. Последняя строка в приведенном протоколе-статистика выполнения, выданная командой time:

Программа работала 40 секунд и утилизировала 100% вычислительной мощности процессора.

Ниже приведен протокол одновременного запуска шести копий программы trt ( время работы каждой копии замеряется командой time):


   revolt:~/t-system/w> time ./trt ../xtrt/scenes/balls1.nff /dev/null & \
                        time ./trt ../xtrt/scenes/balls1.nff /dev/null & \
                        time ./trt ../xtrt/scenes/balls1.nff /dev/null & \
                        time ./trt ../xtrt/scenes/balls1.nff /dev/null & \
                        time ./trt ../xtrt/scenes/balls1.nff /dev/null & \
                        time ./trt ../xtrt/scenes/balls1.nff /dev/null

 skipped 

39.990u 0.040s 0:40.03 100.0%   0+0k 0+0io 109pf+0w
40.000u 0.020s 0:40.02 100.0%   0+0k 0+0io 109pf+0w
40.000u 0.030s 0:40.02 100.0%   0+0k 0+0io 109pf+0w
40.020u 0.020s 0:40.04 100.0%   0+0k 0+0io 109pf+0w
40.000u 0.060s 0:40.06 100.0%   0+0k 0+0io 109pf+0w
40.050u 0.030s 0:40.08 100.0%   0+0k 0+0io 109pf+0w

Таким образом, шесть одинаковых независимых (не взаимодействующих) процессов, запущенных одновременно, выполняются в ALR 6x6 с ОС Linux/SMP параллельно и за то же самое время, что и один процесс. Утилизация вычислительной мощности каждого процессора-100%.

Особенности установки ОС Linux/SMP на ALR Revolution 6x6

Fast/Wide Ultra SCSI контроллер Adaptec-7880

ALR Revolution 6x6 укомплектовывается (в составе материнской платы) Fast/Wide Ultra SCSI контроллером Adaptec-7880. ОС Linux имеет полную поддержку этого контроллера (драйвер aic7xxx), но до недавнего времени эта поддержка конфликтовала с использованием SMP. Это и являлось основным препятствием в установке Linux на ALR, что описано в доступной документации по Linux.

В последних ядрах ОС Linux серии 2.1.xx драйвер aic7xxx был исправлен, и на данный момент указанная проблема устранена.

PCI-IDE контроллер Symphony Labs SL82C105

ALR Revolution 6x6 снабжен достаточно редким PCI-IDE контроллером Symphony Labs SL82C105. ОС Linux не имеет специальной поддержки данного контролера, кроме функций распознавания и сбрасывания контроллера в режим доступа PIO0. Это влечет замедление ввода/вывода информации с жесткого диска. Измеренная нами скорость передачи данных при работе с жестким диском WDC AC36400L равнялась 1.66 MB/s, в то время как использование такого же жесткого диска с Intel 82371AB PIIX4 IDE-контроллером обеспечивает скорость передачи данных 9 MB/s. Частично данная проблема компенсируется:

Отсутствие в ОС Linux эффективной поддержки PCI-IDE контроллера Symphony Labs SL82C105 сегодня является единственной проблемой установки ОС Linux на ALR Revolution 6x6. Возможны следующие подходы к ее решению:

 


1999 © T-System© ИЦМС ИПС РАН