Acho que o gargalo aqui é o link PCIe entre o ConnectX e o host. O ConnectX-3 tem um Gen. 3 conexões PCIe x8 , que estão vinculadas a um máximo teórico de 63,04 Gbps (de acordo com esta resposta ), e isso não inclui sobrecarga (veja aqui ).
Eu tenho dois nós conectados com HCAs Mellanox Connext-X3 VPI de duas portas através de um switch IB. Os nós são duas máquinas de soquete com CPUs Hasswell e 2 DIMMs de 16 GB por soquete (totalizando 64 GB). Tudo parece funcionar perfeitamente, exceto pelos números de desempenho que não parecem corretos.
Quando executo ib_read_bw
benchmark:
server# ib_read_bw --report_gbits
client# ib_read_bw server --report_gbits
---------------------------------------------------------------------------------------
#bytes #iterations BW peak[Gb/sec] BW average[Gb/sec] MsgRate[Mpps]
65536 1000 37.76 37.76 0.072016
---------------------------------------------------------------------------------------
Mas quando eu executo dual-port:
server# ib_read_bw --report_gbits -O
client# ib_read_bw server --report_gbits -O
---------------------------------------------------------------------------------------
#bytes #iterations BW peak[Gb/sec] BW average[Gb/sec] MsgRate[Mpps]
65536 2000 52.47 52.47 0.100073
---------------------------------------------------------------------------------------
Eu só recebo menos de 40% de melhoria (estou errado esperar ~ 2x a largura de banda de porta única)?
Eu não sei o que poderia ser o gargalo aqui e como encontrá-lo.
Outras configurações que podem ser úteis:
Acho que o gargalo aqui é o link PCIe entre o ConnectX e o host. O ConnectX-3 tem um Gen. 3 conexões PCIe x8 , que estão vinculadas a um máximo teórico de 63,04 Gbps (de acordo com esta resposta ), e isso não inclui sobrecarga (veja aqui ).