I asked Pavan Balaji, who is working at Argonne National Laboratories and he said that SDP ZCopy should be enabled by default for large messages (larger than 64K) if OFED SDP stack is loaded and used. <br><br>This pretty much answers my question. However since I am working on Java and did not actually use C for MPI purposes, is there any resource I could use to learn how to program SOCK_STREAM in C for writing an MPI based communication device?<br>
<br><div class="gmail_quote">On Wed, Jun 10, 2009 at 7:47 PM, Zafar Gilani <span dir="ltr"><<a href="mailto:zafargilani@gmail.com">zafargilani@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Yes of course good question. Well the reason is that SDP allows two approaches: BCopy (Buffered Copy) and ZCopy (Zero Copy or RDMA). BCopy as I described is simple to use (change AF_INET to AF_INET_SDP in socket() call and you are done, no code changes). Whereas ZCopy exploits the RDMA capability of InfiniBand. In contrast IPoIB just provides IP protocol encapsulation over InfiniBand.<br>

<br>You can look at the benchmark graphs I generated at [<a href="http://hpc.niit.edu.pk/%7Ezafar/work/results_rocks/index.html" target="_blank">http://hpc.niit.edu.pk/~zafar/work/results_rocks/index.html</a>] by executing MPJ Express over IPoIB and SDP/BCopy. Now I want to implement SDP/ZCopy for MPJ Express and I do not know how to do this. This is the primary reason for my questions :). You can say this is sort of enabling MPJ Express to work over wide range of IB protocols.<br>

<br>More information on MPJ Express is available at: <a href="http://mpj-express.org/" target="_blank">http://mpj-express.org/</a><br><br>Thank you,<br><font color="#888888">Zafar</font><div><div></div><div class="h5"><br>
<br><div>On Wed, Jun 10, 2009 at 4:07 PM, Zafar Gilani<<a href="mailto:zafargilani@gmail.com" target="_blank">zafargilani@gmail.com</a>> wrote:<br>

> I read a paper on "Zero Copy Sockets Direct Protocol over InfiniBand". I had<br>
> a few questions, if anybody could answer I will be thankful.<br>
><br>
> 1. SDP BCopy approach can be used without the change of the code via the use<br>
> of AF_INET_SDP parameter when calling socket() system call. But how can I<br>
> implement SDP ZCopy approach if I want to implement ZCopy_Read and<br>
> ZCopy_Write methods?<br>
><br>
> 2. Is there any documentation regarding how to implement SDP ZCopy? Any<br>
> Hello World sort of example code that I can use to learn how to work with<br>
> this?<br>
><br>
> 3. SDP BCopy is better for smaller messages, but how small? Is 64K a good<br>
> threshold to change from BCopy to ZCopy at 128K?<br>
<br>
</div>May I ask you why you are looking at SDP ? The performance of IPoIB in<br>
connected mode and with large MTU is close to that of SDP, while the<br>
former is a lot easier to use than the latter.<br>
<font color="#888888"><br>
Bart.</font><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Zafar<br>