Реализация прототипа комплекса аппаратных средств мультипроцессора для Т-системы
Позлевич Р.В.
- Общая схема мультипроцессора
- Коммуникационная сеть
- Ethernet-коммутатор BayStack 350T
- Базовое общесистемное программное обеспечение-Linux/SMP
- Особенности установки ОС Linux/SMP на ALR Revolution 6x6
В отчетный период разработки проекта Т-системы предоставленная поддержка (в виде образцов вычислительной техники) позволила реализовать прототип комплекса аппаратных средств мультипроцессора. Прототип реализован по схеме мультикомпьютер: быстрая локальная сеть мощных рабочих Unix-станций. В составе мультикомпьютера использованы традиционные (однопрoцессорные) и SMP-мультипроцессорные PC-совместимые Unix-станции.
Структурная схема комплекса аппаратных средств мультипроцессора представлена ниже (Рисунок 1).
Основные технические характеристики комплекса в целом:
- пиковая теоретическая производительность комплекса- 5.5 GFlops;
- число вычислительных узлов- 9;
- число процессоров (PPro/200 и P2/266)- 24;
- оперативная память- 1,408 MB;
- дисковая память- 70.4 GB.
Подробнее технические характеристики узлов и комплекса в целом представлены ниже (Таблица 1, Таблица 2).
Рисунок 1. Структурная схема комплекса аппаратных средств мультипроцессора
Таблица 1. Укрупненная спецификация комплекса аппаратных средств мультипроцессора Т-системы
Число узлов Число процессоров
в узле
Тип
процессораТеоретический пик процессора (MFlops) Теоретический пик узла (MFlops)
RAM
(MB)
HDD
(GB)узел 6xPPro/200 2 6 PPro/200 200 1,200 256 12.8 узел 2xP2/266 5 2 P2/266 266 532 128 6.4 узел 1xP2/266 2 1 P2/266 266 266 128 6.4 ВСЕГО: 9 24 - - 5,592 1,408 70.4
Таблица 2. Спецификация вычислительных узлов комплекса аппаратных средств мультипроцессора Т-системы
Компонента Описание Однопроцессорный узел P2/266 MB ASUS P2PL97 ATX CPU Pentium2/266 RAM 128MB SDRAM 10ns Video Matrox Mistique 220 4MB NIC Intel EtherExpress PCI 10/100 Fast Ethernet HDD Quantum ST 6.4GB UDMA CD-ROM Creative 24x FDD 1.44MB FDD Двухпроцессорный узел 2P2/266 MB SuperMicro P6DLE ATX CPU 2 Pentium2/266 RAM 128MB SDRAM 10ns Video Matrox Mistique 220 4MB NIC Intel EtherExpress PCI 10/100 Fast Ethernet HDD Quantum SE 6.4GB UDMA CD-ROM Creative 24x FDD 1.44MB FDD Шестипроцессорный узел 6PPro/200 (ALR Revolution 6x6) CPU 6 PentiumPro/200 RAM 256MB ECC Video CL5446 4MB NIC DEC21142/43 PCI 10/100 Fast Ethernet HDD 2 Western Digital Caviar-AC36400L 6.4Mb CD-ROM 16x SCSI CD-ROM Drive FDD 1.44MB FDD
Коммуникационная сеть прототипа комплекса аппаратных средств мультипроцессора представляет собой современную локальную сеть на базе протокола Switched Fast Ethernet 100Base-TX. Кабельная система коммуникационной сети выполнена на основе фольгированной витой пары категории 5 (FTP Cat5). В качестве активного оборудования используется Ethernet-коммутатор (Ethernet Switch) BayStack 350T.
Ethernet-коммутатор BayStack 350T
В коммуникационной сети прототипа комплекса аппаратных средств мультипроцессора используется 16-портовый Ethernet-коммутатор (Ethernet Switch) BayStack 350T, имеющий следующие основные технические характеристики:
- наименование изделия-BayStack 350T Ethernet Switch with 16 10/100Mbps switched ports;
- 16 RJ-45 10/100Mbps коммутируемых портов;
- автоматическое распознавание скорости клиента (10/100Mbps)
- поддержка дуплексных операций на всех портах,
- автоматическое распознавание возможности дуплексных операций с клиентом
- способность коммутации-1.2Gbps, 1.6 миллионов пакетов в секунду
- поддерживается до 8192 MAC-адресов сетевых плат
- поддерживает приоритетную передачу для мультимедийных или других чувствительных к задержке потоков данных
- поддержка IEEE 802.1D Spanning Tree
- поддержка протокола telnet для локального управления
- различная поддержка протоколов управления коммуникационным оборудованием (включая SNMP и др.)
Базовое общесистемное программное обеспечение-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:
- Первые два числа-время, затраченное программой в пользовательском (
u
) и системном (s
) режимах.- Третье и четвертое числа-общее время работы программы и утилизация процессора соответственно.
Программа работала 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 дисциплины кэширования дисковых операций и
- значительным объемом установленной в ALR Revolution 6x6 оперативной памяти-256Мb.
Отсутствие в ОС Linux эффективной поддержки PCI-IDE контроллера Symphony Labs SL82C105 сегодня является единственной проблемой установки ОС Linux на ALR Revolution 6x6. Возможны следующие подходы к ее решению:
- Покупка и установка внешнего IDE-контроллера, обладающего достаточной производительностью и имеющего хорошую поддержку в ОС Linux. Например, может быть использован контроллер Promise Ultra33 IDE.
- Покупка и установка покупка SCSI-дисков (или RAID-массива) для хранения данных с быстрым доступом.
- Продолжение использования (сегодня-неэффективного использования) PCI-IDE контроллера Symphony Labs SL82C105-с уверенностью, что в ближайшее время в новых версиях ОС Linux появится эффективная поддержка данной аппаратуры.
1999 © T-System | © ИЦМС ИПС РАН |