Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
InfiniBand $B$N:FAw@)8f$rM}2r$9$k(B
[go: Go Back, main page]

InfiniBand $B$N:FAw@)8f$rM}2r$9$k(B

$B:n@.F|!'(B2014.04.10
$B=$@5F|!'(B2014.05.11

$B$3$N%Z!<%8$G$O(B InfiniBand $B$N:FAw@)8f$N5!9=$HFCD'$K$D$$$F@bL@$9$k!#(B

$B0J2<$O4XO"%Z!<%8!#(B


$B99?7MzNr(B
(2014.04.10) 2013$BG/(B4$B7n(B8$BF|$NF|5-(B$B$+$i:n@.!#(B
(2014.04.17) $B!V(B3. RDMA READ $B$H(B ATOMIC Operations $B$N:FAw!W$rDI2C!#(B
(2014.05.11) API $B$K%j%s%/$rE=$k(B


$BL\

1. $B:FAw$,H/@8$9$kM}M3(B

InfiniBand $B$O?.Mj@-$N$"$k(B(reliable)$B%5!<%S%9!"$D$^$j(B Reliable Connection(RC) $B%5!<%S%9$H(B Reliable Datagram(RD) $B%5!<%S%9$G$N$_:FAw$r9T$&!#(B Unreliable Connection(RC) $B%5!<%S%9$H(B Unreliable Datagram(UD) $B%5!<%S%9$O%Q%1%C%H$NE~Ce$r3NG'$7$J$$$?$a:FAw$b9T$o$J$$!#(B

$B:FAw@)8f$r9M$($k>l9g!"86B'$H$7$FAw?.B&(B(requester)$B$Hl$9$k!#(B $B$=$7$F:FAw$,H/@8$9$k$N$O0J2<$N(B 3 $B$D$N%Q%?!<%s$G$"$k!#(B

  1. Requester $B$,Ej$2$?%Q%1%C%H$KBP$7$F!"0lDj;~4VFb$K(B responder $B$+$i$N(B Acknowledge(ACK) $B$^$?$O(B Negative-Acknowledge(NAK) $B$,JV$C$F$3$J$$>l9g!#(B
  2. Requester $B$,Ej$2$?%Q%1%C%H$KBP$7$F!"(Bresponder $B$,(B Receiver-Not-Ready(RNR) NAK $B$N1~Ez$rJV$7$?>l9g!#(B
  3. Requester $B$,Ej$2$?%Q%1%C%H$KBP$7$F!"(Bresponder $B$,(B Out-of-sequence NAK $B$N1~Ez$rJV$7$?>l9g!#(B

1. $B$O(B requester $B$,%Q%1%C%HAw?.;~$K(B HCA $B$,(B Local ACK Timer $B$r@_Dj$9$k!#(B $B;~4VFb$K(B ACK $B$^$?$O(B NAK $B$,JV$C$F$3$J$1$l$P%?%$%`%"%&%H$H$J$j!"%Q%1%C%H$N:FAw$K0\$k$H$$$&5!9=$G$"$k!#(B $B$3$l$,H/@8$9$k860x$O%U%!%V%j%C%/$N(B HCA$B!&%9%$%C%A!&%1!<%V%k$N8N>c!"(BQP $B%9%F!<%H$NA+0\$,Aw?.2DG=$^$?$Ol9g$J$I$,$"$j$($k!#(B

2. $B$O(B responder $B$N(B QP $B$K7k$SIU$1$i$l$?(B Receive Queue(RQ) $B$^$?$O(B Shared Receive Queue(SRQ) $B$N(B Receive WQE $B$,8O3i$7$F$$$?>l9g$G$"$k!#(B $B4pK\E*$J35G0JT(B$B$G@bL@$7$?$h$&$K!"(Bresponder $BB&$N(B RQ $B$^$?$O(B SRQ $B$N(B Receive WQE $B$,%<%m$N;~$K(B SEND $B%*%Z%l!<%7%g%s$^$?$O(B RDMA WRITE with Immediate $B%*%Z%l!<%7%g%s$r

3. $B$O(B reliable $B%5!<%S%9$O(B $B4pK\E*$J35G0JT(B$B$G@bL@$7$?$h$&$K(B PSN $B$r;H$C$F=g=x@)8f$r9T$C$F$$$k!#(B Responder $B$N(B QP $Bl9g$O!"ESCf$G%Q%1%C%H%m%9$,H/@8$7$?$3$H$,J,$+$k!#(B $B$3$N;~!"(Bresponder $B$O(B Out-of-sequence NAK $B$N1~Ez$rJV$9!#(B Requester $B$N(B QP $B$O(B Out-of-sequence NAK $B$r

2. $B:FAw4V3V$H2s?t(B

InfiniBand $B$N(B 2 $Be8B$K$D$$$F@bL@$9$k!#(B

2.1 Local ACK Timeout

Local ACK Timeout $B$O(B requester $BB&$N(B QP $B$K(B ibv_modify_qp() $B$G@_Dj$9$k(B timeout (Local ACK Timeout) $B$H(B retry_cnt (Retry count) $B$N%Q%i%a!<%?$,:FAw4V3V$H:FAw2s?t$N>e8B$r7hDj$9$k!#(B

QP $B$+$i%a%C%;!<%8Aw?.8e$K%?%$%^!<;~4VFb$K(B ACK $B$,JV$C$FMh$J$$>l9g$K$O:FAw$,9T$o$l$k!#(B $B%?%$%^!<;~4V$,7P2a$9$kEY$K(B retry_cnt $B$,8:;;$5$l!"$3$l$,%^%$%J%9$K$J$k$H%?%$%`%"%&%H$G(B Send Work Request $B$O40N;%(%i!<(B(IBV_WC_RETRY_EXC_ERR)$B$H$J$k!#(B retry_cnt $B$O(B 3 $B%S%C%H%+%&%s%?!<$G(B 0$B!A(B7 $B$,;XDj$G$-$k!#(B

timeout $B$K(B n $B$r;XDj$7$?>l9g$N:FAw(B
retry_cnt=n

$B$b$7(B retry_cnt $B$,(B 0 $B$N>l9g$O(B 1 $B2s$@$1Aw?.$7!"%?%$%^!<;~4V$@$1BT$C$F(B ACK $B$,JV$C$F$3$J$1$l$P%?%$%`%"%&%H$9$k!#(B

timeout $B$K(B 0 $B$r;XDj$7$?>l9g$N:FAw(B
retry_cnt=0

$B%?%$%^!<;~4V$O(B timeout $B$G7h$^$k!#(B $B$3$l$O(B 5 $B%S%C%H$N%+%&%s%?$G!"(B1$B2s$N%?%$%^!<4V3V$r(B Ttr = 4.096 us * 2timeout $B$G;XDj$9$k!#(B $B$?$@$7;EMM>e!"%?%$%^!<;~4V$O(B 4 $BG\$N8m:9$r5vMF$7$F$*$j(B Ttr $B!A(B 4 * Ttr $B$G$"$l$P$h$$!#(B

timeout $B$K(B 0 $B$r;XDj$7$?>l9g$O%?%$%^!<$OL58z(B($B:FAw;~4VL58B(B)$B$K$J$j!"%U%!%V%j%C%/$NmUmT$d0[>o$,860x$G%Q%1%C%H$,Mn$A$F$b:FAw$,H/@8$7$J$/$J$k!#(B $B%?%$%`%"%&%H$b5/$-$J$$$N$G(B Send Queue $B$NCf$G(B WQE $B$ON1$^$j!"(Bibv_poll_cq() $B$G40N;$,Js9p$5$l$k$3$H$b$J$$!#(B

Local ACK Timer
timeout$B%^%$%/%mIC(B
0Infinity
18.192
216.384
332.768
465.536
5131.072
6262.144
7524.288
81048.576
92097.152
104194.304
118388.608
1216777.216
1333554.432
1467108.864
15134217.728
timeout$BIC(B
160.268,435,456
170.536,870,912
181.073,741,824
192.147,483,648
204.294,967,296
218.589,934,592
2217.179,869,184
2334.359,738,368
2468.719,476,736
25137.438,953,472
26274.877,906,944
27549.755,813,888
281099.511,627,776
292199.023,255,552
304398.046,511,104
318796.093,022,208

Local ACK Timeout $B$N%?%$%^!<$O;EMM>e$N:G>.;~4V$,(B 8.192 $B%^%$%/%mIC$@$,!"$B:G>.$NJ,2rG=$O(B 0.1$B!A(B1$BIC0JDxEY$G$"$k!#(B

HCA $B$N;}$D%?%$%^!<$NJ,2rG=$N<+8J?=9pCM$O(B ibv_query_device() $B$N(B local_ca_ack_delay $B$N9`L\$Glocal_ca_ack_delay $B$,(B timeout $B$K@_Dj$G$-$k:G>.$NM-8zCM$,F~$C$F$$$k!#(B

local_ca_ack_delay $B$O(B ibv_query_device() $B$re$GF0$+$9$H!"(Blocal_ca_ack_delay $B$O(B 15 $B$HI=<($5$l$k!#(B $B:FAw4V3V$O(B 134.217728 $B%_%jIC$+$i$=$N(B 4 $BG\$N(B 536.870912 $B%_%jIC$N4V$H$$$&$3$H$K$J$k!#(B

# ibv_devinfo -v | grep grep local_ca_ack_delay
        local_ca_ack_delay:             15

2.2 Receiver-Not-Ready(RNR) Negative-Acknowledge(NAK) Retry

Local ACK Timeout $B$K$h$k:FAw@)8f$r%3%s%H%m!<%k$9$k$N$O(B requester $B$N(B QP $B$K(B ibv_modify_qp() $B$G@_Dj$7$?%Q%i%a!<%?$G$"$C$?$,!"(BRNR NAK $B$K$h$k:FAw@)8f$r%3%s%H%m!<%k$9$k$N$O(B requester $B$N(B QP $B$N%Q%i%a!<%?$H(B responder $B$N(B QP $B$N%Q%i%a!<%?$KJ,$+$l$F$$$k!#(B

$B:FAw2s?t$N>e8B$r7h$a$k$N$O(B requester $B$N(B QP $B$K(B ibv_modfiy_qp() $B$G@_Dj$7$?(B rnr_retry $B$G$"$k!#(B $B$3$N%Q%i%a!<%?$O(B 3 $B%S%C%H$G(B 0$B!A(B7 $B$r;XDj$G$-$k!#(B Requester $B$,(B RNR NAK $B$rrnr_retry $B$,8:;;$7$F9T$-!"(B0 $B$N;~$K$5$i$K(B RNR NAK $B$rIBV_WC_RNR_RETRY_EXC_ERR)$B$H$J$k!#(B $B$?$@$7(B rnr_retry $B$O(B 7 $B$,FCJLCM$G!"$3$NCM$N>l9g$O2?2s(B RNR NAK $B$r

$B0lJ}!":FAw4V3V$O(B responder $B$N(B QP $B$K(B ibv_modify_qp() $B$G@_Dj$5$l$?(B min_rnr_timer $B$,7hDj$9$k!#(B $B$3$N%?%$%^!<4V3V$r(B Minimum RNR NAK Timer $B$H8F$V!#(B min_rnr_timer $B$O(B 5 $B%S%C%H$NCM$G!"3FCM$N%?%$%^!<;~4V$O2<5-$NI=$N$h$&$K7h$a$i$l$F$$$k!#(B Local ACK Timeout $B$H0[$J$j(B min_rnr_timer $B$,(B 0 $B$N>l9g$OL58z$G$O$J$$!#(B

RNR NAK Timer
RNR NAK Time$B%_%jIC(B
0655.36
10.01
20.02
30.03
40.04
50.06
60.08
70.12
80.16
90.24
100.32
110.48
120.64
130.96
141.28
151.92
RNR NAK Time$B%_%jIC(B
162.56
173.84
185.12
197.68
2010.24
2115.36
2220.48
2330.72
2440.96
2561.44
2681.92
27122.88
28163.84
29245.76
30327.68
31491.52

HCA $B$K$h$C$F$O(B Local ACK Timeout $B$N%?%$%^!<;~4V$O$$$$2C8:$@$,!"(Bminimum RNR NAK Timer $B$N%?%$%^!<;~4V$O$=$l$h$j$O@53N$N$h$&$@!#(B

RNR NAK $B$,JV$C$F$-$?>l9g!"(BRequester $B$O:G>.(B minimum RNR NAK Timer $B;~4V$[$IBT$C$F$+$i:FAw$r9T$&(B($B$3$N:]!"(Brnr_retry $B$r8:;;$9$k(B)$B!#(B $B$3$l$O(B RNR NAK $B$N%Q%1%C%H$NCf$K(B responder $B$N(B QP $B$N(B min_rnr_timer $B$,Kd$a9~$^$l$F$*$j!"(Brequester $B$O$3$N>pJs$r;H$C$F(B minimum RNR NAK Timer $B$r;;=P$9$k$3$H$G

RNR NAK $B$G$N:FAw@)8f$N%7!<%1%s%9(B
RNR NAK Retry

$B%W%m%0%i%`E*$K$Oe$G!"(Bmin_rnr_timer $B$r@_Dj$9$k$3$H$K$J$k!#(B

2.3 $B%Q%i%a!<%?@_Dj$NHsBP>N@-(B

$B>e5-$N$h$&$K(B minimum RNR NAK Timer $B$r@_Dj$9$k(B min_rnr_timer $B$O!"$=$l$r@_Dj$7$?<+J,<+?H$G;H$&$N$G$O$J$$!#(B $B$3$N$?$aF1$8:FAw@)8f$N%Q%i%a!<%?$G$"$C$F$b(B min_rnr_timer $B$O(B Init $B"*(B RTR $B$G!"$=$l0J30$O(B RTR $B"*(B RTS $B$G@_Dj$9$k$H$$$&0l8+$$$S$D$J;EMM$K$J$C$F$$$k!#(B

Init$B"*(BRTRRTR$B"*(BRTS
min_rnr_timer timeout
retry_cnt
rnr_retry

Local ACK Timeout $B$O%?%$%`%"%&%H;~4V$K!VL58B;~4VBT$D!W$,$"$k$,!VL58B2s?t:FAw$9$k!W$O$J$/!"(BRNR NAK Retry $B$,$=$N5U!VL58B;~4VBT$D!W$,$J$/!VL58B2s?t:FAw$9$k!W$,$"$k$N$b!"$3$NHsBP>N@-$N$?$a$@$H;W$o$l$k!#(B

3. $B

$B35G0JT(B$B$G=R$Y$?$h$&$K:FAw@)8f$OAw?.B&(B(requester) $B$N(B QP $B$N(B sq_psn $B$Hrq_psn $B$r;H$C$F!"Aw?.$,$I$3$^$G?J$s$G$$$k$+$rGD0.$9$k!#(B PSN $B$r;H$&$3$H$G!"(Brequester $B$+$i(B responder $B$XAw$i$l$kESCf$G%Q%1%C%H$,%m%9$7$?>l9g$N:FAw@)8f$O40A4$K9T$($k!#(B

$B$7$+$7(B responder $B$,$$$C$?$s%Q%1%C%H$r=hM}$7!"$=$N1~Ez%Q%1%C%H$r(B requester $B$rEj$2JV$7$?$,!"ESCf$G%Q%1%C%H$,%m%9%H$9$k2DG=@-$,$"$k!#(B $B$3$N>l9g$G$b!"(Brequester $B$+$i(B Local ACK Timeout $B$K$h$k:FAw$,l9g$,$"$k!#(B

3.1 SEND $B$H(B RDMA WRITE with/without Immediate $B$N>l9g(B

SEND $B%*%Z%l!<%7%g%s$d(B RDMA WRITE with/without Immediate $B%*%Z%l!<%7%g%s$N>l9g!"%Q%1%C%HFb$N(B PSN $B$,(B QP $B$N(B rq_psn $B$h$j$b!V8E!W$1$l$P2?$b$;$:$?$@1~Ez%Q%1%C%H$rJV$9$@$1$G$h$$!#(B

SEND $B%*%Z%l!<%7%g%s$N:FAw(B

3.2 RDMA READ $B$N>l9g(B

RDMA READ $B%*%Z%l!<%7%g%s$O(B requester $B$+$i(B responder $B$X%j%/%(%9%H$,Aw$i$l$?8e$K!"(Bresponder $B$,1~Ez%Q%1%C%H$N7A$G%G!<%?$r(B requester $B$XE>Aw$9$k!#(B $B$3$N$?$a(B responder $BB&$K$O(B RDMA READ $B%j%/%(%9%H$rJ]B8$9$k4IM}%F!<%V%k$,$"$j!"(B1 $B$D$N(B RDMA READ $B%*%Z%l!<%7%g%s$,%F!<%V%kFb$N(B 1 $B$D$N%(%s%H%j$H$7$F5-O?$5$l$k!#(B

$B1~Ez%Q%1%C%H$,%Q%1%C%H%m%9$7$?>l9g!"(Brequester $B$O:FAw$r9T$&$,!"$3$l$O:G=i$N(B RDMA READ $B%j%/%(%9%H$N$&$A!"$9$G$K.$7$?(B RDMA READ $B%j%/%(%9%H$H$J$k!#(B Responder $B$O4IM}%F!<%V%k$K4{$KEPO?$5$l$F$$$k%(%s%H%j$HAw?.HO0O$,Ho$k$N$G!"$3$l$,:FAw$G$"$k$3$H$rG'<1$G$-$k!#(B $B4{B8$N%(%s%H%j$r=q$-49$($k7A$G%F!<%V%k$r99?7$9$k(B($B:FAw(B RDMA READ $B%j%/%(%9%H$r%F!<%V%k$K?75,EPO?$9$k$H!"F1$8HO0O$r(B 2 $BEYE>Aw$9$k$3$H$K$J$k$?$a(B)$B!#(B

RDMA READ $B%*%Z%l!<%7%g%s$N:FAw(B

3.3 ATOMIC Operations $B$N>l9g(B

ATOMIC Operation $B$O(B Fetch and Add $B%*%Z%l!<%7%g%s$H(B Compare and Swap $B%*%Z%l!<%7%g%s$N(B 2 $B

$B$^$?(B ATOMIC Operation $B$O%a%b%jA`:nA0$N%a%b%jFbMF(B(8$B%P%$%H(B)$B$r1~Ez%Q%1%C%H$KF~$l$F(B requester $B$XAw$jJV$9$,!"$3$NFbMF$O$"$/$^$G$b%a%b%jA`:n$r

$B$3$N$?$a(B ATOMIC Operations $B$N$?$a$N(B ATOMIC $BA`:n4IM}%F!<%V%k$r@_$1!":G=i$N%j%/%(%9%H$K$h$k%a%b%jA`:n$N7k2L$r5-O?$9$k!#(B

Fetch and Add $B%*%Z%l!<%7%g%s$N:FAw(B

3.4 RDMA READ $B$H(B ATOMIC Operations $B$NF1;~

3.2 $B$H(B 3.3 $B$G=R$Y$?$h$&$K(B RDMA READ $B$H(B ATOMIC Operations $B$K$O4IM}%F!<%V%k$,I,MW$@$,!"(BInfiniBand $B$N;EMM$O$3$l$r(B RDMA READ $B$H(B ATOMIC Operations $B7sMQ$HDj5A$7$F$$$k!#(B $B$=$N$?$a%F!<%V%k$N%5%$%:$,(B RDMA READ $B%j%/%(%9%H$NF1;~max_dest_rd_atomic $BB0@-$K$h$C$F7hDj$5$l!"$3$l$O(B$B%A%e!<%H%j%"%kJT(B$B$G=R$Y$?$h$&$K(B Init $B"*(B RTR $B$K%9%F!<%H$rA+0\$5$;$k:]$K@_Dj$9$k!#(B

$B$^$?max_dest_rd_atomic $B$GF1;~e!"Aw?.B&$K$b@)8B$,I,MW$G$"$k!#(B QP $B$N(B max_rd_atomic $BB0@-$O(B RDMA READ $B%*%Z%l!<%7%g%s$H(B ATOMIC Operations $B$NF1;~H/9T?t$N:GBg$r7h$a$k!#(B $BF1;~H/9T?t$,:GBg$N>l9g$K(B SQ $B$Nl9g$O!"Aw?.$ODd;_$5$l$k$3$H$K$J$k!#(B max_rd_atomic $B$O(B$B%A%e!<%H%j%"%kJT(B$B$G=R$Y$?$h$&$K(B RTR $B"*(B RTS $B$K%9%F!<%H$rA+0\$5$;$k:]$K@_Dj$9$k!#(B

$B@_Dj$r8m$C$FAw?.B&(B QP $B$N(B max_rd_atomic > $Bmax_dest_rd_atomic $B$H$7$?>l9g!"(Bmax_dest_rd_atomic $B$r1[$($?(B RDMA READ & ATOMIC Operations $B$,Aw$i$l$k$3$H$,$"$k!#(B $B>e8B$r1[$($?>l9g!"IBV_EVENT_QP_ACCESS_ERR) $B$NHsF14|%(%i!<$,H/@8$7!"Aw?.B&$K$O(B Remote Invalid Request Error (IBV_WC_REM_INV_REQ_ERR) $B$N40N;%(%i!<$,H/@8$9$k!#(B

4. $B:FAw@)8f$NMn$H$77j(B

$B:FAw@)8f$K4X$7$F%^%K%e%"%k$rFI$s$@$@$1$G$OM}2r$7?I$$9`L\$K$D$$$FJdB-$7$F$*$/!#(B

4.1 Local ACK Timer $B$rL58B$K@_Dj$9$k$H2?$,5/$-$k$+!)(B

Local ACK Timer $B$N;~4V$O(B timeout $B$K(B 0 $B$r@_Dj$9$k$H!VL58B!W$H$J$k!#(B ACK $B$NJV$C$F$3$J$+$C$?(B Send WR $B$KBP$7$FF1$8%a%C%;!<%8$r:FAw$7$J$/$J$k!#(B $B$?$@$7!"(BIBV_WC_RETRY_EXC_ERR $B$N40N;%(%i!<$,(B$BH/@8$7$J$/$J$k$o$1$G$O$J$$!#(B

$B3N$+$KC1H/$N%j%/%(%9%H$K(B ACK $B$,JV$C$F$3$J$$>l9g!"$"$k$$$OO"B3$9$k%j%/%(%9%H$NA4$F$K(B ACK $B$,JV$C$F$3$J$$>l9g$O:FAw$,L58B$KDd;_$7$F$7$^$&!#(B

Local ACK Timer $B$rL58B$K@_Dj$7$?>l9g$N:FAw@)8f$N%7!<%1%s%9(B1
Local ACK Timer $B$rL58B$K@_Dj$7$?l9g$N:FAw@)8f$N%7!<%1%s%9(B1">

$B$7$+$7mUmT$,860x$G%Q%1%C%H$r<:$C$?>l9g$d!"(BInfiniBand $B%U%!%V%j%C%/$N0l;~E*$J8N>c$,860x$G%Q%1%C%H$,<:$o$l$?>l9g!"$7$P$i$/$9$k$H%M%C%H%o!<%/$,2sI|$7!"8eB3$N%j%/%(%9%H$O(B responder $B$KE~Ce$9$k>l9g$,$"$k!#(B $B$3$N>l9g!"(Breliable $B%5!<%S%9$O(B PSN $B$r;H$C$F=g=x@)8f$7$F$$$k$N$G!"(Bresponder $B$K$OA0$KAw$i$l$k$Y$-%j%/%(%9%H$,<:$o$l$?$3$H$r8!CN$G$-$k!#(B $B$=$N7k2L!"(Bout-of-sequence NAK $B$r(B requester $B$KJV$9!#(B Requester $B$O(B NAK $B$r2r

Local ACK Timer $B$rL58B$K@_Dj$7$?>l9g$N:FAw@)8f$N%7!<%1%s%9(B2
Local ACK Timer $B$rL58B$K@_Dj$7$?l9g$N:FAw@)8f$N%7!<%1%s%9(B2">

$B>e$N?^$O(B out-of-sequence NAK $B$K$h$k:FAw$K$h$C$F!"DL?.$O@.8y$7$F$$$k!#(B $B$7$+$7:FAw;~$K%M%C%H%o!<%/0[>o$,5/$3$C$?>l9g!"$3$l$O:FAw<:GT$H%+%&%s%H$5$l(B retry_cnt $B$O8:;;$5$l$k!#(B $B$=$N$?$a%M%C%H%o!<%/0[>o$,4VH1E*$K5/$3$k$h$&$JIT0BDj$J%U%!%V%j%C%/$G$O!"%j%H%i%$%+%&%s%?!<$,(B 0 $B$K$J$C$F(B IBV_WC_RETRY_EXC_ERR $B$N40N;%(%i!<$,H/@8$9$k$3$H$,9M$($i$l$k!#(B

4.2 $B$=$b$=$b(B ACK $B$O$I$3$KAw$i$l$k$N$+!)(B

$B:FAw@)8f$O(B ACK $B$d(B NAK $B$,(B responder $B$+$i(B requester $B$KAw$i$l$k$3$H$rA0Ds$H$7$F$$$k!#(B $B$@$,$=$b$=$b(B responder $B$O2?=h$K(B ACK/NAK $B$rJV$7$F$$$k$N$@$m$&$+!)(B

$BIaDL$K9M$($l$P(B responder $B$,

  1. Responder $B$O(B Init $B"*(B RTR $B$G(B ibv_modify_qp() $B$r;H$C$F(B QP $B$K@_Dj$9$k(B dlid $B$N%Q%i%a!<%?$H!"%Q%1%C%H$N(B Destination LID $B$,0lCW$7$J$1$l$P(B NAK $B$bJV$5$:$KGK4~(B(silently drop)$B$7$F$7$^$&!#(B
  2. $B?.Mj@-$N$"$k%3%M%/%7%g%s(B(Reliable Connection; RC)$B%5!<%S%9$N%Q%1%C%H$K$O(B Source LID$B!"(BDestination LID$B!"(BDestination QPN $B$O4^$^$l$F$$$k$,!"(BSource QPN $B$,4^$^$l$F$$$J$$!#(B

$BFC$K(B 2. $B$,LdBj$G$"$k!#(B $B%Q%1%C%H$r8+$F$bAw?.85$OJ,$+$i$J$$!#(B $B$G$O$I$&$9$k$+$H$$$&$H(B Init $B"*(B RTR $B$G@_Dj$7$?(B dlid$B!"(Bdest_qpn_num $B08$F$KAw?.$9$k!#(B $B$=$N7k2L!"(Bibv_modify_qp() $B$r;H$C$?%Q%i%a!<%?@_Dj$r4V0c$($k$H!"(BACK/NAK $B$r(B requester $B$G$O$J$$(B QP $B$KAw?.$7$F$7$^$&$3$H$b$"$k!#(B

dest_qp_num$B$r4V0c$($?>l9g$N%Q%1%C%H%U%m!<(B
dest_qp_num$B$r4V0c$($?l9g(B">

$B$^$?>e5-$N5DO@$G$*J,$+$j$@$H;W$&$,!"(BQP $B$,(B ACK/NAK $B$rJV$;$k$N$O(B QP $B%9%F!<%H$NCf$GuBV(B(RTR$B!"(BRTS$B!"(BSQD$B!"(BSQE)$B$G$"$kI,MW$,$"$k!#(B QP $B$N%(%i!<;~$K$O(B Error $B%9%F!<%H$KMn$A$k$,!"$3$N%9%F!<%H$G$O(B dlid $B$b(B dest_qp_num $B$b<:8z$7$F$$$k$N$G(B NAK $B$,Aw$l$J$/$J$C$F$$$k!#(B $B$=$N$?$a(B responder $B$N(B QP $B$,$$$C$?$s(B Error $B%9%F!<%H$H$J$k$H!"(Brequester $B$N(B QP $BB&$O(B Local ACK Retry $B$,>e8B$KC#$9$k$^$G:FAw$r7+$jJV$7$F$+$i(B IBV_WC_RETRY_EXC_ERR $B$N40N;%(%i!<$r

InfiniBand $B$O$=$NDcCY1d$rGd$j$K$7$F!">Z7tZ7t2qoF0:n;~$NCY1d$OHs>o$K>.$5$$$N$@$,!"0[>o;~$K0[>o$r8!=P2DG=$K$J$k$^$G$NCY1d;~4V$OHs>o$KBg$-$$!#(B High-Frequency Trading(HFT)$B$N@$3&$G!"(BInfiniBand $B$N$3$N0[>o;~CY1d$NA}Bg$r$I$N$h$&$KM^$($F$$$k$+$O$h$/J,$+$i$J$$!#(B $BCN$C$F$$$k?M$,$$$?$i65$($F$/$@$5$$!#(B

$B%3%a%s%H(B


TOP    $B7G<(HD(B    $BLa$k(B
Written by NAKAMURA Minoru, Email: nminoru atmark nminoru dot jp, Twitter:@nminoru_jp