dispy : Python Framework for Distributed and Parallel Computing

dispynode

'dispynode.py' (or dispynode) program should be running on each of the nodes. It executes jobs for dispy clients. Usually, no options are needed; '-d' option may be useful to see log of jobs being executed.

Below are various options to invoke dispynode:

NAT/Firewall Forwarding

As explained in dispy documentation, 'ext_ip_addr' can be used in case dispynode is behding a NAT firewall/gateway and the NAT forwards UDP and TCP ports 51348 to the IP address where dispynode is running. Thus, assuming NAT firewall/gateway is at (public) IP address a.b.c.d, dispynode is to run at (private) IP address 192.168.5.33 and NAT forwards UDP and TCP ports 51348 to 192.168.5.33, dispynode can be invoked as dispynode.py -i 192.168.5.33 --ext_ip_addr a.b.c.d. If multiple dispynodes are needed behind a.b.c.d, then each must be started with different 'port' argument and those ports must be forwarded to nodes appropriately. For example, to continue the example, if 192.168.5.34 is another node that can run dispynode, then it can be started on it as dispynode.py -i 192.168.5.34 -p 51350 --ext_ip_addr a.b.c.d and configure NAT to forward UDP and TCP ports 51350 to 192.168.5.34. Then dispy client can use the nodes with cluster = JobCluster(compute, nodes=[('a.b.c.d', 51347), ('a.b.c.d', 51350)])