Почему MPI использует IpoIB вместо нативного IB?
Я понимаю, что OpenMPI использует OpenIB, а OpenIB использует Ip over Infiniband (IPoIB).
Я не понимаю, почему не использовать родной IB, если он быстрее, чем IPoIB?
Есть ли реализация MPI, чтобы он использовал родной IB?
2 ответа
OpenIB - это раннее название, используемое Альянсом Open Fabrics. Еще в 2005 году имя OpenIB было отброшено в пользу Open Fabrics. Open Fabrics Alliance распространяет OFED программный стек, который поддерживает множество протоколов и API, включая DAPL, IPoIB, SCSI поверх RDMA и многие другие. OFED использует драйверы устройств низкого уровня, предоставляемые поставщиками оборудования.
Некоторые поставщики оборудования распространяют свои собственные сборки OFED. Эти пользовательские сборки не сильно отличаются от любого другого дистрибутива OFED, за исключением того, что они связаны вместе с драйверами устройств.
В прошлом OFED раньше включал реализацию MPI, а именно OpenMPI, но больше не делает этого ( вы, вероятно, читали FAQ по OpenMPI).
OpenMPI все еще использует openib
имя для его основанного на OFED компонента уровня передачи байтов InfiniBand.
В разные периоды времени OpenMPI также поддерживал специфичные для поставщика API InfiniBand, такие как Mellanox mVAPI (mvapi
BTL) и Mellanox Messaging Library mxm
,
Тем не мение, openib
обеспечивает переносимость, и если вы используете последние версии, вы, скорее всего, будете иметь производительность, такую же, как у API конкретного поставщика.
openib
Компонент не использует IP поверх IB. Если вы хотите использовать IP поверх IB, используйте tcp
компонент вместо и настроить mpiexec
хост-файлы соответственно.
AFAIK, MVAPICH2 - это дистрибутив MPI, который не использует IPoIB, то есть он напрямую использует глаголы.