[IPython-user] Any obvious way to have an ipcontroller listening on two devices?

Brant Peterson brantp@berkeley....
Mon Sep 22 22:25:25 CDT 2008


I've been using ipython 0.9b3 and the ipcontroller/ipengine
parallelization scheme with amazon EC2, and pretty much everything
about the experience so far has been fantastic, but I have one "dream"
feature that I haven't figured out how to get to work.
The layout is as follows:
amazon encourages you to use an "internal" network device and ip
wherever possible for communication between the instances (nodes), and
especially with mpi, the internal interface provides a fairly
substantial speedup to 'talky' parallel code.  This is no problem, and
one can use amazon's internal interface hostnames in the
cluster-config file used with ipcluster -f to boot an ipcluster
controller/engine complement on EC2 with no trouble.
However, I would also like to be able to use my work computer as the
client, which is to say connecting to the controller via either the
multiengineclient or taskclient from outside EC2, and therefore via
the public interface, with the public hostname for the machine on
which ipcontroller is running.
The problem this presents seems to be that you only get one valid set
of .furl files, and these point to one controller IP/hostname (i.e.
for the engines to register with the controller).  How do I get a set
of  .furls such that I can have engines registering with the private
IP/hostname, and still connect to the controller via the public
interface?  Is this possible?

Thank you for your time!

More information about the IPython-user mailing list