[ofa-general] SDP performance with bzcopy testing help needed

Felix Marti felix at chelsio.com
Fri Feb 15 10:02:19 PST 2008


Hi Craig,

Thank you for pulling the data together on a website. I believe the
results are quite interesting. It is probably worthwhile to point out a
few performance points:

Sockets over TOE:
- gets line rate for small IO size (<1KB) with 1/2 line rate just north
of 256B
- cpu utilization drops to about 25% for receive and about 12.5% for
transmit - out of a single core; various folks would prolly reports this
as 8% and 3% when considering the processing power of the entire
machine.
- 1B latency is about 10usecs

Sockets of SDP:
- gets line rate for IO sizes of about 16KB (ZCOPY disabled) and 64KB
(ZCOPY enabled)
- cpu utilization is about 100%, even for large IO and the benefit of
ZCOPY is limited (about 12.5%)
- 1B latency is about 20usecs

You can make the same comparison for Sockets over NIC as well.

I believe that these numbers show the benefit of running sockets apps
directly over the T3 TOE interface (instead of mapping a TCP streaming
interface to a RDMA interface and then eventually back to a TCP stream
:) which is very efficient, i.e. a lot of folks believe that TOE
provides little benefit, and even less benefit for small IO (which is so
crucial for many apps) but these results really prove them wrong. Note
that the NIC requires an IO size of 4KB to reach line rate and
performance falls off again as the IO sizes increases (beyond CPU cache
sizes). This might even be more surprising as you use a MTU of 9KB
(jumbo frames) and the NIC vs TOE comparison would tip in the TOE's
favor even faster if you were to run with MTU 1500.

Note that there is a little correction with respect to T3 and DMA
address range (for iWarp). T3 does not have any address limitation and
can DMA to/from any 64b address. However, memory region sizes are
limited to 4GB. OFED currently attempts to map the entire address space
for DMA (which, IMHO, is questionable as the entire address space is
opened up for DMA - what about UNIX security semantics? :-/). It would
prolly be better (more secure) if apps were only to map address ranges
that they really want to DMA to/from and then a 4GB region size
limitation seems adequate.

Regards,
felix



> -----Original Message-----
> From: general-bounces at lists.openfabrics.org [mailto:general-
> bounces at lists.openfabrics.org] On Behalf Of Craig Prescott
> Sent: Wednesday, February 13, 2008 9:32 PM
> To: Scott Weitzenkamp (sweitzen)
> Cc: general at lists.openfabrics.org; jim at mellanox.com
> Subject: Re: [ofa-general] SDP performance with bzcopy testing help
> needed
> 
> Scott Weitzenkamp (sweitzen) wrote:
> >> But the effect is still clear.
> >>
> >> throughput:
> >>
> >>                64K    128K      1M
> >>    SDP      7602.40  7560.57  5791.56
> >>    BZCOPY   5454.20  6378.48  7316.28
> >>
> >
> > Looks unclear to me.  Sometimes BZCOPY does better, sometimes worse.
> >
> >
> Fair enough.
> 
> While measuring a broader spectrum of message sizes, I noted a
> big variation in throughput and send service demand for the SDP
> case as a function of which core/CPU the netperf ran on.
> Particularly, which CPU the netperf ran on relative to which
> CPU was handling the interrupts for ib_mthca.
> 
> Netperf has an option (-T) to allow for local and remote cpu
> binding.  So I used it to force the client and server to run on
> CPU 0.  Further, I mapped all ib_mthca interrupts to CPU 1 (irqbalance
> was already disabled).  This appears to have reduced the statistical
> error between netperf runs to negligible amounts.  I'll do more runs
> to verify this and check out the other permutations, but this is what
> has come out so far.
> 
> TPUT = throughput (Mbits/sec)
> LCL  = send service demand (usec/KB)
> RMT  = recv service demand (usec/KB)
> 
> "-T 0,0" option given to netperf client:
> 
>                      SDP                   BZCOPY
>            --------------------    --------------------
> MESGSIZE     TPUT    LCL   RMT      TPUT     LCL   RMT
> --------   -------  ----- -----    -------  ----- -----
> 64K        7581.14  0.746 1.105    5547.66  1.491 1.495
> 128K       7478.37  0.871 1.116    6429.84  1.282 1.291
> 256K       7427.38  0.946 1.115    6917.20  1.197 1.201
> 512K       7310.14  1.122 1.129    7229.13  1.145 1.150
> 1M         7251.29  1.143 1.129    7457.95  0.996 1.109
> 2M         7249.27  1.146 1.133    7340.26  0.502 1.105
> 4M         7217.26  1.156 1.136    7322.63  0.397 1.096
> 
> In this case, BZCOPY send service demand is significantly
> less for the largest message sizes, though the throughput
> for large messages is not very different.
> 
> However, with "-T 2,2", the result looks like this:
> 
>                      SDP                   BZCOPY
>            --------------------    --------------------
> MESGSIZE     TPUT    LCL   RMT      TPUT     LCL   RMT
> --------   -------  ----- -----    -------  ----- -----
> 64K        7599.40  0.841 1.114    5493.56  1.510 1.585
> 128K       7556.53  1.039 1.121    6483.12  1.274 1.325
> 256K       7155.13  1.128 1.180    6996.30  1.180 1.220
> 512K       5984.26  1.357 1.277    7285.86  1.130 1.166
> 1M         5641.28  1.443 1.343    7250.43  0.811 1.141
> 2M         5657.98  1.439 1.387    7265.85  0.492 1.127
> 4M         5623.94  1.447 1.370    7274.43  0.385 1.112
> 
> For BZCOPY, the results are pretty similar; but for SDP,
> the service demands are much higher, and the throughputs
> have dropped dramatically relative to "-T 0,0".
> 
> In either case, though, BZCOPY is more efficient for
> large messages.
> 
> Cheers,
> Craig
> 
> _______________________________________________
> general mailing list
> general at lists.openfabrics.org
> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general
> 
> To unsubscribe, please visit
http://openib.org/mailman/listinfo/openib-
> general



More information about the general mailing list