Почему Intel MPI использует родные глаголы DAPL и OpenMPI?

Я не понимаю, почему Intel MPI использует DAPL, если собственные ibverbs быстрее, чем DAPL, OpenMPI использует собственные ibverbs. Однако в этом бенчмарке IntelMPI показал лучшую производительность.

http://www.hpcadvisorycouncil.com/pdf/AMBER_Analysis_and_Profiling_Intel_E5_2680.pdf


person Brayme Guaman    schedule 18.05.2017    source источник
comment
Брэйм, почему DAPL медленнее родных ibverbs? Для какого оборудования и что послужило источником этого факта? DAPL может использоваться по умолчанию только для некоторых версий Intel MPI и некоторого оборудования (и некоторых могут поддерживаться другие интерфейсы: psm, hfi, libfabric, scif, ...). Есть ли более свежие тесты? Какова ваша задача?   -  person osgx    schedule 19.05.2017
comment
Я прочитал здесь advancedclustering.com/act_kb/mpi-over-infiniband и в нем говорится, что Intel MPI использует DAPL и работает медленнее, чем OpenMPI, но в этом тесте AMBER_Analysis IntelMPI работает быстрее, чем OpenMPI. Мне нужно понять, как работает MPI поверх Infiniband, особенно из этих 2-х библиотек, и как это относится к OFED, мой тезис как раз об этом, но понять не могу.   -  person Brayme Guaman    schedule 19.05.2017
comment
Здесь находится advancedclustering.com/act_kb/mpi-over-infiniband. устаревший. Дата не указана, но речь идет о старых библиотеках, и в некоторых ситуациях она может быть неправильной. Да, если есть dapl, Intel MPI будет использовать его. Но нам нужны некоторые микротесты (не комплекс AMBER), чтобы сравнить практическую задержку сообщений с разными размерами на одном и том же оборудовании с IntelMPI с DAPL; с OFA (глаголы OFED); с ОФИ; и OpenMPI с различными поддерживаемыми им параметрами. Если вам нужно что-то понять, попробуйте прочитать настоящие документы/srcs; делайте тесты и задавайте только конкретные вопросы здесь.   -  person osgx    schedule 19.05.2017


Ответы (1)


Intel MPI использует несколько интерфейсов для взаимодействия с оборудованием, и DAPL не используется по умолчанию для всех случаев. OpenMPI также выберет какой-то интерфейс для текущего оборудования, это не всегда будут ibverbs, есть API с общей памятью для взаимодействия с локальными узлами и TCP для хостов только для Ethernet.

Список для Intel MPI (Linux):

https://software.intel.com/en-us/get-started-with-mpi-for-linux

Начало работы с библиотекой Intel® MPI для ОС Linux*. Последнее обновление: 24 августа 2015 г.

Поддержка любой комбинации следующих соединительных тканей:

  • Общая память
  • Сетевые структуры с возможностями сопоставления тегов через интерфейс сопоставления тегов (TMI), такие как Intel® True Scale Fabric, Infiniband*, Myrinet* и другие межсоединения.
  • Собственный интерфейс InfiniBand* с помощью команд OFED*, предоставляемых Open Fabrics Alliance* (OFA*)
  • Интерфейс OpenFabrics* (OFI*)
  • Сетевые структуры с поддержкой RDMA через DAPL*, такие как сокеты InfiniBand* и Myrinet*, например, TCP/IP через Ethernet*, Gigabit Ethernet* и другие межсоединения

Интерфейс к фабрике можно выбрать с помощью переменной среды I_MPI_FABRICS: https://software.intel.com/en-us/node/535584

Выбор тканей. Последнее обновление: 22 февраля 2017 г.

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

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

Fabric - Используемое сетевое оборудование и программное обеспечение

  • shm — Общая память (только для внутриузловой связи).
  • dapl - Сетевые структуры с поддержкой библиотеки программирования прямого доступа* (DAPL), такие как InfiniBand* и iWarp* (через DAPL).
  • tcp — сетевые структуры с поддержкой TCP/IP, такие как Ethernet и InfiniBand* (через IPoIB*).
  • tmi - Сетевые структуры с интерфейсом сопоставления тегов (TMI), такие как Intel® True Scale Fabric, Intel® Omni-Path Architecture и Myrinet* (через TMI).
  • ofa — сетевые структуры с поддержкой OpenFabrics Alliance* (OFA), такие как InfiniBand* (через команды OFED*).
  • ofi - Сетевые структуры с поддержкой интерфейсов OpenFabrics* (OFI), такие как Intel® True Scale Fabric, архитектура Intel® Omni-Path, InfiniBand* и Ethernet (через OFI API).

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

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

dapl,ofa,tcp,tmi,ofi

person osgx    schedule 18.05.2017
comment
Я не совсем понимаю, что вы имеете в виду под интерфейсом. Я новичок в этом. - person Brayme Guaman; 19.05.2017
comment
Вероятно, причины исторические, проверьте software.intel.com/en-us/forums/ Гергана С. сообщение от 2012 г.: Конечно, мы вкладываем время и усилия в прямую поддержку глаголов OFED через ofa ткань, потому что считаем, что это того стоит. ; это дает нам возможность оптимизировать непосредственно для стека программного обеспечения OFED и дает некоторые дополнительные преимущества в пропускной способности благодаря поддержке нескольких шин. ..если у вас не установлен OFED, другой вариант ..это dapl. ... Единственное, что мы можем порекомендовать: если у вас установлен OFED, воспользуйтесь им через ofa. - person osgx; 19.05.2017
comment
Я имею в виду программный интерфейс к оборудованию (API) как интерфейс. DAPL и глаголы (OFED, ofa) и ofi (libfabric) — это просто разные API для некоторого оборудования. - person osgx; 19.05.2017
comment
У них другой список по умолчанию для Omni-Path Fabric: software.intel.com/en- us/node/528821 ofi,tmi,dapl,ofa,tcp – Это значение по умолчанию для узлов с доступной структурой Intel® Omni-Path Fabric или Intel® True Scale Fabric и без карт межсоединений другого типа. - person osgx; 19.05.2017
comment
Я делаю тест между IntelMPI и OpenMPI на Infiniband. Вы можете порекомендовать мне статьи или книги, чтобы помочь мне лучше понять это. И как все это связано. - person Brayme Guaman; 19.05.2017
comment
Брейми, нет, stackoverflow не предназначен для рекомендаций по книгам (stackoverflow.com/help/on-topic – 4 вопроса) просить нас порекомендовать или найти книгу, инструмент, библиотеку программного обеспечения, учебник или другой ресурс за пределами сайта не относятся к теме Stack Overflow, поскольку они, как правило, привлекают самоуверенные ответы и спам. Вместо этого опишите проблему и то, что было сделано до сих пор. решить ее.). Попробуйте ЛЮБУЮ книгу или диссертацию о infiniband, в которой есть упоминания о MPI, прочитайте DOC библиотек MPI; проверьте более свежие книги. У INRIA есть некоторые. Тогда делайте эксперименты и читайте источники. - person osgx; 19.05.2017
comment
Извините за придирки, но на самом деле это Open MPI с пробелом. Кроме того, в сетях InfiniBand Intel MPI по умолчанию использует DAPL, что чертовски раздражает меня, поскольку раньше у нас было много проблем с DAPL в нашем старом кластере Linux. - person Hristo Iliev; 19.05.2017
comment
Но я вижу в !стек OFED на уровне пользовательских API, есть uDAPL, тогда я не знаю, всегда ли Intel MPI использует uDAPL или я могу выбирать между глаголами uDAPL или OFED*? еще один вопрос заключается в стеке OFED: обеспечивает ли стек OFED только uDAPL для Intel MPI или существует другой стек, отличный от uDAPL для Intel MPI? В чем преимущество использования uDAPL, если есть дополнительный шаг? - person Brayme Guaman; 22.05.2017
comment
Брейми, какое у тебя сетевое оборудование? Проверьте связанные документы Intel, чтобы получить информацию о том, как изменить API, используемый реализацией MPI. Изображение openfabrics.org/images/ofs/blockdiag_2010.gif устарело. и не точно. С большинством высокопроизводительных API (интерфейсов) библиотека будет пытаться взаимодействовать напрямую (обход ядра) с оборудованием для отправки и получения фактических данных (сообщений) в большинстве случаев, чтобы уменьшить задержку. - person osgx; 22.05.2017
comment
Мое сетевое оборудование — Infiniband QDR, это изображение — последнее обновление с официальной веб-страницы openfabrics. org/index.php/overview.html - person Brayme Guaman; 22.05.2017
comment
Infiniband QDR от какого поставщика? Что за чип и где вы взяли стек OFED? - person osgx; 22.05.2017
comment
Это Mellanox Technologies MT26428 [ConnectX VPI PCIe 2.0 5GT/s — IB QDR / 10GigE], и я получаю стек OFED с официальной страницы OpenFabrics openfabrics.org/index.php/overview.html - person Brayme Guaman; 22.05.2017