This is probbaly a question for zeromq-dev, for how one might use infiniband with zeromq.<div><br></div><div>There are benchmarks for zeromq tcp-over-infiniband, so presumably it is possible, though it may require some flags to be set when building libzmq itself (I have no idea).</div>

<div><br></div><div>Once you know how to use zmq+tcp over ib, then there shouldn&#39;t be anything IPython needs to be aware of.</div><div><br></div><div>It&#39;s also possible that it&#39;s as simple as specifying a particular IP (again, I have no idea). ┬áIf the infiniband interconnect refers to a particular interface on the node, then it should simply be a matter of passing `ipcontroller --ip=&lt;1.2.3.4&gt;`.<br>

<br><div class="gmail_quote">On Fri, Sep 7, 2012 at 4:21 AM, Jon Olav Vik <span dir="ltr">&lt;<a href="mailto:jonovik@gmail.com" target="_blank">jonovik@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Short version: Can the IPython.parallel ipcontroller and ipengines use<br>
Infiniband for communication?<br>
<br>
Background:<br>
<br>
As mentioned in p.revious posts, I use IPython.parallel on a shared batch<br>
cluster, where I submit ipengines as relatively short &quot;batch jobs&quot; for use by a<br>
Client.load_balanced_view(retries=..., chunksize=..., ordered=False). This<br>
gives me load-balanced, fault-tolerant (in particular if an engine job times<br>
out) computing of otherwise trivially parallel tasks. This is by far the most<br>
maintainable framework I&#39;ve found, and it scales well to at least 100<br>
processors, or &gt; 600 if I use several clusters. The limiting factor seems to be<br>
the number and latency of TCP connections.<br>
<br>
I recently got kicked out from a batch cluster for failing to utilize their<br>
precious Infiniband, and for *possibly* competing with the batch system&#39;s use<br>
of TCP. (This was not further investigated, as that cluster was intended to<br>
fill other needs than my rather-trivially-parallel computing, and so they<br>
didn&#39;t really want me around anyway.)<br>
<br>
Now, I know next to nothing about what Infiniband is, but googling suggested<br>
that TCP can be run over Infiniband.<br>
<br>
<a href="http://pkg-ofed.alioth.debian.org/howto/infiniband-howto-5.html" target="_blank">http://pkg-ofed.alioth.debian.org/howto/infiniband-howto-5.html</a><br>
<br>
I wonder if that could improve the latency of IPython.parallel tasks, while<br>
letting me be less of a nuisance to the batch cluster admins. Any hints on<br>
whether and how this can be achieved would be most appreciated.<br>
<br>
(I have mostly heard about Infiniband in connection with MPI. However, MPI<br>
doesn&#39;t seem to fit my needs because 1) all MPI processes need to start and<br>
stop at the same time, whereas I wish to use as many processors as happen to be<br>
available, without specifying the number in advance, 2) the ipcluster cannot<br>
use MPI for coordination, and 3) I wish to distribute tasks and results using a<br>
load_balanced_view() and not explicitly over MPI.)<br>
<br>
Best regards,<br>
Jon Olav<br>
<br>
_______________________________________________<br>
IPython-User mailing list<br>
<a href="mailto:IPython-User@scipy.org">IPython-User@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/ipython-user" target="_blank">http://mail.scipy.org/mailman/listinfo/ipython-user</a><br>
</blockquote></div><br></div>