Inte:Ligand illustration
Inte:Ligand: Your partner for in-silico drug discovery
Inte:Ligand illustration

Network Administrator Guide

LigandScout, iscreen or idbgen allows to execute tasks through a network. Multiple nodes can be used to execute multiple tasks in parallel to take full advantage of multi-core and/or multi-processor systems.
Distributed calculations
Figure A.5. Distributed calculations

On the client side a screening or conformation generation task can be started directly in LigandScout or through the command line using idbgen. The task is divided into multiple small tasks and distributed to connected worker nodes (iworkers) in the network. The iworker executes the tasks and sends the results back to the client.

Discovery of iworkers and Connection Establishment

To build connections to iworkers, first, they need to be found in the network. Therefore, the iworkers connection data which consists of an address/host-name and the TCP port (defaults to 30000, but can be changed if needed), where they listen for incoming connection requests, is distributed through the network. The data is sent to the multicast group 255.1.1.1 using UDP (the UDP outgoing port number is the same as the TCP incoming port number which is 30000 by default). Note that multicasting/broadcasting has to be enabled in the firewall. Clients with multicast discovery enabled are registered to this multicast group (255.1.1.1) and listen on the UDP port 40000 for such data. When data is received the appropriate host:port pair is added to the iworkers list of this client. Alternatively, the connection data (host:port) can be added to the iworkers list of the client manually. The client tries to connect to the iworkers in the list periodically until a connection is successfully established (see Figure A.6, “Discovery of iworkers in a network” ). Alternatively, a list of iworkers can be specified statically in the LigandScout preferences or with command-line options of iscreen or idbgen using the '- -host-list' option.
Discovery of iworkers in a network
Figure A.6. Discovery of iworkers in a network

iworkers are permanently running. Only if clients possess tasks to be executed, a connection will be established to the iworkers. A connection stays open until the client finishes sending tasks or the iworker is terminated. Note that the TCP port needs to be opened on the iworker-side (check the firewall) so that the client can build the connection to the clients. Furthermore, to allow multicast discovery broadcasting needs to be enabled in the network.

Communication Protocol

After the connection establishment between the client and iworkers, the client sends tasks to the iworkers. To prevent idle time, iworkers store incoming tasks in a queue which can be accessed very fast if an execution seat is available. The iworker executes the tasks in parallel. The amount of parallel tasks can be specified by the user and defaults to the number of CPU’s. The queue size is limited depending on the number of tasks that can be executed at the same time. As long as the task queue is not full, the iworker request tasks from clients it is connected to. The queue is processed by the 'First in First Out' principle. The first task to be added to the queue will be the first task to be executed, then processing sequentially in the same order. The iworker sends the results back to the client once these are available. The client gathers the part results and provides the overall result.
Connection establishment in a network
Figure A.7. Connection establishment in a network

Failure Tolerance/Error Treatment

If a client loses connection to an iworker it has sent tasks for execution, the client removes the iworker from its iworkers list and resubmits these tasks to other iworkers it is connected to. Analogue, if an iworker loses connection to a client it cancels all tasks in execution which have been submitted by this particular client, and all tasks in the queue submitted by this client are also dropped.

Summary of Network Information

To configure network traffic, the following ports will be used for communication. If firewalls are used on the specific systems, for the systems running the iworker process, the 'TCP incoming port' (default: 30000) must be open. On the client side (i.e. the computer running the iworker, idbgen or LigandScout process, connections to UDP port 40000 must be allowed.
iworker ports for firewall configuration:
TCP incoming port Default: 30000
Multicast group for automatic discovery (optional) 255.1.1.1
Example of iptables firewall configuration /sbin/iptables -A INPUT -p tcp --dport 30000 -j ACCEPT
Client (i.e. idbgen, iscreen or LigandScout) port for firewall configuration:
UDP incoming port Default: 40000
Multicast group for automatic discovery (optional) 255.1.1.1
Example of iptables firewall configuration /sbin/iptables -A INPUT -p udp --dport 40000 -j ACCEPT

Contact · Disclaimer

Page designed & authored by G. Wolber

Contact · Disclaimer

© Inte:Ligand GmbH / s3