Повышение эффективности протоколов передачи данных в системах высокопроизводительных вычислений кластерной архитектуры тема диссертации и автореферата по ВАК РФ 05.13.15, кандидат наук Ахмед Набиль Мухаммед Мудхш

  • Ахмед Набиль Мухаммед Мудхш
  • кандидат науккандидат наук
  • 2018, ФГАОУ ВО «Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. В.И. Ульянова (Ленина)»
  • Специальность ВАК РФ05.13.15
  • Количество страниц 114
Ахмед Набиль Мухаммед Мудхш. Повышение эффективности протоколов передачи данных в системах высокопроизводительных вычислений кластерной архитектуры: дис. кандидат наук: 05.13.15 - Вычислительные машины и системы. ФГАОУ ВО «Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. В.И. Ульянова (Ленина)». 2018. 114 с.

Оглавление диссертации кандидат наук Ахмед Набиль Мухаммед Мудхш

ВВЕДЕНИЕ

ГЛАВА 1. АНАЛИЗ КЛАСТЕРНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ

1. 1 Развитие кластерных систем

1.2 Модель ускорения для кластерной архитектуры

1.3 Ярусно-параллельная форма

1.4 Оборудование кластера

1.5 Программные приложения для кластера

1.6 Оценка возможной оптимизации

1.7 Выбор тестов

Вывод по главе

ГЛАВА 2. СЕТЕВОЙ СТЕК LINUX

2.1 Общие сведения о высокоскоростных сетях

2.2 Сетевая подсистема Linux

2.3 Получение пакета в Linux в общем случае

2.4 Отправка пакета в Linux в общем случае

Вывод по главе

ГЛАВА 3. РАЗРАБОТКА ИНТЕРФЕЙСА ДЛЯ РЕАЛИЗАЦИИ ПРОТОКОЛОВ

3.1 Возможная оптимизация

3.2 Реализация протокола

3.3 Детали реализации

3.4 Методика повышения эффективности

3.4 Отличия от аналогичных средств

Вывод по главе

4. ТЕСТИРОВАНИЕ РЕАЛИЗАЦИИ ИНТЕРФЕЙСА

4.1 Методы тестирования сетевой инфраструктуры вычислительного кластера

4.2 Характеристики системы

4.3 Характеристики узлов

4.4 Результаты тестирования

4.5 Анализ результатов

Вывод по главе

ЗАКЛЮЧЕНИЕ

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

Приложения

Введение диссертации (часть автореферата) на тему «Повышение эффективности протоколов передачи данных в системах высокопроизводительных вычислений кластерной архитектуры»

ВВЕДЕНИЕ

Актуальность темы исследования обусловлена тем фактом, что сеть является главным ограничивающим фактором роста производительности вычислений на кластерах. Проблема эффективности сетевого взаимодействия рассматривается в ряде работ российских и зарубежных исследователей за последние годы, в частности рассматриваются вопросы эффективности работы сетевого стека. В последнее время появилось множество аппаратных, программных и програмнно-аппаратных решений, нацеленных на увеличение производительности сетевого взаимодействия (например, Open OnLoad, DPDK, Netmap, PF_RING). Развитие разработанных средств продолжается, на основе существующих решений появляются новые (например, PF_RING DNA). Многие решения нацелены на оптимизацию работы уже имеющегося оборудования (например, DPDK, Netmap). Учитывая высокую активность разработчиков в данной области, высокую практическую значимость решений в данной области и фактическое отсутствие результатов для сетей вычислительных кластеров, можно считать выбранную тему работы актуальной.

Использование стека TCP/IP для передачи данных в рамках вычислительных кластеров может ограничить масштабируемость из-за накладных расходов (относительно сложная обработка на узле; сложная работа самого протокола; копирование данных; накладные расходы из-за обработки системных вызовов и обработки прерываний). Для получения лучшей производительности, в некоторых системах реализация сетевого стека, в том числе реализация TCP/IP, работает непосредственно в режиме ядра и является неотъемлемой частью операционной системы. С другой стороны, есть решения, которые «помещают» сетевой стек наоборот в пространство пользователя и организуют работу особым образом, снижая, например, накладные расходы на выполнение системных вызовов [1-3]. Эффективность этих систем обусловлена спецификой задач и/или специальным

аппаратным обеспечением сетевых карт, обеспечивающим прямой доступ к структурам данных NIC (различные подходы рассмотрены в [4, 5]). В других случаях также специализированное оборудование позволяет организовать удаленный прямой доступ к памяти, RDMA (например, Infiniband [6]). Таким образом, когда речь заходит о высокопроизводительных вычислениях, нестандартные подходы и новые решения — чуть ли не единственный способ добиться требуемой производительности и масштабируемости.

В то же время стек TCP/IP — надежное, проверенное временем решение, зарекомендовавшее себя с лучшей стороны за несколько десятилетий [7]. Он обеспечивает отказоустойчивость и обладает способностью адаптироваться к свойствам объединенной сети. Реализацию стека TCP/IP в ядре операционной системы Linux можно назвать одной из лучших. Она очень надежна и обладает отличной производительностью.

Однако стек TCP/IP изначально разрабатывался для глобальной сети: он предполагает наличие разнородных сетей, сильно отличающихся по характеристикам (например, производительность и задержка), объединенных в большую глобальную сеть. Среда передачи данных в таком случае, разумеется, полагается ненадежной. Нагрузка на сеть в общем случае может меняться случайным образом и достигать пиковой пропускной способности сети. И TCP, и IP разрабатывались исходя из этих предположений: адресация большого числа узлов (IP); использование контрольных сумм; подтверждения (TCP); управление потоком (TCP); борьба с перегрузкой (TCP) и различные оптимизации (например, «fast retransmission», «fast recovery»). Стек TCP/IP предусматривает решения множества потенциальных проблем в общем (самом плохом) случае, а как следствие, его реализация довольно сложна, а обработка пакета в среднем занимает существенное время. Но самое главное — в случае небольшой надежной локальной сети все его отличительные возможности оказываются востребованными в гораздо меньшей степени, чем в случае глобальной сети. Сеть вычислительного кластера — как раз

этот случай: она надежна, предсказуема (в общем и целом), узлы кластера (и подсети), как правило, однородны, нагрузка может быть оценена заранее в случае выделения кластера для одной конкретной задачи (кластер может быть выделен определенной группе пользователей на определенное время для расчета определенного научного приложения, обладающего известными требованиями к сети). И в случае вычислительного кластера его использование может принести неоправданные (по указанным выше причинам) накладные расходы. А поскольку сеть, как правило, является основным фактором, ограничивающим производительность вычислительного кластера, устранение даже незначительных потерь производительности сети может улучшить характеристики кластера, ведь производительность расчетов — главный критерий использования кластеров. Поэтому данная работа посвящена оценке факторов, влияющих на производительность сети, методов ее повышения, разработке интерфейса для создания протоколов для передачи данных в рамках вычислительного кластера (данный интерфейс был разработан как модуль ядра Linux). А также разработке методик, позволяющих повысить производительность и в общем случае. Это также важно, так как в случае вычислительного кластера в рамках вычислительного центра (работающего с большим числом пользователей и приложений) нагрузку на кластер и требуемую пропускную способность сети рассчитать заранее трудно.

Данная работа рассматривает средние по числу узлов вычислительные кластеры, использующие Ethernet для организации сетевого взаимодействия, с ОС Linux на узлах. Такие кластеры широко распространены, например, в университетской среде. К такому типу относятся недорогие, средние по числу узлов кластеры и Beowulf-кластеры. Несмотря на их распространенность, внимание исследователей, как правило, обращено к HPC-системам, использующим дорогостоящие «заказные» сети и специализированные протоколы.

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

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

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

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

Компьютерные сети (Gigabit Ethernet). Предмет исследования

Компьютерные сети (Gigabit Ethernet) вычислительных кластеров с ОС Linux на узлах.

Цель работы и задачи исследования

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

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

• разработка методики для повышения надежности и эффективности сетевого взаимодействия для средних вычислительных кластеров с ОС Linux на узлах, использующих Ethernet, с учетом особенностей их использования;

• разработка архитектуры и программного решения (интерфейса) для реализации новых протоколов на уровне ядра, позволяющего оптимизировать пересылку данных в рамках использования стандартных средств ОС Linux;

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

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

• тестирование указанной реализации интерфейса на кластере. Методы исследования

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

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

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

3. Предложена методика повышения производительности сети для вычислительных кластеров. В отличие от других методик данная методика

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

4. Разработана архитектура и создано программное решение (интерфейс) для разработки новых сетевых протоколов на основе методики как в пространстве ядра, так и в пространстве пользователя. В рамках интерфейса предусмотрен ряд оптимизаций. В отличие от других решений (например, DPDK, Netmap, PF_RING) данное решение ориентировано на использование в рамках вычислительных кластеров для прикладных пользовательских расчетов, а не для разработки сетевых сервисов. Также к отличиям относится использование существующих средств в рамках ОС Linux, без необходимости их изменения, например, изменения существующего API или изменения разработанных драйверов сетевых карт.

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

Значимость полученных результатов для теории и практики:

Практическая значимость состоит в возможности применения полученных результатов для широко распространенного типа вычислительных кластеров: Ethernet-кластеры с ОС Linux на узлах. Подобные кластеры встречаются как у небольших организаций, так и на крупных предприятиях, желающих избежать привязки к конкретному поставщику; ОС Linux используется в рамках большинства суперкомпьютеров кластерной архитектуры списка «TOP-500». Именно поэтому диагностика потенциальных проблем и оптимизация работы указанных систем

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

Таким образом, перечисленные ниже пункты являются практически значимыми:

• Методика повышения надежности и эффективности сетевого взаимодействия для средних по числу узлов вычислительных кластеров с ОС Linux, использующих Ethernet, с учетом особенностей их использования.

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

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

Основные положения, выносимые на защиту

• Методика повышения надежности и эффективности сетевого взаимодействия для средних по числу узлов вычислительных кластеров с ОС Linux, использующих Ethernet, с учетом особенностей их использования.

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

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

Степень обоснованности и достоверности полученных научных результатов

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

Полученные практические результаты используются в рамках учебного кластера кафедры КММС факультета ПМ-ПУ СПбГУ. Указанный интерфейс используется в рамках учебного процесса для изучения особенностей работы реализации сетевого стека в ОС Linux. Апробация

Основные научные результаты были озвучены на 7 конференциях: 1. ХХ Международная научно-методическая конференция «Современное образование: содержание, технологии, качество». СПбГЭТУ "ЛЭТИ", 2014 г.

2. Научно-техническая конференция профессорско-преподавательского состава. СПбГЭТУ "ЛЭТИ", 2015 г.

3. XLVI международная научная конференция «Процессы управления и устойчивость» (Control Processes and Stability, CPS'15). СПбГУ, 2015 г.

4. The 15th International Conference on Computational Science and Its Applications (ICCSA 2015). Канада, 2015 г.

5. 10th International Conference on Computer Science and Information Technologies (CSIT 2015). Армения, 2015 г.

6. Научно-техническая конференция профессорско-преподавательского состава. СПбГЭТУ "ЛЭТИ", 2016 г.

7. The 7th International Conference "Distributed Computing and Grid-technologies in Science and Education" (GRID 2016). Россия, 2016 г.

Публикации

Основные теоретические и практические результаты диссертации опубликованы в 9 статьях и докладах, из них по теме диссертации 9, из них 2 статьи, входящие в ведущие рецензируемые издания, рекомендованные в действующем перечне ВАК РФ, 3 статьи опубликованы в зарубежных изданиях, индексируемых в базе Scopus, 3 публикаций опубликованы в других изданиях и материалах конференций, 1 свидетельство программы ЭВМ. Структура и объем диссертации

Диссертационная работа состоит из введения, четырёх глав, заключения, списка использованной литературы, приложение. Работа содержит 114 страниц основного текста, 3 таблиц, 27 рисунков. Список использованной литературы включает 81 наименование.

ГЛАВА 1 АНАЛИЗ КЛАСТЕРНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ

1.1 Развитие кластерных систем

Вычислительные кластеры сегодня распространены практически повсеместно. Однако среди высокопроизводительных вычислительных систем долгое время лидирующие позиции занимали SMP-системы (достаточно взглянуть на ранние списки «TOP-500»). Кластер рабочих станций, по сути, явился продолжением идеи МРР (Massively Parallel Processing). Основными конкурентными преимуществами кластера стала его цена (низкая стоимость) и возможность использования распространенных, обычных комплектующих (в полной мере проявившаяся в Beowulf-кластерах) [8-10].

Главной характеристикой кластера является его производительность. Различают пиковую (теоретическую) и реальную производительность (достигнутую на какой-либо задаче, например, тестовой). Для оценки производительности кластера, как правило, используют стандартные тесты например, тест LINPACK, используемый для ранжирования систем в списке «TOP-500» [11].

Созданием современных высокопроизводительных вычислительных кластеров занимаются различные компании, например, «Т-Платформы».

Бурное развитие кластерных технологий за последние годы хорошо видно из анализа списка «TOP-500»: с 2000 г. по 2017 г. доля кластеров в списке значительно увеличилась с 5,6% до 86,4% [11] (см. рисунки 1.1, 1.2).

■ Кластеры SMP

■ Constellations

MPP

Рисунок 1.1.- Доля кластеров в списке лучших суперкомпьютеров на ноябрь 2000 г.

(под данным [11])

Рисунок 1.2. Доля кластеров в списке лучших суперкомпьютеров на июнь 2017 г.

(под данным [11])

Можно выделить два основных направления развития кластерных систем:

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

• кластерное (во многом похоже на вариант развития MPP-систем).

Стоит также отметить тенденцию последних лет: использование специализированных ускорителей (например, NVIDIA CUDA, Intel MIC) в рамках узлов кластера [12] (такие узлы обычно называют гибридными узлами).

■ Кластеры SMP

■ Constellations

MPP

В рамках общеизвестной таксономии Флинна [13, 14] рассматривается четыре класса:

• SISD (один поток команд — один поток данных);

• SIMD (один поток команд — множество потоков данных);

• MISD (множество потоков команд — один поток данных);

• MIMD (множество потоков команд — множество потоков данных). Кластеры можно отнести к MIMD-системам (подобная система схематично

изображена на рисунке 1.3).

Рисунок 1.3. MIMD-системы Данный класс (MIMD-системы) был разбит на отдельные подклассы Хокни [15, 16]. На рисунке 1.4 представлена его уточненная классификация указанного типа систем.

Рисунок 1.4. Расширенная классификация MIMD-систем Так, рассмотрение кластеров выполняется в соответствии с используемой топологией сети (возможна и гибридная сетевая система, если используются несколько топологий в рамках нескольких сетей).

На рисунке 1.5 указано положение кластерных систем среди разнообразных вычислительных систем.

Рисунок 1.5. Кластерные системы Возможны следующие критерии классификации кластеров [17-19]:

• используемая ОС (наибольшее число суперкомпьютеров в списке «TOP-500» -Linux-кластеры);

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

• используемое ОЗУ (организована ли в рамках кластера распределенная общая память);

• основное назначение кластера (вычислительные кластеры, кластеры высокой готовности, кластеры для балансировки нагрузки).

Отдельно стоит также упомянуть о GRID-системах, в рамках которых объединяются целые кластеры. Различные аспекты работы кластерных систем рассмотрены в [20-29].

Помимо ОС (речь о которых пойдет далее в этой работе), прежде всего стоит упомянуть так называемое «промежуточное ПО». Подобное программное обеспечение используется для организации расчетов. Оно предоставляет API для высокоуровневных языков программирования, на которых создаются прикладные программы. Примером такого ПО является MPI (Message Passing Interface). Эффективная реализация MPI может ускорить расчеты. От нее, к примеру, зависит выбор транспорта (сети) для передачи пользовательских сообщений. Так, реализация MPI может работать с Infiniband — в таком случае пользовательские приложения смогут использовать Infiniband даже «не зная» об этом [30-32].

1.2 Модель ускорения для кластерной архитектуры

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

Ускорение определяется формулой:

S -Il

SN т , 1 N

T1 - время выполнения последовательной версии приложения (на 1 ядре

процессора),

TN - время выполнения параллельной версии приложения на N процессорных

ядрах.

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

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

Если взять a — долю последовательных вычислений в рамках алгоритма, то получим ускорение равное (по закону Амдаля [33]):

_ Т _ ^ — ~ —

Т,

1

N

Т

N

а * Т1 I (1 - а? * Т а | (1 - а) а * N + (1 — а)

N

N

На рисунке 1.6 представлен график ускорения по закону Амдаля для доли последовательных вычислений, равной 20% .

Рисунок 1.6. Закон Амдаля Однако в указанной формуле не учтено время передачи данных между процессорами, находящимися на разных узлах кластера, а для кластерной архитектуры это время может являться существенным, поэтому его необходимо учитывать. В случае кластерной архитектуры введем параметр ^ - время сетевого взаимодействия между двумя процессорными ядрами (возможно, на разных узлах

кластера), i и j. Тогда получим следующую формулу для времени выполнения параллельного приложения на N процессорных ядрах (на нескольких узлах):

N N

(1 - а) * Т V V

¡ = 1 ]=1

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

NN NN

¡=1 ]=1 \=1 ]=1

Где С^) — функция, соответствующая расстоянию между узлами, dij —

параметр, характеризующий соединения процессорных ядер между собой (таким

образом учитывается и вариант многоядерных узлов кластера), ^ — характерное

время (некоторое значение). Если предположить, что процессоры одинаково

загружены расчетами и обменом данными, то получим следующую формулу:

N N

тт ^ ^ ^ = в * у * Т± * Ы2

¡=1 ]=1

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

тт

II

Таким образом, формула для расчета времени выполнения параллельного алгоритма на N процессорных ядрах принимает следующий вид:

Тм = а * Т +

(1 - а) * Т N

+ Р*у*Т1*Ы

А, соответственно, ускорение будет равно: _ Т1 _ Т

Sм = гт- =

1

М Т^Т1(1-а)*Т1

а * Т± +

N

+ в * у * Тх * N2 а +

(1 — а) N

+ в * у * N

N

(1 — a) + a*N + в*Y*N3 График ускорения в этом случае будет иметь вид, представленный на рисунке

1.7.

Рисунок 1.7. Уточненный закон Амдаля Как видно, в этом случае увеличение числа процессорных ядер, задействованных в расчетах, уже уменьшает ускорение после определенного значения из-за взаимодействия процессорных ядер между собой (главный сдерживающий фактор в рамках кластерной архитектуры — передача данных по сети). Это значение является оптимальным числом процессорных ядер для расчетов для данного параллельного алгоритма в рамках данного кластера (так как теперь

учитываются не только особенности алгоритма, но и особенности конкретной архитектуры).

Оптимальное число процессорных ядер (или узлов в случае одного одноядерного процессора на узел) в данном случае будет равняться:

N

(1 - а)

2 * в * У

И максимальной ускорение (при использовании ^^ числа процессорных ядер) будет равно:

1

3 * (1 — а) а + ^ )

2 *

Для удобства обозначим:

п — в * у

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

_ N

(1 — a) + a*N + n*N

з

Тогда для фиксированных a и N (например, доля последовательных вычислений равна 20% ^=0.2), а число процессорных ядер равно 8 (N=8)) график зависимости SN от п будет иметь вид, представленный на рисунке 1.8.

Рисунок 1.8. Зависимость ускорения от значения параметра п при фиксированных а

(а=0.2) и N (N=8)

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

Похожие диссертационные работы по специальности «Вычислительные машины и системы», 05.13.15 шифр ВАК

Список литературы диссертационного исследования кандидат наук Ахмед Набиль Мухаммед Мудхш, 2018 год

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Rizzo, L. Netmap: a novel framework for fast packet I/O [Текст] / L. Rizzo // Proceedings of the 21st USENIX Security Symposium (USENIX Security 12). - 2012. - P. 101-112.

2. DPDK. Programming Guide [Электронный ресурс]. - Электронные данные. -Режим доступа: http://dpdk.org/doc/guides/prog_guide/.

3. Официальный сайт Open Onload [Электронный ресурс]. - Электронные данные. -Режим доступа: http://www.openonload.org.

4. Tsiamoura, K. A survey of trends in fast packet processing [Текст] / K. Tsiamoura // Proceedings of the Seminars «Future Internet» (FI) and «Innovative Internet Technologies and Mobile Communications» (IITM). - 2014. - P. 41-48.

5. Rizzo, L. 10 Gbit/s line rate packet processing using commodity hardware: Survey and new proposals [Электронный ресурс] / L. Rizzo, L. Deri, A. Cardigliano // Электронные данные. - Режим доступа: http://luca.ntop.org/10g.pdf.

6. Mellanox OFED for Linux User Manual, Rev. 3.30 [Электронный ресурс]. -Электронные данные. - Режим доступа: http://www.mellanox.com/relateddocs/prod_software/Mellanox_OFED_Linux_User_M anual_v3.30.pdf.

7. Таненбаум, Э. Компьютерные сети [Текст] / Э. Таненбаум, Э. Д. Уэзеролл. - 5-е изд. - СПб. : Питер, 2012. - 960 с.

8. Воеводин, В. В. Вычислительное дело и кластерные системы [Текст] / В. В. Воеводин, С. А. Жуматий. - М.: Изд- во МГУ, 2007. - 150 с.

9. Букатов, А. А. Программирование многопроцессорных вычислительных систем [Текст] / А. А. Букатов, В. Н. Дацюк, А. И. Жегуло. - Ростов-на-Дону : Изд-во ООО «ЦВВР», 2003. - 208 с.

10.Воеводин, В. В. Параллельные вычисления [Текст] / В. В. Воеводин, Вл. В. Воеводин. - СПб. : БХВ-Петербург, 2002. - 609 с.

11.Top 500 supercomputers sites [Электронный ресурс]. - Электронные данные. -Режим доступа: http://www.top500.org/.

12.Лацис, А.О. Как построить и использовать суперкомпьютер [Текст] / А. О. Лацис.

- М. : Бестселлер, 2003. - 240 с.

13.Flynn, M. Very high-speed computing system [Текст] / M. Flynn // Proc. IEEE. - 1966.

- N 54. - P. 1901-1909.

14. Flynn, M. Some Computer Organisations and Their Effectiveness [Текст] / M. Flynn // IEEE Trans. Computers. - 1972. - V.21. - N 9. - P.948-960.

15.Hockney, R. Parallel Computers: Architecture and Performance [Текст] / R. Hockney // Proc. of Int. Conf. Parallel Computing'85. - 1986. - P.33-69.

16.Hockney, R. Classification and Evaluation of Parallel Computer Systems [Текст] / R. Hockney // Lecture Notes in Computer Science. - 1987. - N 295. - P.13-25.

17.База знаний электронного журнала PC Mag [Электронный ресурс]. - Электронные данные. - Режим доступа: http://ru.pcmag.com/upgrade-42005/13443/issue/klasternye-sistemy?p=3.

18.Савяк, В. Эффективные кластерные решения [Электронный ресурс] / В. Савяк // Эффективные кластерные решения. - Электронные данные. - Режим доступа: http: //www.ixbt .com/cpu/clustering. shtml.

19.Карпенко, А. П. Многопроцессорные системы (MIMD-системы) [Электронный ресурс] / А. П. Карпенко // Вычислительные кластеры. МГТУ им. Н.Э.Баумана. -Электронные данные. - Режим доступа: http://bigor.bmstu.ru/?cnt/?doc=Parallel/ch010104.mod/?cou=Parallel/base.cou.

20.Buyya, R. High Performance Cluster Computing [Текст] / R. Buyya. - New Jersey : Prentice Hall PTR, 1999. - 128 р.

21.TCP performance re-visited [Текст] / Foong A. P. [et al.]. - 2003 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS 2003). -Texas : IEEE, 2003. - P. 70-79.

22.Во, М. Т. Исследование кластерных вычислительных систем и разработка моделей назначения фрагментов параллельных программ [Текст] : дис. ... канд. техн. наук : 05.13.15 : защищена 2010 : утв. 2010 / Во Минь Тунг. - М. : Моск. энерг. ин-т (МЭИ ТУ), 2010. - 218 с.

23.Орлов, С. А. Организация ЭВМ и систем [Текст] / С.А. Орлов. - СПб. : Питер, 2011. - 686с.

24.База знаний компании Alterozoom [Электронный ресурс]. - Электронные данные. - Режим доступа: https://alterozoom.com/documents/8289.html.

25.Foster, I. WHAT IS THE GRID? A THREE POINT CHECKLIST [Электронный ресурс] / Ian Foster // Department of Computer Science, University of Chicago, Chicago. - Электронные данные. - Режим доступа: http://www.mcs.anl.gov/~itf/Articles/WhatIsTheGrid.pd.

26. Садовничий, В. А. Суперкомпьютерные технологии в науке, образовании и промышленности [Текст] / под ред. В. А. Садовничего, Г. И. Савина, Вл. В. Воеводина. - М. : Изд-во Московского университета, 2012. - 232 с.

27.Бройдо, В. Л. Архитектура ЭВМ и систем [Текст] : учеб. для вузов / В. Л. Бройдо, О.П. Ильина. - 2-е изд. - СПб. : Питер, 2009. - 720 с.

28.Ивашко, Е. Е. Современные технологии высокопроизводительных вычислений [Электронный ресурс] : лекции / Е. Е. Ивашко // Петрозаводский государственный университет, 2016. - 61 с. - Электронные данные. - Режим доступа: https://edu.petrsu.ru/object/4571.

29. Воеводин, В. В. Параллельная обработка данных [Электронный ресурс]: лекции / В. В. Воеводин // Лаборатория параллельных информационных технологий научно-исследовательского вычислительного центра Московского государственного университета имени М. В. Ломоносова. - Электронные данные. - Режим доступа: https://parallel.ru/vvv.

30.Шпаковский, Г. И. Программирование для многопроцессорных систем в стандарте MPI [Текст] : учеб. пособие / Г. И. Шпаковский, Н. В. Серикова. -Минск : БГУ, 2002. - 323 с.

31. Антонов, А. С. Параллельное программирование с использованием технологии OpenMP [Текст] : учеб. пособие / А. С. Антонов. - М. : Изд-во МГУ, 2009. - 77 с.

32.Антонов, А.С. Параллельное программирование с использованием технологии MPI [Текст] : учеб. пособие / А. С. Антонов. - М. : Изд-во МГУ, 2004. - 72 с.

33.Гергель, В. Теория и практика параллельных вычислений [Электронный ресурс]: лекции / В. Гергель // ИНТУИТ. - Электронные данные. - Режим доступа: http://www.intuit.ru/studies/courses/1156/190/info.

34.Ярусно-параллельная форма [Электронный ресурс]. - Электронные данные. -Режим доступа: http://dic.academic.ru/dic.nsf/ruwiki/94729.

35.Intel Xeon Processor E5410 [Электронный ресурс]. - Электронные данные. -Режим доступа: https://ark.intel.com/products/series/59213/Legacy-Intel-Xeon-Processors.

36. Intel 5000 Memory Controller Hub [Электронный ресурс]. - Электронные данные. -Режим доступа: https://www.intel.com/content/dam/doc/design-guide/5000-chipset-memory-controller-hub-guide.pdf.

37.Intel 631xESB/632xESB I/O Controller Hub (ESB2) [Электронный ресурс]. -Электронные данные. - Режим доступа:

https://www.intel.com/content/dam/doc/specification-update/631xesb-632xesb-io-controller-hub-specification-update.pdf.

38.Intel Ethernet Controller [Электронный ресурс]. - Электронные данные. - Режим доступа: https://www.intel.com/content/dam/doc/specification-update/82571 eb-

82572ei-gbe-controller-spec-update.pdf.

39.Intel Pentium and Celeron N3000 Product Family [Электронный ресурс]. -Электронные данные. - Режим доступа:

https://www.intel.com/content/dam/www/public/us/en/documents/guides/pentium-celeron-n3000-product-family-app-power-guidelines-addendum.pdf.

40.Realtek RTL8111 [Электронный ресурс]. - Электронные данные. - Режим доступа: http://www.realtek.com.tw/products/productsView.aspx?Langid=1&PFid=5&Level=5 &Conn=4&ProdID=11.

41.Intel Xeon Processor E5 v3 Family [Электронный ресурс]. - Электронные данные. -Режим доступа: http://ark.intel.com/products/family/78583/Intel-Xeon-Processor-E5-v3-Family.

42.Intel X540-T2 [Электронный ресурс]. - Электронные данные. - Режим доступа: http://ark.intel.com/products/58954/Intel-Ethernet-Converged-Network-Adapter-X540-T2.

43.OpenFOAM [Электронный ресурс]. - Электронные данные. - Режим доступа: http://openfoam.com/.

44.Таненбаум, Э. Современные операционные системы [Текст] / Э. Таненбаум. - 3-е изд. - СПб. : Питер, 2014. - 1120 с.

45.Data Center TCP (DCTCP) [Текст] / M. Alizadeh [et al.] // ACM SIGCOMM computer communication review. - Vol. 40. - No. 4. - P. 63-74.

46.Intel IMB [Электронный ресурс]. - Электронные данные. - Режим доступа: https://software.intel.com/en-us/imb-user-guide.

47.HPL [Электронный ресурс]. - Электронные данные. - Режим доступа: http://www.netlib.org/benchmark/hpl/.

48.Макагон, Д. В. Сети для суперкомпьютеров [Текст] / Д. В. Макагон, Е. Л. Сыромятников // Открытые Системы. СУБД. - 2011. - № 07. - С. 33-33.

49.Analyzing and Optimizing the Linux Networking Stack [Текст] / R. Bolla [et al.] // Grid Enabled Remote Instrumentation. - Boston : Springer, 2009. - P. 187-199.

50.Reinhardt, M. Optimizing Point-to-Point Ethernet Cluster Communication [Электронный ресурс] / M. Reinhardt // QUCOSA. - Электронные данные. - Режим доступа:

http://www.qucosa.de/fileadmin/data/qucosa/documents/5138/data/m_reinhardt_diplom a.pdf.

51.Hyeongyeop, K. Understanding TCP/IP Network Stack & Writing Network Apps [Электронный ресурс] / K. Hyeongyeop // CUBRID. - Электронные данные. -Режим доступа: http://www.cubrid.org/blog/dev-platform/understanding-tcp-ip-network-stack.

52.Leitao, B. H. Tuning 10Gb network cards on Linux [Текст] / B. H. Leitao // Proceedings of the 2009 Linux Symposium. - 2009. - P. 169-185.

53.Almesberger, W. Tuning Differentiated Services on Linux [Текст] / W. Almesberger, J. H. Salim, A. Kuznetsov // Proceedings of the Globecom 99 conference. - 1999. - №. LCA-CONF-1999-019. - P. 831-836.

54. The Linux Kernel Archives [Электронный ресурс]. - Электронные данные. - Режим доступа: https://www.kernel.org.

55.Linux Foundation Wiki [Электронный ресурс]. - Электронные данные. - Режим доступа: http s:// wiki .linuxfoundation. org/networking.

56.A Map of the Networking Code in Linux Kernel 2.4.20 [Электронный ресурс] / M. Rio [et al.]. - Электронные данные. - Режим доступа: https: // datatag.web. cern. ch/datatag/papers/tr-datatag-2004- 1.pdf.

57.Cluster Interconnects [Электронный ресурс]. - Электронные данные. - Режим доступа: http://linuxclusters.com/books/clusters/chapter3/.

58. Brandeburg, J. A way towards Lower Latency and Jitter [Электронный ресурс] / J. Brandeburg. - Электронные данные. - Режим доступа: https://www.linuxplumbersconf.org/2012/wp-content/uploads/2012/09/2012-lpc-Low-Latency-Sockets-slides-brandeburg.pdf.

59.Hadi, S. J. Beyond Softnet [Текст] / S. J. Hadi, R. Olsson, A. Kuznetsov // Proceedings of the 5th Annual Linux Showcase & Conference. - Berkeley : USENIX Association, 2001. - P. 18-18.

60. Corbet, J. Low-latency Ethernet device polling [Электронный ресурс] / J. Corbet // Linux Weekly News. - Электронные данные. - Режим доступа: https://lwn.net/Articles/551284/.

61. Open Source Kernel Enhancements for Low Latency Sockets using Busy Poll [Электронный ресурс]. - Электронные данные. - Режим доступа: https://github.com/tpn/pdfs/blob/master/Open%20Source%20Kernel%20Enhancements %20for%20Low-Latency%20Sockets%20using%20Busy%20Poll%20-%20Intel%20(Whitepaper).pdf

62.Add low latency socket poll [Электронный ресурс]. - Электронные данные. -Режим доступа: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=0602129286705 93.

63. Ixgbe: add support for ndo ll poll [Электронный ресурс]. - Электронные данные. -Режим доступа: http: / / git.kernel. org/cgit/linux/kernel/git/torvalds/linux. git/ commit/?id=5a8 5e737f30c.

64.Bainbridge, J. Red Hat Enterprise Linux Network Performance Tuning Guide [Электронный ресурс] / J. Bainbridge, J. Maxwell. - Электронные данные. - Режим доступа:

https://access.redhat.com/sites/default/files/attachments/20150325_network_performan ce_tuning.pdf.

65.Palaniappan, S. Efficient data transfer through zero copy [Электронный ресурс] / S. Palaniappan, N. Pramod. - Электронные данные. - Режим доступа: https://www.ibm.com/developerworks/library/j-zerocopy/.

66.Navratil, M. Optimizing subsystem throughput in Red Hat Enterprise Linux 6 [Электронный ресурс] / M. Navratil, D. Domingo L. Bailey. - Электронные данные. - Режим доступа: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/pdf/Performance_Tuning_Guide/Red_Hat_Enterprise _Linux-6-Performance_Tuning_Guide-en-US.pdf.

67.Love, R. Linux Kernel Development [Текст] / R. Love. - 3d edition. - New Jersey : Pearson Education, 2010. — 480 p.

68.Corbet, J. Linux Device Drivers: Where the Kernel Meets the Hardware [Текст] / J. Corbet, A. Rubini, G. Kroah-Hartman. - 3d edition. - Sebastopol : O'Reilly Media, Inc., 2009. — 640 p.

69.AF_PACKET with mmap [Электронный ресурс]. - Электронные данные. - Режим доступа: https://www.kernel.org/doc/Documentation/networking/packet_mmap.txt.

70. Corbet, J. Generic receive offload [Электронный ресурс] / J. Corbet // Linux Weekly News. - Электронные данные. - Режим доступа: https://lwn.net/Articles/358910/.

71. Corbet, J. Large receive offload [Электронный ресурс] / J. Corbet // Linux Weekly News. - Электронные данные. - Режим доступа: https://lwn.net/Articles/243949/.

72.MPI Performance Measurements [Электронный ресурс]. - Электронные данные. -Режим доступа: http://www.llnl.gov/computing/mpi/mpi_benchmarks.html.

73. Simple MPI Performance Measurements II [Электронный ресурс]. - Электронные данные. - Режим доступа: http://www.llnl.gov/computing/mpi/mpi_benchmarks2.html/.

74.Gropp, W. Reproducible Measurements of MPI Performance Characteristics [Текст] / W. Gropp, E. Lusk // European Parallel Virtual Machine/Message Passing Interface Users' Group Meeting. - Berlin : Springer, 1999. - P. 11-18.

75.Kendall, W. MPI Send and Receive [Электронный ресурс] / W. Kendall. -Электронные данные. - Режим доступа: http://mpitutorial.com/tutorials/mpi-send-and-receive/.

76.Ахмед Н. Методики для повышения эффективности протоколов передачи данных в системах // Современная наука: актуальные проблемы теории и практики: Серия «Естественные и Технические науки». Москва, № 7-8 2017, С. 27-29, ISSN - 2223-2966.

77.Ахмед Н. Оценка возможной оптимизации сети высокопроизводительных кластерных вычислений (Gigabit Ethernet) // Современная наука: актуальные

проблемы теории и практики: Серия «Естественные и Технические науки». Москва, № 7-8 2017, С. 30-35, ISSN - 2223-2966.

78.Bogdanov A., Gaiduchok V., Ahmed N., Cubahiro A., Gankevich I. Profiling Scheduler for Efficient Resource Utilization // Proceedings of the 15th International Conference on Computational Science and Its Applications, ICCSA 2015, Banff, Canada, June 2225, 2015. - Lecture Notes in Computer Science - 2015 - P. 299-310, Volume 9158; ISSN: 03029743.

79.Ахмед Набиль. Платформа электронного дистанционного обучения // ХХ Международная научно-методическая конференция.Современноеобразование:Содержание,технологии,качество. СПбГЭТУ «ЛЭТИ». 2014. № 2, С. 160-161.

80.Ахмед Н. М. М., Гайдучок В. Ю. Тестирование и оптимизация протоколов передачи данных для HPC-систем // Труды XLVI международной научной конференции "процессы управления и устойчивость" control processes and stability. СПбГУ (cps'15) 2015. том 2, № 1. С 364-371.

81. Vladimir Korkhov, Ivan Gankevich, Alexander Degtyarev, Alexander Bogdanov, Vladimir Gaiduchok, Nabil Ahmed, Amissi Cubahiro. Experience in building virtual private supercomputer // 10th International Conference on Computer Science and Information Technologies. Yerevan, Armenia (CSIT 2015). P. 220-223.

Приложения Приложение 1

Конфигурация ядра ОС Linux (основные параметры):

CONFIG_64BIT=y

CONFIG_X86_64=y

CONFIG_X86=y

CONFIG_MMU=y

CONFIG_ZONE_DMA=y

CONFIG_ZONE_DMA32=y

CONFIG_SMP=y

CONFIG_X86_64_SMP=y

CONFIG_NUMA=y

CONFIG_SWAP=y

CONFIG_SYSVIPC=y

CONFIG_SYSVIPC_SYSCTL=y

CONFIG_POSIX_MQUEUE=y

CONFIG_POSIX_MQUEUE_SYSCTL=y

CONFIG_NO_HZ_COMMON=y

CONFIG_NO_HZ_IDLE=y

CONFIG_NO_HZ=y

CONFIG_TREE_RCU=y

CONFIG_SRCU=y

CONFIG_NUMA_BALANCING=y

CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y CONFIG_CGROUPS=y CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_PIDS=y

CONFIG_CGROUP_DEVICE=y

CONFIG_CPUSETS=y

CONFIG_PROC_PID_CPUSET=y

CONFIG_CGROUP_CPUACCT=y

CONFIG_PAGE_COUNTER=y

CONFIG_MEMCG=y

CONFIG_MEMCG_SWAP=y

CONFIG_MEMCG_KMEM=y

CONFIG_CGROUP_HUGETLB=y

CONFIG_CGROUP_PERF=y

CONFIG_CGROUP_SCHED=y

CONFIG_FAIR_GROUP_SCHED=y

CONFIG_CFS_BANDWIDTH=y

CONFIG_BLK_CGROUP=y

CONFIG_CGROUP_WRITEBACK=y

CONFIG_NAMESPACES=y

CONFIG_UTS_NS=y

CONFIG_IPC_NS=y

CONFIG_USER_NS=y

CONFIG_PID_NS=y

CONFIG_NET_NS=y

CONFIG_SYSFS_SYSCALL=y

CONFIG_SYSCTL_SYSCALL=y

CONFIG_KALLSYMS=y

CONFIG_KALLSYMS_ALL=y

CONFIG_PRINTK=y

CONFIG_BUG=y

CONFIG_SLUB=y

CONFIG_SLUB_CPU_PARTIAL=y

CONFIG_MODULES=y

CONFIG_MODULE_UNLOAD=y

CONFIG_MODVERSIONS=y

CONFIG_MSDOS_PARTITION=y

CONFIG_SPARSEMEM_MANUAL=y

CONFIG_SPARSEMEM=y

CONFIG_NET=y

CONFIG_PACKET=y

CONFIG_UNIX=y

CONFIG_INET=y

CONFIG_IPV6=y

CONFIG_NETFILTER=y

CONFIG_NETFILTER_ADVANCED=y

CONFIG_PREEMPT_NONE=y

Свидетельство о программе для ЭВМ

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