авторефераты диссертаций БЕСПЛАТНАЯ БИБЛИОТЕКА РОССИИ

КОНФЕРЕНЦИИ, КНИГИ, ПОСОБИЯ, НАУЧНЫЕ ИЗДАНИЯ

<< ГЛАВНАЯ
АГРОИНЖЕНЕРИЯ
АСТРОНОМИЯ
БЕЗОПАСНОСТЬ
БИОЛОГИЯ
ЗЕМЛЯ
ИНФОРМАТИКА
ИСКУССТВОВЕДЕНИЕ
ИСТОРИЯ
КУЛЬТУРОЛОГИЯ
МАШИНОСТРОЕНИЕ
МЕДИЦИНА
МЕТАЛЛУРГИЯ
МЕХАНИКА
ПЕДАГОГИКА
ПОЛИТИКА
ПРИБОРОСТРОЕНИЕ
ПРОДОВОЛЬСТВИЕ
ПСИХОЛОГИЯ
РАДИОТЕХНИКА
СЕЛЬСКОЕ ХОЗЯЙСТВО
СОЦИОЛОГИЯ
СТРОИТЕЛЬСТВО
ТЕХНИЧЕСКИЕ НАУКИ
ТРАНСПОРТ
ФАРМАЦЕВТИКА
ФИЗИКА
ФИЗИОЛОГИЯ
ФИЛОЛОГИЯ
ФИЛОСОФИЯ
ХИМИЯ
ЭКОНОМИКА
ЭЛЕКТРОТЕХНИКА
ЭНЕРГЕТИКА
ЮРИСПРУДЕНЦИЯ
ЯЗЫКОЗНАНИЕ
РАЗНОЕ
КОНТАКТЫ


Pages:     | 1 || 3 | 4 |

«МИНОБРНАУКИ РОССИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Московский государственный технический ...»

-- [ Страница 2 ] --

Следует иметь в виду, что производительность персональных компьютеров на базе процессоров Intel в последние годы также значительно выросла. Такие компьютеры стали создавать серьезную конкуренцию рабочим станциям на базе RISC, особенно по показателю цена/производительность. Одновременно стала приобретать все большую популярность ОС Linux - бесплатно распространяемая версия UNIX. При этом в научных организациях и университетах, как правило, имеются энтузиасты свободного программного обеспечения и специалисты ("гуру") по ОС Linux.

В 1994 году, в NASA возникла идея [30] создания параллельных вычислительных систем (кластеров) из общедоступных компьютеров на базе Intel и недорогих Ethernet-сетей, устанавливая на эти компьютеры Linux и одну из свободно распространяемых коммуникационных библиотек (PVM, а затем MPI). Оказалось, что для многих классов задач при достаточном числе узлов такие системы дают производительность, сравнимую с производительностью суперкомпьютера.

Основным параметром классификации паралелльных компьютеров является наличие общей (SMP) или распределенной памяти (MPP). Нечто среднее между SMP и MPP представляют собой NUMA-архитектуры, где память физически распределена, но логически общедоступна. Кластерные системы являются более дешевым вариантом MPP. При поддержке команд обработки векторных данных говорят о векторно-конвейерных процессорах, которые, в свою очередь могут объединяться в PVP-системы с использованием общей или распределенной памяти. Все большую популярность приобретают идеи комбинирования различных архитектур в одной системе и построения неоднородных систем.

При организациях распределенных вычислений в глобальных сетях (Интернет) говорят о мета-компьютерах, которые, строго говоря, не представляют из себя параллельных архитектур.

Более подробно особенности всех перечисленных архитектур приведены в таблице 1.2. Для каждого класса суперкомпьютеров приводится следующая информация:

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

Таблица 1.2 Архитектуры и особенности классов суперкомпьютеров.

Массивно-параллельные системы (MPP) Система состоит из однородных вычислительных узлов, Архитектура включающих:

один или несколько центральных процессоров (обычно RISC), локальную память (прямой доступ к памяти других узлов невозможен), коммуникационный процессор или сетевой адаптер иногда - жесткие диски (как в SP) и/или другие устройства В/В К системе могут быть добавлены специальные узлы ввода-вывода и управляющие узлы. Узлы связаны через некоторую коммуникационную среду (высокоскоростная сеть, коммутатор и т.п.) Программирование в рамках модели передачи сообщений ( MPI, Модель программирования PVM, BSPlib) Симметричные мультипроцессорные системы (SMP) Система состоит из нескольких однородных процессоров и массива Архитектура общей памяти (обычно из нескольких независимых блоков). Все процессоры имеют доступ к любой точке памяти с одинаковой скоростью. Процессоры подключены к памяти либо с помощью общей шины (базовые 2-4 процессорные SMP-сервера), либо с помощью crossbar-коммутатора (HP 9000). Аппаратно поддерживается когерентность кэшей.

Программирование в модели общей памяти. (POSIX threads, Модель программирования OpenMP). Для SMP-систем существуют сравнительно эффективные средства автоматического распараллеливания.

Системы с неоднородным доступом к памяти (NUMA) Система состоит из однородных базовых модулей (плат), состоящих Архитектура из небольшого числа процессоров и блока памяти. Модули объединены с помощью высокоскоростного коммутатора.

Поддерживается единое адресное пространство, аппаратно поддерживается доступ к удаленной памяти, т.е. к памяти других модулей. При этом доступ к локальной памяти в несколько раз быстрее, чем к удаленной.

В случае, если аппаратно поддерживается когерентность кэшей во всей системе (обычно это так), говорят об архитектуре cc-NUMA (cache-coherent NUMA) Аналогично SMP.

Модель программирования Параллельные векторные системы (PVP) Основным признаком PVP-систем является наличие специальных Архитектура векторно-конвейерных процессоров, в которых предусмотрены команды однотипной обработки векторов независимых данных, эффективно выполняющиеся на конвейерных функциональных устройствах.

Как правило, несколько таких процессоров (1-16) работают одновременно над общей памятью (аналогично SMP) в рамках многопроцессорных конфигураций. Несколько таких узлов могут быть объединены с помощью коммутатора (аналогично MPP).

Эффективное программирование подразумевает векторизацию Модель циклов (для достижения разумной производительности одного программирования процессора) и их распараллеливание (для одновременной загрузки нескольких процессоров одним приложением).

Кластерные системы Набор рабочих станций (или даже ПК) общего назначения, Архитектура используется в качестве дешевого варианта массивно-параллельного компьютера. Для связи узлов используется одна из стандартных сетевых технологий (Fast/Gigabit Ethernet, Myrinet) на базе шинной архитектуры или коммутатора.

При объединении в кластер компьютеров разной мощности или разной архитектуры, говорят о гетерогенных (неоднородных) кластерах.

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

Программирование, как правило, в рамках модели передачи Модель сообщений (чаще всего - MPI). Дешевизна подобных систем программирования оборачивается большими накладными расходами на взаимодействие параллельных процессов между собой, что сильно сужает потенциальный класс решаемых задач.

1.4.1 Технологии сетевого объединения вычислительных узлов Fast Ethernet Пиковая пропускная способность - 100 Mbit/sec (12.5 MB/sec), Показатели полный дуплекс. В рамках MPI достигаются скорости порядка 6- производительности MB/sec.

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

Реальные кластеры RHIC Computing Facility в Brookhaven National Laboratory, 2194 процессора Intel Pentuim-III и Pentium-IV, Linux.

Gigabit Ethernet Пиковая пропускная способность - 1 Gbit/sec (125 MB/sec), Показатели полный дуплекс. В рамках TCP/IP достигаются скорости порядка производительности 500 Mbit/sec (60 MB/sec), в рамках MPI - до 45 MB/sec Преимуществом данной технологии является совместимость и Комментарии возможность плавного перехода с технологий Ethernet/Fast Ethernet.

Реальные кластеры Avalon в LANL - 140 процессоров Alpha, Linux, используются Fast Ethernet и Gigabit Ethernet.

Кластер в компании GX Technology Corporation - 3264 процессора Sun U-2, Pentium-III и Pentium-IV.

Myrinet 2000 / Myrinet-10G Пиковая пропускная способность - 2 Gbit/sec (10 Gbit/sec), Показатели полный дуплекс. В рамках TCP/IP достигаются скорости производительности порядка 1.7-1.9 Gbit/sec (9.6 Gbit/sec). Латентность - порядка Myrinet-2000 (в скобках мксек. На MPI-приложениях латентность составляет около для 10G) мксек, скорость передачи данных - до 200 MB/sec (до MB/sec на дуплексных операциях).

Myrinet является открытым стандартом. Myricom предлагает Комментарии широкий выбор сетевого оборудования по сравнительно невысоким ценам. На физическом уровне поддерживаются сетевые среды SAN (System Area Network), LAN (CL-2) и оптоволокно. Технология Myrinet-10G использует кабели стандарта 10Gbit-Ethernet и карты от Myricom могут работать как 10Gbit-Ethernet карты. Технология Myrinet дает высокие возможности масштабирования сети и в настоящее время очень широко используется при построении высокопроизводительных кластеров.

Реальные кластеры ПАРИТЕТ (ИВВиБД) - 4 узла по 2 процессора Pentium II, RedHat Linux.

HPC в University of Southern California - 756 узлов по 2 процессора Pentium-III и Pentium-IV, Linux RedHat 7.2.

Cplant в Sandia - почти 1400 рабочих станций и серверов Compaq на базе Alpha, Linux.

SuperMike 512 узлов с 2-мя процессорами Perntium Xeon 1.8 GHz, Linux RedHat 7.2.

cLAN Пиковая пропускная способность - 1066 MB/sec.

Показатели производительности Продукты семейства cLAN и MPI/Pro предлагаются в составе Комментарии технологии кластеризации Gigacluster.

Реальные кластеры: AC3 Velocity в CTC - 64 сервера PowerEdge по 4 процессора Pentium III.

SCI (Scalable Coherent Interface) Для продуктов Dolphin: пиковая пропускная способность - Показатели GB/sec, полный дуплекс, в рамках MPI достигается около производительности MB/sec. Аппаратная латентность - 0.2 мксек, в рамках MPI порядка 1,4 мксек.

SCI - стандартизированная технология (ANSI/IEEE l596-1992).

Комментарии Кроме стандартной сетевой среды, SCI поддерживает построение систем с разделяемой памятью и когерентностью кэшей. На коммуникационной технологии SCI основаны кластерные системы компании SCALI Computer, системы семейства hpcLine компании Siemens, а также cc-NUMA-сервера Data General и Sequent.

Технология SCI использовалась для связи гиперузлов в системах HP/Convex Exemplar X-class.

Реальные кластеры: Monotlith cluster on NSC - 200 узлов по 2 процессора Intel Xeon 2. GHz.

QsNetII Пиковая пропускная способность каналов - 1064 MBytes/sec Показатели (достигается 900 MBytes/sec в одном направлении, и производительности MBytes/sec в режиме Multi-rail). Латентность в рамках MPI порядка 1,5 мксек. Максимальный размер системы - более узлов.

Сетевое оборудование состоит из коммуникационных процессоров Комментарии "Elan" и матричных коммутаторов 4x4 "Elite". На базе этих коммутаторов строится единая коммуникационная среда с топологией "fat tree", поддерживается глобальная адресация оперативной памяти. Коммуникационное оборудование QsNet используется в системах AlphaServer SC от Compaq.

Реальные кластеры: MCR в Lawrence Livermore National Laboratory. 1152 узла по процессора Intel Xeon 2.2 GHz, Linux.

InfiniBand Пиковая пропускная способность каналов 10, 20, 30, 40 Gb/sec, Показатели латентность - 1,2 мксек.

производительности InfiniBand предлагает удалённый прямой доступ в память (remote Комментарии direct memory access - RDMA), позволяющий доставлять данные непосредственно в память процесса, не вовлекая системные вызовы. Данные могут передаваться 1-о,4-х и 12-ти кратной скоростью. Анонсирован стандарт EDR 12x, позволяющий передевать данные со скоростью 300 GB/sec.

Реальные кластеры: СКИФ-МГУ. [30] 1.4.2 Программные платформы развертывания вычислительных кластеров.

Для того, чтобы оценить степень простоты и удобства развертывания и использования вычислительного кластера, рассмотрим существующие дистрибутивы.

PelicanHPC GNU Linux (используется и развивается) [84] PelicanHPC - это модификация хорошо известного Linux-дистрибутива Debian Live, которая позволяет установить кластер компьютеров для выполнения параллельных вычислений с использованием LAM-MPI и/или MPICH реализаций интерфейса MPI или параллельных виртуальных машин PVM. Можно превратить комнату полную машин, работающих под управлением Windows в Linux-кластер, а после выполнения работ и перезагрузки Windows-машины оказываются в исходном состоянии, какое было до загрузки кластера. Компьютеры в кластере могут быть как гомогенные, так и гетерогенные. Если сетевые карты имеют возможность осуществлять PXE-загрузку, то запуск и конфигурация кластера занимает около 5 минут. Поддерживаются кластеры, содержащие от 2 до машин. Руководство содержит детальные и пошаговые инструкции по установке и настройке кластера.

Debian Cluster Components и DCC/Live (используется и развивается) [85] Debian Cluster Components (DCC) - это набор инструментов для максимально простого построения, управления и развертывания высокопроизводительного Linux-кластера. Набор состоит из следующих системных компонентов: инсталляционный набор, C3, система очередей TORQUE, OpenLDAP и Ganglia. Набор Debian-пакетов, установленный в используемой вами Debian-системе, обеспечивает полные функциональные возможности главной консоли кластера.

DCC/Live - основанный на Knoppix загрузочный CD, который обеспечивает виртуальную инфраструктуру Linux-кластера на единственном компьютере. Консоль кластера (front-node) и три виртуальных вычислительных узла (work-nodes) запускаемых с помощью механизма User Mode Linux доступны пользователю после загрузки системы.

Планировщик очередей заданий и другие специфические сервисы кластера предустановлены в систему и не требуют дополнительной настройки. Этот проект главным образом разработан для образовательных целей. Примеры параллельных программ и инструкции включены в состав CD.

Scalable Cluster Environment (используется и развивается) [86] Этот набор программ, названный SCE (Scalable Computing Environment), состоит из инструментального набора для построения кластера, комплексной системы управления (SCMS), масштабируемой системы контроля в реальном времени, Web-ориентированной системы мониторинга (KCAP), параллельных версий Unix-команд и планировщика задач.

ComputeMode (используется и развивается) [87] ComputeMode является средством для организации высокопроизводительной сети (HPC grid), которая может быть расширена путем подключения неиспользуемых компьютерных ресурсов. Например, ComputeMode позволяет построить виртуальный кластер, используя в качестве вычислительных узлов офисные компьютеры во время их простоя. На практике, большое количество машин в крупных компаниях простаивают в ночное время, в выходные, во время отпусков и командировок сотрудников. ComputeMode позволяет использовать эти ресурсы в своих интересах.

ROCKS cluster distribution [88, 89] (используется и развивается) [90] Rocks Cluster Distribution (первоначальное название NPACI Rocks) представляет собой дистрибутив Linux предназначенный для высокопроизводительных вычислительных кластеров. Разработка была начата Национальным партнерством для Передовых Вычислительныx Инфраструктур (NPACI) и SDSC в 2000 году и первоначально была частично профинансирована за счет гранта NSF[3] (2000-2007), но в настоящее время финансируется последующим NSF грантом. Rocks был первоначально основан на дистрибутиве Red Hat Linux, однако современные версии Rocks используют кодовую базу CentOS. Изменен установщик Anaconda, который теперь упрощает массовую установку на несколько компьютеров. Rocks включает в себя множество инструментов (например, MPI), которые не являются частью CentOS, но являются неотъемлемыми компонентами, которые преобразуют группу компьютеров в кластер.

В процессе установки система может быть настроена с дополнительными пакетами программного обеспечения с помощью специальных пользовательских компакт-дисков (так называемые “Roll CD”). "Roll"-диски расширяют систему путем бесшовной и автоматической интеграции в механизмы управления и контроля пакетами, используемыми базовым программным обеспечением, что значительно упрощает установку и настройку большого числа компьютеров. Более десятка Roll-дисков были созданы, в том числе SGE roll [прим. пер. Sun Grid Engine был переименован в Oracle Grid Engine [91]], Condor roll [91], Lustre roll [91], Java roll [91] и Ganglia roll [91].

С момента своего первого релиза, Rocks стал широко используемой кластерной операционной системой, для образовательных, правительственных и коммерческих организаций, работая на 1376 кластерах по всему миру, на всех континентах, кроме Антарктиды. Крупнейший зарегистрированный образовательный кластер, имеет процессоров, именуется «GridKa» и управляется Технологическим институтом Карлсруэ, г.

Карлсруэ, Германия. Есть также целый ряд кластеров в диапазоне до 10 процессоров, представляющих ранние стадии в строительстве больших систем, а также использующихся для курсов по проектированию и созданию кластеров. Столь простое масштабирование было основной целью в разработке Rocks, как для исследователей, принимавших участие, так и для NSF.

Kerrighed (крайний релиз от 14.06.2010, версия 3.0) [92] Kerrighed - это кластерная операционная система, относящаяся к типу так называемых Single System Image (SSI). Это означает, что с его помощью сеть компьютеров, объединенная в кластер, выглядит как одна большая машина, и процессы, запущенные на одном из узлов, могут свободно перемещаться на другие узлы. Кроме того, Kerrighed поддерживает (как уже говорилось) механизмы checkpoint/restart и общую глобальную память.

MOSIX [93] MOSIX это система управления кластерами на ядре Linux, представляющая их как одну систему (Single-System Image, SSI), то есть эквивалент операционной системы для кластера в целом. В кластере MOSIX нет необходимости в модификации существующих приложений, в связывании с дополнительными библиотеками, в явном входе на удаленные узлы – все это осуществляется автоматически, прозрачно для приложений подобно SMP.

Текущая актуальная версия MOSIX совместима с Linux версии 3.9.2. MOSIX реализована на уровне виртуализации операционной системы (OS Virtualization layer). Это позволяет приложениям работать на удаленных узлах в точности так же, как они бы работали локально. Пользователи запускают свои обычные приложения, MOSIX прозрачно для них ищет свободные ресурсы в кластере и распределяет процессы среди доступных узлов, увеличивая тем самым общую производительность.

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

На основе приведенных данных сделан вывод о том, что PelicanHPC является самой простой в развертывании и модификации программной платформой для организации бюджетного вычислительного кластера, обновления программного обеспечения выпускаются так же часто, как и для ОС Debian, и имеют совместимую кодовую базу с Ubuntu. Однако, так как он предоставляется на CD носителе, без возможности установить на жесткий диск сервера кластера. На втором месте по удобству ставится ROCKS cluster distribution – его достоинством является стабильность ОС CentOS, на которой он основан, но достоинство становится и недостатком, так как за стабильность приходится платить низкой частотой обновления программных пакетов.

1.4.3 Гибридные кластеры с графическими процессорами (GPU) [94] GPGPU [3] (англ. General-purpose graphics processing units – «GPU общего назначения») – техника использования графического процессора видеокарты, который обычно имеет дело с вычислениями только для компьютерной графики, чтобы выполнять расчёты в приложениях для общих вычислений, которые обычно проводит центральный процессор. Это стало возможным благодаря добавлению программируемых шейдерных блоков и более высокой арифметической точности растровых конвейеров, что позволяет разработчикам ПО использовать потоковые процессоры для не-графических данных.

Реализации CUDA – технология GPGPU, позволяющая программистам реализовывать на языках программирования семейства Си (C, C++, C#), Python [95,96,97], Java [98] алгоритмы, выполнимые на графических процессорах ускорителей GeForce восьмого поколения и старше (GeForce 8 Series, GeForce 9 Series, GeForce 200 Series, GeForce 300 Series, GeForce 400 Series, GeForce 500 Series, GeForce 600 Series), Nvidia Quadro и Nvidia Tesla компании Nvidia. Технология CUDA разработана компанией Nvidia.

OpenCL является языком программирования задач, связанных с параллельными вычислениями на различных графических и центральных процессорах.

AMD FireStream – технология GPGPU, позволяющая программистам реализовывать алгоритмы, выполнимые на графических процессорах ускорителей ATI.

Программно-аппаратная вычислительная архитектура CUDA [3, 99, 100] CUDA (англ. Compute Unified Device Architecture) - программно-аппаратная архитектура, позволяющая производить вычисления с использованием графических процессоров NVIDIA, поддерживающих технологию GPGPU (произвольных вычислений на видеокартах). Это архитектура параллельных вычислений от NVIDIA, позволяющая существенно увеличить вычислительную производительность благодаря использованию GPU (графических процессоров).

Направление вычислений эволюционирует от «централизованной обработки данных»

на центральном процессоре до «совместной обработки» на CPU и GPU. Для реализации новой вычислительной парадигмы компания NVIDIA изобрела архитектуру параллельных вычислений CUDA, на данный момент представленную в графических процессорах GeForce, ION, Quadro и Tesla и обеспечивающую необходимую базу разработчикам ПО.

Некоторые возможности технологии [101] Стандартный язык C для параллельной разработки приложений на GPU Стандартные библиотеки численного анализа для быстрого преобразования Фурье и базового пакета программ линейной алгебры Специальный драйвер CUDA для вычислений с быстрой передачей данных между GPU и CPU Драйвер CUDA взаимодействует с графическими драйверами OpenGL и DirectX Поддержка операционных систем Linux 32/64-bit, Windows XP/Vista/7 32/64-bit и Mac Фактически же, в настоящее время на рынке аппаратных средств для ПК поддержку технологии CUDA обеспечивают периферийные устройства отмеченные в табл. 1.3. [100]:

Таблица 1.3 Поддержка технологии CUDA видеокартами Версия Видеокарты GPU спецификации G80, G92, G92b, G94, GeForce 8800GTX/Ultra, 9400GT, 9600GT, 9800GT, Tesla C/D/S870, 1. G94b FX4/5600, 360M, GT GeForce 8400GS/GT, 8600GT/GTS, 8800GT/GTS, 9600 GSO, G86, G84, G98, G96, 9800GTX/GX2, GTS 250, GT 120/30/40, FX 4/570, 3/580, 17/18/3700, 1.1 G96b, G94, G94b, G92, 4700x2, 1xxM, 32/370M, 3/5/770M, 16/17/27/28/36/37/3800M, G92b NVS420/ GeForce 210, GT 220/40, FX380 LP, 1800M, 370/380M, NVS 1.2 GT218, GT216, GT 2/3100M GeForce GTX 260, GTX 275, GTX 280, GTX 285, GTX 295, Tesla 1.3 GT200, GT200b C/M1060, S1070, Quadro CX, FX 3/4/ GeForce (GF100) GTX 465, GTX 470, GTX 480, Tesla C2050, C2070, 2.0 GF100, GF S/M2050/70, Quadro Plex 7000, Quadro 4000, 5000, 6000, GeForce (GF110) GTX 560 TI 448, GTX570, GTX580, GTX GF104, GF114, GF116, GeForce 610M, GT 430, GT 440, GT 640, GTS 450, GTX 460, GTX 2. GF108, GF106 550 Ti, GTX 560, GTX 560 Ti, 500M, Quadro 600, GeForce GTX 690, GTX 680, GTX 670, GTX 660 Ti, GTX 660, GTX 650 Ti, GTX 650, GeForce GTX 680MX, GeForce GTX 680M, 3.0 GK104, GK106, GK GeForce GTX 675MX, GeForce GTX 670MX, GTX 660M, GeForce GT 650M, GeForce GT 645M, GeForce GT 640M 3.5 GK110 Tesla K20X, K20, GeForce GTX Titan 1.5 Заключение. Постановка задачи.

По результатам обзора можно сделать вывод о том, что с точки зрения лингвистики, методы и способы извлечения информации из текстов во многом опережают практическое решение поставленной задачи в информационных технологиях. Даже учитывая, что есть специалисты, которые профессионально занимаются извлечением информации и знаний, их количество недостаточно, для полного анализа русского языка. Учитывая существующие объемы данных, например, в сети Интернет, быстрое формирование тезаурусов, словарей, баз данных и, возможно, баз знаний, приведет к появлению значительно большей поддержке алгоритмов извлечения явной информации и, следовательно, принесет значительную пользу.

С точки зрения разделения текстов по тематике, то в процессе информационного поиска не было найдено материалов, в которых бы проводились эксперименты с подборками художественных текстов. В этом вопросе специалисты работают с новостными подборками, небольшими базами транзакций, что в результате не гарантирует работу алгоритма на больших подборках художественных и научных текстов, дающих большую размерность пространства. Так же, не удалось найти ни одной стати о модификации алгоритма нечетких C-средних для многопоточного исполнения. Принимая во внимание существование алгоритмов классификации, для разделения групп текстов будет использован алгоритм кластеризации, так как для него не требуется создание обучающей подборки.

На основании аналитического обзора программно-аппаратных средств кластеров, наибольший интерес, по мнению автора, представляют гибридные кластеры. Учитывая аппаратные свойства компонентов, присутствующих на рынке, только несколько компоненты пользовательского класса предоставляют возможность установить до графических ускорителей на один узел кластера. Из этого следует вывод, что разрабатываемый кластер должен принадлежать классу кластеров «Beowulf», содержать компоненты пользовательского класса, и, как следствие, обладать свойствами открытости (расширяемость, масштабируемость, интероперабельность, и, возможно, переносимость)/ Для решения этой задачи полностью отсутствуют рекомендации, применимые для компонентов пользовательского класса. Таким образом, каждый отдельный существующий кластер является единственным в своем роде и, зачастую представляет собой закрытую систему.

На основании Главы 1 сформирован список задач, которые требуется решить в процессе диссертационного исследования:

1. На основе анализа разработать метод быстрого извлечения из текстового контента информации, пригодной для дальнейшего использования при формировании семантической сети.

2. Разработать алгоритм кластеризации текстового контента, использующий преимущества гибридных вычислительных кластеров.

3. Разработать метод контроля процесса и повышения качества кластеризации.

4. Сформулировать рекомендации, для модификации и реализации алгоритмов кластеризации для работы в среде гибридных кластеров.

5. Сформировать профиль стандартов, обеспечивающий кластерам свойства расширяемости, масштабируемости и интероперабельности.

6. Разработать программные решения, позволяющие проводить процесс кластеризации в многопоточном режиме с использованием графических процессоров с целью верификации выдвигаемых в диссертации положений.

Поставленные задачи решаются далее в Главах 2, 3 и 4 настоящей диссертации.

Глава 2 Развитие существующих методов и алгоритмов специальной обработки текстового контента. Придание вычислительным кластерам свойств расширяемости, масштабируемости и интероперабельности.

Рассмотренные в Главе 1 методы лингвистического анализа, алгоритмов кластеризации и программно-аппаратных составляющих вычислительны кластеров показывает необходимость создания в первую очередь быстрых и простых методов составления тезаурусов или баз данных и далее методов извлечения явной информации из текстов. При этом перед обработкой требуется разделить неструктурированную группу текстов на классы по признакам тематической схожести. Алгоритмы кластеризации можно оценивать по признакам точности результата и скорости получения результата. Что очевидно, при повышении точности понижается скорость и наоборот. Выровнять подобную ситуацию может использование гибридных кластеров, которые могут быть собраны из компонентов пользовательского класса, доступных в любом магазине компьютерной техники.

Глава 2 посвящена развитию многопоточности алгоритмов кластеризации на примере алгоритма Нечетких C-средних (Fuzzy C-means, FCM);

методу многопоточного извлечения словарей из текстового контента, подготовленного алгоритмом кластериазции;

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

2.1 Развитие многопоточности для алгоритмов кластеризации на примере алгоритма Нечетких C-средних.

В диссертации предполагается, что алгоритм кластеризации будет работать на вычислительных кластерах. Особенностью вычислительных кластеров является наличие более чем одного процессора. Следовательно, для наиболее полного использования вычислительных ресурсов требуется, чтобы алгоритм работал в многопоточном режиме. В качестве алгоритма для переработки, был выбран алгоритм нечетких C-средних, как математически сложный и ресурсоемкий для реализации и расчетов.

Для алгоритма Нечетких C-средних исходной информацией для кластеризации является матрица координат документов коллекции.

Метод нечёткой кластеризации позволяет каждому объекту принадлежать с различной степенью нескольким или всем кластерам одновременно. Число кластеров c считается заранее известным.

Кластерная структура задаётся матрицей принадлежности:

где mij– степень принадлежности j-го элемента i-му кластеру.

Матрица принадлежности должна удовлетворять следующим условиям:

0) 1) т.е. каждый объект должен быть распределён между всеми кластерами, 2) т.е. ни один кластер не должен быть пустым или содержать все элементы.

Для оценки качества разбиения используется критерий разброса, показывающий сумму расстояний от объектов до центров кластеров с соответствующими степенями принадлежности:

где – Евклидово расстояние между j-м объектом и i-м центром кластера w (1,)– экспоненциальный вес, определяющий нечёткость, размытость кластеров, – c m матрица координат центров кластеров, элементы которой вычисляются по формуле (2.1) Задачей является нахождение матрицы M, минимизирующей критерий J.

Для этого используется алгоритм, в основе которого лежит метод множителей Лагранжа. Он позволяет найти локальный оптимум, поэтому для различных запусков могут получиться разные результаты.

На первом шаге матрица принадлежностей M, удовлетворяющая условиям 0)–2), генерируется случайным образом. Далее запускается итерационный процесс вычисления центров кластеров и пересчёта элементов матрицы степеней принадлежности:

(2.2) где.

Вычисления продолжаются до тех пор, пока изменение матрицы M, характеризующееся величиной, где M* – матрица на предыдущей итерации алгоритма, не станет меньше заранее заданного параметра остановки :

(2.3) Несмотря на проработанность алгоритма, значение w – экспоненциального веса, обычно устанавливают равное 2, так как теоретически обоснованного правила выбора веса пока не существует [102]. Алгоритм представлен на Рис. 2.1.1.

Расчет матриц может осуществляться и поэлементно и построчно/постолбцово. При этом, расчет строк/столбцов позволит графическим процессорам повысить скорость за счет кеширования повторяющихся математических операций при изменяющихся данных.

Рис. 2.1.1 Блок-схема классического алгоритма Нечетких C-средних (Fuzzy C-means).

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

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

(2.4) Передача на графический процессор 2-х матриц и обработка результатов сразу в несколько потоков, позволит значительно сократить время расчетов новых матриц с центроидами кластеров vij и с коэффициентами принадлежности mij.

На рисунках 2.1.2-2.1.4 представлены предлагаемые автором схемы передачи математических расчетов алгоритма нечетких C-средних на графический процессор с поддержкой технологии NVIDIA CUDA. Рисунок 2.1.2 отражает использование алгоритма однопоточной системе, в случае, если все данные возможно передать одновременно на вычислитель. Если данные превышают объем памяти графического процессора, или на узле есть несколько графических процессоров, то используется библиотека MPI, как показано на Рис. 2.1.3. Рисунок 2.1.4 демонстрирует иерархию процессов. В первой части показана полная передача расчетов, что предполагает использование одного графического процессора на одном узле, во второй части этого рисунка приводится случай, когда на один узел приходится более одного графического процессора.

Рис 2.1.2 Блок-схема алгоритма Нечетких C-Средних с использованием GPU (GPU Fuzzy C means) [103] Рис 2.1.3 Блок-схема GPU Fuzzy C-means c использованием MPI Рис 2.1.4 Схема распределения первичных данных алгоритма. Иерархия процессов и коммуникаторов.

Рис. 2.1.5 Схема связей между матрицами и элементами алгоритма. Рассчитывается на первом процессе. Цифрами обозначена последовательность вычислений.

На основе исследования и собственного опыта, соискателем формируется список рекомендаций по переложению алгоритмов для работы в кластерах с MPI и CUDA:

1. Проанализировать полностью перерабатываемый алгоритм, составить блок-схему, выписать шаги и формулы.

2. Составить «граф зависимостей» в котором показано, какая переменная в какой формуле используется, как зависит от других переменных.

3. Проверить, при работе с матрицами, каким образом составляются столбцы и строки этих матриц.

4. Реализовать алгоритм на бумаге с учетом того, что столбцы или строки матриц могут рассчитываться независимо, расписать какого рода вычисления будут осуществляться на графических процессорах.

5. Рассчитать алгоритм самостоятельно для некоторой тестовой подборки.

6. Оценить объемы данных, которыми будет оперировать алгоритм, требуемый объем оперативной памяти.

7. Расписать перед реализаций алгоритма все этапы взаимодействия функций и классов программы, определить и описать интерфейсы взаимодействия частей программы (что получает функция, какой результат передает, как его интерпретировать другой функции) 8. Оставлять процессу №0 (при реализации алгоритма с библиотекой MPI) как можно меньше вычислительных задач и как можно больше использовать его как координационный.

9. Использовать функцию spawn для создания подпроцессов, переносить исполняемый код во внешние модули, выделять математические функции с CUDA и дублировать эти функции для процессорных вычислений. Это позволит упростить замену внутренних функций и придаст больше гибкости программному обеспечению, а так же позволит упростить отладку.

Сверить полученные результаты с результатами ручного расчета.

10.

2.1.1 Метод использования энтропийной меры оценки алгоритма Нечетких C-средних для контроля процесса кластеризации и повышения ее качества.

Для оценки качества кластеризации в работах исследователей используется информационная энтропия [104,105,106,107]. Само понятие информационной энтропии определено К.Шенноном для случая дискретных данных [108]. Учитывая, что информационная энтропия обычно характеризует меру хаотичности информации или меру внутренней неупорядоченности информационной системы, то энтропия увеличивается при хаотическом распределении информационных ресурсов и уменьшается при их упорядочении.

К. Шеннон ввел понятие энтропии как меры неопределенности.

Энтропия E(m) определяет количество информации в сообщении m и является мерой его неопределенности.

Пусть источник сообщений может создавать n разных сообщений m1,m2,...mn с вероятностями p1,p2,...,pn. В этом случае энтропия сообщения будет определяться формулой:

(2.5) В настоящей работе под энтропией понимается степень «распределения» класса по кластерам. Чем меньше энтропия, тем лучше результат кластеризации, при этом, хоть в идеале энтропия и должна быть равна нулю, такое состояние весьма маловероятно.

Для кластера j значение энтропии будет вычисляться по следующей формуле:

(2.6) где mij - вероятность того, что текст j относится к кластеру i.

На основе представленной формулы можно контролировать действия алгоритма Нечетких C-средних на каждой итерации таким, образом, чтобы сразу получать представление о качестве разбиения и саамам процессе. Так, например, если энтропия кластеров не уменьшается на шагах, то проводить дальнейшее исследование нецелесообразно, так как инициированные алгоритмом начальные условия могли попасть в не самый лучший локальный минимум.

Так же, как показали исследования [23,24,25], энтропия может стать не только мерой оценки качества итогового разбиения, мерой контроля процесса, но и инструментом, регулирующим само разбиение, как по количеству кластеров, так и по принадлежности элементов к каждому из них.

Сравнение энтропийной оценки для разных данных Значение энтропийной меры оценки, усл. ед.

C0(2) C1(2) C2(2) 60 C0(1) C1(1) C2(1) 0 1 2 3 4 5 6 7 Шаг алгоритма Рис. 2.1.1.1 Пример изменения энтропийной меры в случае корректно (1) и некорректно (2) подготовленных для кластеризации данных.

2.2 Метод параллельной обработки минимальных синтаксических структур с использованием базовых характеристик объектно ориентированных языков высокого уровня.

Для автоматического создания семантических сетей из текстовых материалов на естественном языке необходимо формализовать структуру языка и обеспечить реализуемость этой формализации, хотя бы на одном языке программирования.

Рассмотрение текстов на естественном языке в свете максимально близких к ним языкам программирования позволит повысить степень понимания вопроса неспециалистами и поможет извлекать семантические отношения не только из отдельных предложений, но и из абзацев, если предложения в них связаны одной мыслью.

На современном этапе развития теории интеллектуальной обработки данных, алгоритмы, основанные на машинном обучении, адекватно определяют параметры ключевых объектов в предложении и позволяют строить связи внутри предложений [109, 110]. Однако построение связей между соседними предложениями часто вызывают затруднения.

В решении этой задачи могут помочь модели, описывающее связи между предложениями через доступные характеристики слов – число, род, падеж, и т.д. Представим каждое слово объектом-наследником базового класса – части речи. У таких «объектов»

присутствуют наследуемые параметры, влияющие на свойства самих объектов. Наборы параметров, характерные для определенной части речи, можно считать аналогами параметров классов в объектно-ориентированном программировании (ООП). Гипотезируя этот тезис, попробуем найти и иные параллели между основными понятиями ООП и семантикой, грамматикой, морфологией русского языка.

В ООП используются понятия «класс», «объект», «абстракция», «инкапсуляция», «наследование» и «полиморфизм» [111].

Класс является моделью ещё не существующей сущности (объекта), описанной на языке программирования. Фактически, этот класс описывает общее устройство объекта, являясь своего рода его чертежом. Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам предметной области [112]. В русском языке аналогом класса является часть речи, которая содержит в себе набор необходимых параметров: числа, рода, падежа, и других.

В таблице приведены два примера объявления классов на языке 2.5. программирования С++ и, для сравнения, части речи, оформленные по тем же правилам. В первом примере показывается, что объявление простого класса и его переменных похоже на то, какие характеристики хранят в себе все слова, принадлежащие одной части речи. Во втором примере показывается сходство объявления класса, на основе уже существующих классов и причастия, производной части речи от глагола и прилагательного.

Такое сравнение показывает, что части речи можно воспринимать как классы в языках программирования.

Таблица 2.2.1. Сравнение объявления классов в C++ и частей речи в Русском языке Язык программирования C++ Русский язык class MyClass { Имя существительное{ private: private:

uint dd;

собственное или нарицательное;

uint mm;

одушевленное или неодушевленное;

uint yy;

тип склонения;

1 public: public:

uint& Day ();

падеж;

uint& Month ();

число uint& Year ();

род;

} } class MyClass: public Причастие: Глагол, Прилагательное { ParentClass1, public ParentClass2 вид;

{ действительное public: возвратное или нет MyClass();

переходное или нет ~MyClass();

страдательное int& ClassMember();

краткое или полное private: время;

int classmember;

число;

} род (только в ед.ч.);

падеж;

} В дальнейшем, под объектом будем понимать экземпляр класса – сущность в адресном пространстве вычислительной системы, появляющуюся при создании экземпляра класса или копирования прототипа. Исходя из этого определения – объект, наследник класса обладает если не всеми, то большинством его характеристик, при этом слово является экземпляром класса «часть речи» и несет в себе признаки класса-родителя.

"Абстракция данных" - популярная и, как полагают, не всегда верно определяемая техника программирования [111]. Фундаментальная идея, по мнению [111] состоит в разделении несущественных деталей реализации подпрограммы и характеристик, существенных для корректного ее использования. Для корректного использования части речи в словосочетаниях и предложениях большую роль играет несколько характеристики – род, число, падеж. Эти характеристики в большей мере задают формообразующие морфемы слова (в частности окончания). Например, несущественным, для существительного, может быть тип склонения, а существенным – род.

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

Свойство системы, позволяющее описать новый класс на основе уже существующего, с частично или полностью заимствующейся функциональностью называют наследованием [111]. Класс, от которого производится наследование, называется базовым, родительским или суперклассом, а новый класс является потомком, наследником или производным классом.

Как ранее отмечено, каждое слово причисляется к определенной части речи, от которой наследует список характеристик, заложенный в классе-родителе.

Свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта определяют как ее полиморфизм [111].

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

Исходя из примеров, аналогий и параллелей, приведенных выше, делается вывод о том, что текст на практически любом естественном языке должен иметь общие черты с исходным кодом компьютерной программы. Следовательно, должны существовать правила семантики «языка программирования», которые могут быть формализованы и представлены в виде, пригодном для машинной обработки. При этом нельзя исключать погрешностей, возникающих при формализации, которые устраняются при коррекции на экспериментах и при накоплении статистической и фактической информации. В построении связей между предложениями будет видна «замена переменных», равносильная объявлением новой переменной, и дальнейшим ее изменением. Например, в научных текстах объект, о котором говорится впервые, в предложении обычно обозначается существительным в именительном или дательном падеже. Во втором предложении, если речь идет о том же объекте – местоимением, но с сохранением числа и рода. Так же, некоторые виды частей речи можно автоматически изменять, руководствуясь принципами перегрузки методов и переопределения классов. Притяжательное местоимение «его» заменяться на пару слов «принадлежит ему» или «он владеет», что автоматически указывает на объект, упомянутый ранее, и отношения между текущим и предыдущим объектами. По этим аналогиям можно строить связи между двумя и более предложениями, основываясь на схожих параметрах слов, и выражая их через граф, с нагруженными ребрами. При этом сам граф – представление семантических отношений между предложениями, а нагрузки ребер графа выражают отношения между вершинами-объектами. [113] Еще одной особенностью русскоязычных текстов является их «модульность», где каждое предложение является модулем. В общем случае обработка каждого предложения может вестись независимо ото всего текста, а значит, параллельно на множестве одновременно работающих вычислителей. [114,116]. После чего, результат обработки возвращается на главный вычислитель.

Извлечение информации основано на существовании классов семантических отношений в естественном языке и, следовательно, тексте. Выделяют восемь типов семантических отношений [117]. Функциональные и атрибутные отношения можно назвать достаточно простыми для извлечения, по сравнению с остальными типами отношений, так как согласно пункту 2.4 диссертации между элементами, образующими такие связи, больше согласованности по морфологии слов. Так же, отношения синонимии (вероятно и омонимии) могут определяться на уже созданных семантических сетях по связям, где два или более объекта, имеющие идентичные связи и отношения, приравниваются к синониму, а два одинаковых по написанию объекта с разными связями становятся омонимами.

Семантическая сеть является многослойным объектом, в котором созданы все типы отношений для всех объектов. Однако, на данный момент «полного описания всего» в доступном виде не существует. Ввиду сложности самой задачи и требованиям к ее решению предлагается сначала разделить одну семантическую сеть на соответствующее количество подсетей. А каждую подсеть формировать на основе еще более мелких объектов – инфосетей. В теории семантических сетей определим «инфосеть» как «однородную однослойную сеть объектов, морфологически объединенных отношениями, вытекающими из структуры синтаксической единицы (предложения)». В свете приведенных выше исследований, построение семантической сети за один проход экспертной программы пока не представляется возможным, ввиду сложности однозначного определения семантической составляющей слова с первого раза. Построение же инфосетей не потребует многократного прохода, так как ищутся только определенные связи, которые могут быть выявлены путем сопоставления параметров с первого раза. Так же инфосеть отличается от семантической сети тем, что выделяется только из одного предложения или же текста. Объединение множества инфосетей, составленных при анализе текстов в одном тематическом классе, будет образовывать семантическую подсеть класса. [118] Синтаксические единицы, из которых могут быть созданы инфосети, содержатся в простых и сложных предложениях текстового контента, состоящих из подлежащего в форме существительного, сказуемого в форме глагола и прямого дополнения. Именно такие предложения из трех или четырех объектов и будем называть «минимальными синтаксическими структурами, пригодными для быстрого извлечения информации» или просто «минимальными синтаксическими структурами».

Прямое Подлеж.

Определен Сказ. дополнен ие Прилагательное Существительн Глагол Существит.

Число=подл.число ое Число=ед./мн.

Число=ед./мн.

Число=ед./мн.

Род=подл.род Род=м./ж./ср.

Род=м./ж./ср.

Род=м./ж./ср. Наклонение=из/усл/по Падеж= Падеж=им. вел.

род./дат./… и т.д.

и т.д.

Рис 2.2.1 Пример рассмотрения параметров объектов в рамках минимальной синтаксической единицы Глагол-сказуемое Дополн.

Подл.

Опред.

«имеет свойство»

Рис 2.2.2 Две ветви графа, отражающие связи из Рис. 2.2. Для извлечения связи из последовательных минимальных синтаксических структур текстового контента предлагаются следующие действия:

1. Синтаксический и морфологический анализ предложения.

1.1 Выявление подлежащего, сказуемого, прямого дополнения, определений.

1.2 Формирование ветви для троек, выделение отдельными цветами функциональных (сказуемое) и атрибутивных (определение) связей.

1.3 Если в предложении в качестве подлежащего (прямого дополнения) используется «местоимение», то перейти к п. 2. Синтаксически и морфологически проанализированное предыдущее предложение проверяется на присутствие в нем в качестве подлежащего «имени существительного», совпадающего с местоимением по роду и числу 2.1 Если «да», то в текущем предложении заменить местоимение этим именем существительным.

2.2 Если нет, то идти далее назад до имени существительного, подходящего под ограничения.

3. Если в качестве прямого дополнения присутствует местоимение, то искать подлежащее «имя существительное», совпадающее по числу и роду.

4. В случае нескольких подлежащих (однородные члены предложения) искать сказуемое во множественном числе.

5. Притяжательные местоимения заменяются связкой «местоимение + глагол принадлежать»»

Декомпозиция «производных» частей речи до базовых:

Притяжательные местоимения - глагол «принадлежать» (или др. глагол «владения» объектом) Причастия - инфинитивом глагола, от которого образовано Деепричастие - инфинитив глагола Пример функциональной инфосети, подготовленный автором диссертации, (А.С.

Пушкин, Повести Белкина, «Выстрел») приведен на рисунке 2.5.1:

«Один только человек принадлежал нашему обществу, не будучи военным. Ему было около тридцати пяти лет, и мы за то почитали его стариком. Опытность давала ему перед нами многие преимущества;

к тому же его обыкновенная угрюмость, крутой нрав и злой язык имели сильное влияние на молодые наши умы».


Рис. 2.2.3 Пример функциональной инфосети нескольких предложений.

2.3 Разработка вычислительного кластера со свойствами расширяемости, масштабируемости и интероперабельности.

2.3.1 Допущения и ограничения в выборе аппаратной платформы для реализации вычислительного кластера.

Вычислительные кластеры изначально, ввиду его исторически сложившейся гетерогенной структуры и чрезвычайно разнообразных методов исполнения стандартизировать абсолютно и полностью крайне сложно. Однако одну из возможных реализаций можно привести к тому, что она станет отвечать свойствам открытых систем. В случае, если кластер будет открытой системой, то одним из преимуществ станет возможность объединять территориально-удаленные кластеры в единую систему, или же использовать их в GRID-системах.

На Рис. 2.3.1 приведена схема одной из реализации связей высокопроизводительного кластера (ВК) (Стрелки обозначают направления потока данных и команд, а так же наличия соединения между узлами по одной из технологий, например, Ethrenet). Далее следует описание системы и узлов, которые в нее входят с обоснованием необходимости в стандартизации.

Рис. 2.3.1 Принципиальная схема связи технического обеспечения высокопроизводительного вычислительного кластера, предлагаемая автором (HPC)[119].

На представленной схеме (предлагаемой для реализаций в ВК) есть два средства управления – рабочее место оператора и локальные средства ввода-вывода (монитор, клавиатура;

мышь используется только при наличии графического интерфейса пользователя). Стандартизовать рабочее место оператора целиком не целесообразно. Есть только два условия, которым он должен соответствовать – наличие сетевого интерфейса для доступа и поддержка протокола SSH. SSH реализуется на любом оборудовании и на любой ОС через прикладное программное обеспечение (например встроенный клиент SSH в Linux системах или клиент putty для Windows-систем).

Сервер кластера так же невозможно стандартизовать полностью, так как в этой роли может выступать любая более-менее производительная машина. Иногда рабочее место оператора и сервер объединяют в одной системе, как и, частично, представлено на схеме выше.

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

Процессорная архитектура вычислительного кластера зависит от архитектуры самого «старого» узла. По-умолчанию подразумевается, что используются процессоры пользовательского класса, и, например, если один из узлов собран с процессором Intel Pentium III без поддержки технологии amd64 (x86-64), то это приведет к тому, что весь кластер должен работать на ядре, поддерживающем только x86 архитектуру. Такое решение хоть и может быть реализовано, все-таки не рекомендуется по причине значительных потерь в производительности. Система хранения данных сетевая (на отдельной машине), что облегчает к ней доступ от всех узлов кластера, сервера и РМО. Архитектура, тип (реляционная, иерархическая и т.д.) и прочие свойства БД, так же как и разработчик зависят только от конкретной необходимости и задачи, решаемой на кластере. Так, для каждой задачи, отдельно выделенная машина сможет хранить БД, идеально подходящую под конкретную задачу.

Сеть вычислительного кластера так же может быть любой из доступных среднестатистическому пользователю, однако этот пункт необходимо стандартизовать ввиду того, что это «скелет» всего кластера. Использование разных типов сетей передачи данных в рамках одного кластера приведет к разрозненности архитектуры, сложностям в первоначальной настройке и узким местам, приводящим к проблемам. В части сети передачи данных и команд наиболее желательно использовать сети Ethernet как дешевую и простую альтернативу оптоволоконных линий или линий InfiniBand/QsNet. Между узлами в сети не будет расстояния более 100 м., поэтому, можно использовать витую пару. Категории неэкранированной витой пары описываются в стандарте EIA/TIA 568 (Американский стандарт проводки в коммерческих зданиях) и в международном стандарте ISO 11801, а также приняты ГОСТ Р 53246-2008 (перевод американского ANSI/TIA/EIA-568B) и ГОСТ Р 53245-2008 (перевод одного из руководств производителя). С запасом хватит кабеля маркировки CAT-6 с пропускной способностью 1 Гб/с. Следовательно, сетевые соединения должны соответствовать стандартам EIA/TIA 568 ISO 11801, ГОСТ Р 53246-2008, ГОСТ Р 53245-2008. Сеть передачи данных должна поддерживать стек TCP/IP и один из стандартов IEEE 802.3 Ethernet на канальном уровне:

802.3u - 100BASE-TX, 100BASE-T4, 100BASE-FX Fast Ethernet, 100 Мбит/с (12, МБайт/с) 802.3ab - 1000BASE-T GigabitEthernet по витой паре;

1 ГБит/с (125 МБайт/с) 802.3an - 10GBASE-T 10 Gbit/s (1,25 ГБайт/с) Ethernet по неэкранированной витой паре (UTP).[120] Так же поддерживать соответствующие стандарты должно коммуникационное оборудование. Мониторинг сетей рассматривается в [115], но в диссертации не является ключевой задачей.

Для обеспечения максимальной масштабируемости, материнские платы или сетевые карты должны поддерживать спецификации PXE 2.1. Preboot eXecution Environment – среда для загрузки компьютеров с помощью сетевой карты без использования жёстких дисков, компакт-дисков и других устройств. Для организации загрузки системы в PXE используются протоколы IP (Internet Protocol), UDP (User Datagram Protocol), BOOTP (BOOTstrap Protocol) и TFTP (Trivial File Transfer Protocol) [121]. Это позволит сэкономить на жестких дисках и ускорить внутрисистемную работу, так как вся «дисковая подсистема» будет содержаться в оперативной памяти с соответствующей скоростью работы. Объем начальной памяти в МБ на узел будет достаточно для его загрузки, а общий объем требуемой памяти будет зависеть от конкретной задачи. Так же, при загрузке по PXE все узлы конфигурируются из одного места, без необходимости настраивать каждый.

Network File System (NFS) – протокол сетевого доступа к файловым системам, первоначально разработан Sun Microsystems в 1984 году. Основан на протоколе вызова удалённых процедур. Позволяет подключать (монтировать) удалённые файловые системы через сеть [3]. Наиболее разработанной на данный момент версией является версия 4, которая зафиксирована в спецификации RFC 3530 [122]. Основная область использования в кластере – распределение файловой системы от сервера к узлам и создание общей области хранения для всех узлов кластера и самого сервера.

При реализации гибридного вычислительного кластера, с использованием видеопроцессоров, поддерживающих технологию CUDA, потребуется согласование версии используемой спецификации. На данный момент существует спецификация версии 3.5. Для кластера, спецификацию ниже 2.0 использовать не рекомендуется. [123] Допущения и ограничения программной платформы для реализации 2.3. вычислительного кластера.

Рис. 2.3.2. Предлагаемая принципиальная схема взаимодействия программного обеспечения вычислительного кластера и пользователя/администратора.[124] На рисунке 2.3.2 представлена предлагаемая принципиальная схема взаимодействия некоторых элементов программного обеспечения кластера и пользователя/администратора.

Далее, на рисунках 2.3.3-2.3.13, выполненных в нотации IDEF3 (WorkFlow), будет рассматриваться работа всего кластера от момента первого включения сервера до его завершения работы.

Рис. 2.3.3 Контекст «работа кластера»

Рис. 2.3.4 Декомпозиция работы кластера на подработы Рис. 2.3.5 Этапы по загрузке сервера кластера. Серые прямоугольники отвечают за работы, исключенные из оригинального PelicanHPC и замененные на новые в MuninnHPC Рис. 2.3.6 Этапы загрузки узлов кластера. Серыми прямоугольниками отражены этапы, которые потенциально могут быть, однако исключены по причинам из п. 2.3. Рис. 2.3.7 Декомпозиция процесса загрузки узлов по протоколу PXE На рисунке 2.3.2 отражены 2 места администрирования кластера, однако, для обеспечения безопасности выполняемых команд, требуется пройти процедуры аутентификации и авторизации пользователя кластера. Логика этих процедур приведена на рис. 2.3.8, 2.3.9, 2.3.10 в нотации IDEF3. Выделение этих этапов обусловлено тем, что ОС Linux является многопользовательской и, не смотря на разделение прав на файлы и процессы, не исключены возможности для пользователя повысить свои привилегии до уровня суперадминистратора, получив неограниченный доступ ко всей системе. Так же, поскольку система имеет внешний доступ к сети Интернет, следует учитывать потенциальную опасность несанкционированного доступа.

Рис. 2.3.8 Доступ к использованию кластера.

Рис. 2.3.9 Действие системы при локальном входе пользователя.

Рис. 2.3.10 Действие системы при удаленном входе пользователя.

Рис. 2.3.11 Исполнение команды пользователя кластера Рис. 2.3.12 Шаги по завершению работы узлов кластера. Узлы завершают работу раньше сервера, записывая требуемую информацию на него.

Рис. 2.3.13 Завершение работы сервера кластера Вся административная и сопровождающая кластера может быть, как разнесена на несколько узлов (узел администрирования, узел с БД и т.д.), так и быть консолидирована на одном узле - сервере, что позволит гибко администрировать и управлять всем кластером.

ПО всего кластера разнообразно и может зависеть от каждой конкретной задачи, однако, для каждой системы есть общие черты:

1. ОС Linux (так как с открытыми исходными кодами, гибка в настройке, производительна в целом, может работать с удаленной памятью и сетевыми накопителями и процессорами, как с локальными)[125] 2. DHCP, DNS, TFTP, NFS серверы (для свободной адресации узлов и управлением удаленной, сетевой загрузкой.) 3. SSH серверы и клиенты (осуществляют передачу, прием и обработку команд и задач.) 4. Интерфейсы стандарта MPI 1.2/2.0: MPI, OpenMP, MPICH, openMPI;

5. Сервер баз данных и СУБД (зависит от конкретной реализации, производителя, задачи и многого другого.) Из всего перечисленного стандартам должны соответствовать 1-5, так как остальные элементы могут быть реализованы самыми различными путями и способами, в зависимости от конкретного случая.


Как показано на рисунке 2.3.2, в каждом узле развернута своя копия ядра ОС, на сервере установлена более полная версия системы и сервисы обеспечения работоспособности. Благодаря функциям ядра обеспечивается уникальность идентификаторов процессов в рамках всего кластера. Кроме того при загрузке по сети используются технологии сетевой виртуальной памяти (Network Virtual Memory) или разделяемой распределенной памяти DSM (Distributed Shared Memory), позволяющие создать для процесса впечатление об общей оперативной памяти узлов. Для передачи сигналов от сервера к узлам и ответов обратно потребуется сервер и клиент SSH, так как единственным постоянно подключенным органом управления является сетевой кабель. SSH (англ. Secure SHell – «безопасная оболочка») – сетевой протокол сеансового уровня, позволяет производить удалённое управление операционной системой и туннелирование TCP соединений (например, для передачи файлов). Схож по функциональности с протоколами Telnet и rlogin, но, в отличие от них, шифрует весь трафик, включая и передаваемые пароли.

SSH допускает выбор различных алгоритмов шифрования. SSH-клиенты и SSH-серверы доступны для большинства сетевых операционных систем. Для SSH существуют стандартов, соблюдение которых со стороны серверов и клиентов обеспечит беспроблемную коммуникацию узлов, передачу сигналов и управление потоками:

RFC 425 – The Secure Shell (SSH) Protocol Assigned Numbers RFC 4251 – The Secure Shell (SSH) Protocol Architecture RFC 4252 – The Secure Shell (SSH) Authentication Protocol RFC 4253 – The Secure Shell (SSH) Transport Layer Protocol RFC 4254 – The Secure Shell (SSH) Connection Protocol RFC 4255 – Using DNS to Securely Publish Secure Shell (SSH) Key Fingerprints RFC 4256 – Generic Message Exchange Authentication for the Secure Shell Protocol (SSH) RFC 4335 – The Secure Shell (SSH) Session Channel Break Extension RFC 4344 – The Secure Shell (SSH) Transport Layer Encryption Modes RFC 4345 – Improved Arcfour Modes for the Secure Shell (SSH) Transport Layer Protocol RFC 4419 – Diffie-Hellman Group Exchange for the Secure Shell (SSH) Transport Layer Protocol RFC 4432 – RSA Key Exchange for the Secure Shell (SSH) Transport Layer Protocol RFC 4716 – The Secure Shell (SSH) Public Key File Format [122] Так же, для обеспечения полноценного бесперебойного взаимодействия на уровнях приложений, система должна поддерживать единые принципы вызова программ и процедур.

Такие стандарты описываются в совместно проекте семейства операционных систем, основанных на ядре Linux - Linux Standard Base. Цель проекта – стандартизация внутренней структуры систем и опирается на такие спецификации как POSIX, Single UNIX Specification, и другие открытые стандарты. [3] LSB зарегистрирован в качестве официального стандарта ISO. Его основные части ISO/IEC 23360-1:2006 Linux Standard Base (LSB) core specification 3.1 - Part 1: Generic specification ISO/IEC 23360-2:2006 Linux Standard Base (LSB) core specification 3.1 - Part 2:

Specification for IA32 architecture ISO/IEC 23360-3:2006 Linux Standard Base (LSB) core specification 3.1 - Part 3:

Specification for IA64 architecture ISO/IEC 23360-4:2006 Linux Standard Base (LSB) core specification 3.1 - Part 4:

Specification for AMD64 architecture ISO/IEC 23360-5:2006 Linux Standard Base (LSB) core specification 3.1 - Part 5:

Specification for PPC32 architecture ISO/IEC 23360-6:2006 Linux Standard Base (LSB) core specification 3.1 - Part 6:

Specification for PPC64 architecture ISO/IEC 23360-7:2006 Linux Standard Base (LSB) core specification 3.1 - Part 7:

Specification for S390 architecture ISO/IEC 23360-8:2006 Linux Standard Base (LSB) core specification 3.1 - Part 8:

Specification for S390X architecture Кластер, как группа компьютеров, изначально предполагает использование многопоточных приложений, раскрывающих общий потенциал такого объединения. Не смотря на то, что для создания многопоточности существует несколько библиотек и спецификаций, использование одной из них – MPI обусловлено возможностью объединить библиотеки MPI и CUDA в одной связке. MPI – Message Passing Interface, интерфейс передачи сообщений – программный интерфейс (API) для передачи информации, который позволяет обмениваться сообщениями между процессами, выполняющими одну задачу.

Разработан Уильямом Гроуппом, Эвином Ласком и другими.

Первая версия MPI разрабатывалась в 1993–1994 году, и MPI 1 вышла в 1994.

Большинство современных реализаций MPI поддерживают версию 1.1 и 2.0, однако некоторые функции могут быть реализованы не до конца. Самым новым (на момент написания работы) является стандарт MPI 3.0.

В MPI 1.1 (опубликован 12 июня 1995 года) [126] поддерживаются следующие функции:

передача и получение сообщений между отдельными процессами;

коллективные взаимодействия процессов;

взаимодействия в группах процессов;

реализация топологий процессов;

В MPI 2.0 (опубликован 18 июля 1997 года) [126] дополнительно поддерживаются следующие функции:

управление процессами и динамическое их порождение;

односторонние коммуникации (Get/Put);

параллельный вывод и ввод;

расширенные коллективные операции (процессы могут выполнять коллективные операции не только внутри одного коммуникатора, но и в рамках нескольких коммуникаторов).

Версия MPI 3.0 вышла 21 сентября 2012 года [126] и включает в себя не блокирующие взаимодействия, новые версии односторонних коммуникаций и многие другие функции.

Очень много языков программирования поддерживают стандарт MPI и имеют библиотеки для работы с ним. Это позволит исполнять программы на множестве распространенных языков.

Для tftp сервера так же есть стандарты, описывающие спецификацию TFTP (RFC (STD33)), RFC 2347 – опции TFTP, RFC 3617 – схема URI, RFC 2348 – размер блока, RFC 2349 – тайм-аут. С его помощью узлы будут получать первоначальный загрузчик, ядро ОС и диск оперативной памяти для первичной инициализации.

DNS состоит из двух стандартов – RFC 1034 (Domain names - concepts and facilities) и RFC 1035 (Domain names - implementation and specification) DHCP так же состоит из двух стандартов – RFC 2131 (Dynamic Host Configuration Protocol) и RFC 2132 (DHCP Options and BOOTP Vendor Extensions) NFS описан в стандарте RFC 3530 (Network File System (NFS) version 4 Protocol) Исходя из рассмотренных ограничений и спецификаций, нацеленных на обеспечение максимальной простоты в организации вычислительных кластеров класса Beowulf можно сформулировать рекомендации для подбора технических составляющих в процессе сборки вычислительных кластеров, и программном обеспечении, используемом при введении кластера в эксплуатацию.

Приведенные в Таблице 2.3.1 стандарты составляют рекомендуемый автором портфель стандартов:

Таблица 2.3.1 Стандарты для кластеров класса Beowulf Компонент кластера / Организация-автор программное стандарта/рекоменда Номер стандарта.

обеспечение кластера ций.

802.3 (один из стандартов IEEE Сетевые интерфейсы 802.3u/802.3ab/802.3an) спецификация PXE 2. Intel EIA/TIA EIA/TIA Сетевые соединения ISO 11801, ISO (патч-корды) ГОСТ Р 53246-2008, ГОСТ Р ГОСТ Р 53245- RFC 1034 (Domain names - concepts and facilities), DNS RFC 1035 (Domain names - implementation and specification) RFC 2131 (Dynamic Host Configuration Protocol) DHCP RFC 2132 (DHCP Options and BOOTP Vendor Extensions) RFC RFC 3530 (Network File System (NFS) NFS version 4 Protocol) RFC 1350 (The TFTP protocol (revision 2)), RFC 2347 (TFTP Option Extension), TFTP RFC 3617 (Uniform Resource Identifier (URI) Scheme and Applicability Statement for the Trivial File Transfer Protocol (TFTP)), RFC 2348 (TFTP Blocksize Option), RFC 2349 (TFTP Timeout Interval and Transfer Size Options) RFC 425 – The Secure Shell (SSH) Protocol Assigned Numbers RFC 4251 – The Secure Shell (SSH) Protocol Architecture RFC 4252 – The Secure Shell (SSH) Authentication Protocol RFC 4253 – The Secure Shell (SSH) Transport Layer Protocol RFC 4254 – The Secure Shell (SSH) Connection Protocol RFC 4255 – Using DNS to Securely Publish Secure Shell (SSH) Key Fingerprints RFC 4256 – Generic Message Exchange Authentication for the Secure Shell Protocol SSH (SSH) RFC 4335 – The Secure Shell (SSH) Session Channel Break Extension RFC 4344 – The Secure Shell (SSH) Transport Layer Encryption Modes RFC 4345 – Improved Arcfour Modes for the Secure Shell (SSH) Transport Layer Protocol RFC 4419 – Diffie-Hellman Group Exchange for the Secure Shell (SSH) Transport Layer Protocol RFC 4432 – RSA Key Exchange for the Secure Shell (SSH) Transport Layer Protocol RFC 4716 – The Secure Shell (SSH) Public Key File Format Программные интерфейсы передачи спецификация MPI 2. MPI Forum сообщений Графические Спецификация CUDA 2.0 и выше Nvidia процессоры ISO/IEC 23360-1:2006 – ISO/IEC 23360 The Linux Foundation ОС и ISO/IEC 8: При соблюдении профиля стандартов, приведенных выше, итоговый кластер потенциально самый простой в администрировании и наиболее гибкий по решаемым задачам. Использование общедоступных компонентов значительно сократит требования к бюджету, при сборке кластера «с нуля». Так же, исходя из стандартов, подобная система будет обладать свойствами всеми свойствами открытых систем (расширяемость, масштабируемость, переносимость (приложений, данных и персонала), интероперабельность (приложений и систем)). При соблюдении стандартов, кластеры могут быть объединены друг с другом, посредством сети VPN, например, для создания более мощного кластера с большим числом ядер, либо с помощью открытой программной платформы BOINC создать GRID-систему из этих кластеров.

Методика использования особенностей стандартов для повышения 2.3. производительности сетевых соединений вычислительных кластеров на основе протокола Ethernet.

Для вычислительных кластеров класса Beowulf, состоящих из общедоступных, недорогих и неприхотливых обслуживании и замене компонентов чаще всего используются соединения, основанные на стеке протоколов TCP/IP (Transmission Control Protocol, протокол управления передачей;

Internet Protocol, интернет-протокол) и стандартах Ethernet. На основе идей, предложенных авторами [127,128,129], и рекомендаций, которые делаются для кластеров из профессионального оборудования, рассмотрим практические пути повышения производительности сетевых соединений.

В среднестатистических случаях создания вычислительных кластеров класса Beowulf, например энтузиастами в ВУЗах, выбор останавливается между соединениями Ethernet в Мбит/c или 1 Гбит/с, как наиболее доступными и широко распространенными. При редких передачах сообщений малыми порциями, разница в скорости соединения может показаться минимальной. Так как сетевые соединения в общем случае являются узким местом вычислительного кластера, то далее будет даваться теоретическое обоснование методов повышения производительности сетевых соединений узлов вычислительных кластеров со скоростями 100 Мбит/с и 1Гбит/с для интенсификации межузлового обмена.

Оба стандарта основаны на стеке протоколов TCP/IP, протоколе Ethernet и используют медную витую пару как среду передачи данных. Основываясь на этом, опишем далее общие черты стандартов.

Рис. 2.3.14 Структура заголовка TCP-фрагмента.

Рис. 2.3.15 Структура заголовка IP-пакета Рис. 2.3.16 Структура Ethernet-фрейма На рисунках 2.3.14-2.3.16 приведены состав TCP-сегмента, IP-пакета и Ethernet фрейма, согласно процессу инкапсуляции данных по стеку протоколов. Длина заголовков TCP сегментов, на транспортном уровне, может варьироваться в зависимости от набора опций, которые добавляются, и составляет от 20 до 32 байт. Данные, переданные ниже по стеку на сетевой уровень, окружаются заголовком IP протокола, который так же, в зависимости от опций может быть от 20 до 24 байт. Предпоследним в стеке и последним в описании уровнем является канальный уровень. На нем IP пакет оборачивается в заголовок и трейлер Ethernet-фрейма длиной 26 байт. Таким образом, суммарная длина технических данных составляет от 66 до 82 байт. Так же для расчета добавим 12 байт – отступ для пакетов в процессе передачи.

Максимальная длина передаваемых данных по протоколу Ethernet составляет байт. Следовательно, длина передаваемых данных пользователя колеблется от 1444 до байт при использовании максимальной длины пакета. Исходя из этих цифр, посчитаем эффективную мгновенную нагрузку канала:

Payload (1) E= MTU Bt Где E – оценка доли мгновенной полезной нагрузки, MTU (Maximum Transmission Unit) – максимальный размер блока передачи данных, Payload – длина передаваемых полезных данных, Bt (BitTime) – временной промежуток между двумя последовательными блоками данных. Соотношение полезной нагрузки к общей длине сообщения как видно из (1) зависит от длины передаваемых пользовательских данных, так как параметр Bt в сетях является фиксированной величиной и равен 12 байтам, а параметр MTU может меняться в зависимости от конкретной сети. Для обоих типов соединений такое соотношение будет идентично ввиду использования одного протокола. Значения для разных объемов пользовательских данных приведены в таблице 2.2.2. Как в формуле (1), так и в Таблице 2.3.2 учитывается мгновенная эффективность канала передачи данных, которая считается для конкретного объема передаваемых данных и на протяжении времени может меняться за счет периодов простоя в процессе обмена.

Таблица 2.3.2. Зависимость теоретической полезной нагрузки канала от объема пользовательских данных Пользовательские данные Процент полезной нагрузки (Байт) канала 110 57, 210 71, 310 79, 410 83, 510 86, 610 88, 710 89, 810 90, 910 91, 1010 92, 1110 93, 1210 93, 1310 94, 1410 94, 1510 94, В работе использовались реальные фактические данные сетевого трафика действующего кластера, занимающегося расчетами для проекта Folding@Home. Дальнейшие оценки трафика делаются на основе более чем 425 тысяч сетевых пакетов сервера, собранных анализатором сетевого трафика WireShark, а так же на основе данных, собираемых системой мониторинга Ganglia за месяц. На рисунке 3.1.19 приведено распределение пакетов по размерам, и, согласно WireShark, около 2/3 всех пакетов имеют размер 1514 байт, еще 1/3 – пакеты с подтверждениями записи, размером ~ 60 байт.

Рис. 2.3.17 Распределение пакетов по размерам.

Размер MTU в 1500 байт был установлен в стандарте Ethernet [3] и рассчитан на использование ненадежных линий связей с высокой вероятностью потерь пакетов, и используется сейчас по-умолчанию во всех соединениях для конечного потребителя с целью обеспечения максимальной совместимости с широким диапазоном существующего оборудования. В кластерах класса Beowulf используются общедоступные и недорогие технологии и, следовательно, в сетевых адаптерах на узлах кластера значение параметра MTU так же установлено по-умолчанию в 1500 байт. Повышение производительности сетевого соединения может быть достигнуто за счет уменьшения количества передаваемых неинформационных технических данных. Просто убрать части заголовков в стеке протоколов невозможно, но возможно увеличить объем пользовательских данных, передаваемых в одном пакете.

Кадры бoльших размеров, чем стандартный, называются Jumbo frame, а кадры сверхбольших размеров Super Jumbo frame, где размеры могут варьироваться от 1500 до 64000 байт [130]. Использование кадров большего размера в локальной сети может значительно увеличить эффективную пропускную способность канала, за счет того, что информация, ранее дробившаяся на части, будет передаваться единовременно. А потери данных будут сведены к минимуму, если не к нулю, за счет коротких сетевых кабелей, не подверженным ЭМ воздействию и работы не более чем одного сетевого устройства роутера.

Максимальный размер Jumbo frame ограничен техническими характеристиками сетевых устройств узлов кластера и устанавливается производителем. Устананвливая максимальный MTU в 9000 байт процент полезной нагрузки канала будет составлять 99,1%.

Сравнивая с таблицей 1, 3% кажется не столь впечатляющими, но если сравнить такую же эффективность при передаче ядра [3] и рамдиска (ramdisk [3], initrd [3]) для узла кластера, то расчеты покажут следующее:

Размер ядра – 2301536 байт, рамдиска – 10560935 байт. При передаче по сети фреймов в 1518 байт, из которых пользовательских 1436, а технических – 82, для передачи файлов потребуется [2301536/1436]+1 = 1603 пакета [10560935/1436]+1=7355 пакетов.

Следовательно, суммарно потребуется 8958 пакетов максимальной длины, для каждого из которых так же потребуется 82 байта технически данных, т.е. 734556 байт и промежутков по 12 байт.

Таким образом, производительность канала составит:

100% 93,856 (2) E= 12862471 734556 В случае MTU=9000 байт, значения будут следующие:

[2301536/1436]+1 = 259 пакета [10560935/1436]+1=1185 пакетов.

Суммарно 1444 пакета.

Таким образом, производительность канала составит:

100% 98,956 (3) E= 12862471 118408 Сопоставляя (2) и (3) получим прирост производительности канала передачи данных на уровне 5,1 % по сравнению с отключенным Jumbo frame.

В общем виде формулу расчета мгновенной производительности можно записать в следующем виде:

P E ( P, M, H, B ) = P P P H B M M, где (4) P (Payload) – объем пользовательских данных для пересылки в байтах, M (MTU) – максимальный размер пользовательских данных на 1 Ethernet-фрейм, H – «накладные расходы», суммарная длина всех технических данных для 1 Ethernet-фрейма, B – BitTime – временной промежуток между передачей двух пакетов.

Из особенностей сетей передачи данных можно отметить разную скорость передачи бит по сети, в частности 10 нс/бит для 100Мбит/с и 1 нс/бит для 1Гбит/с. То есть, при расчете получается, что скорость передачи пакетов стандартной длины будут различаться примерно в 10 раз. Оценка по времени передачи данных для разных типов каналов приведена в таблице 2.3.3.

Таблица 2.3.3. Время передачи ядра и рамдиска Тип канала MTU 1518 байт MTU 9000 байт 100 Мбит/с 1,096 с. 1,04 с.

1000 Мбит/с 0,109 с. 0,104 с.

Таким образом, для этого примера, использование jumbo-frame в FastEthernet сети уменьшает время передачи данных до 5% при 5-ти кратном увеличении размера пакета.

Рис. 2.3.18 Использование сети передачи данных главным узлом кластера за неделю.

Исходя из представленных расчетов и графиков работы реального вычислительного кластера (рис. 3.1.20), установлено, что при обмене стандартными Ethernet-фреймами объем технических данных стека протоколов уменьшает пропускную способность канала и увеличивает время передачи данных. Итоговая производительность канала составляет 94% от максимальной пропускной способности. Для повышения производительности рекомендуется уменьшить объем технических данных протоколов TCP, IP и Ethernet. В качестве инструмента используется увеличение максимального размера кадров, допустимого к пересылке по сети. Согласно расчетам, увеличение максимального размера кадров приводит к приросту производительности на уровне 4%, при этом скорости, при обращении в сети пакетов данных, больших, чем 1500 байт, увеличиваются на 5%.

2.4 Заключение.

В результате второй главы были решены задачи 1, 2, 3 из списка, сформулированного в пп.1.5 настоящей диссертации.

Создан алгоритм кластеризации с поддержкой многопоточных библиотек и графических процессоров. Предполагаемые способы повышения скорости кластеризации позволят в несколько раз ускорить получение результата в среде гибридных вычислительных кластеров. Библиотеки MPI есть для широкого круга языков программирования (С, С++, Ruby, Common Lisp, Java, Haskell, Python, Java, Fortran), библиотеки CUDA доступны для С++, Java, Python, Haskell, Fortran и др. Такое разнообразие делает возможным программировать многопоточные приложения для решения крайне широкого круга задач.



Pages:     | 1 || 3 | 4 |
 





 
© 2013 www.libed.ru - «Бесплатная библиотека научно-практических конференций»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.