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

Networking

Computational chemistry is a field where the execution of tasks can take a lot of time. Especially if huge molecule databases are used: e.g., to generate conformations or screen them against target pharmacophore(s), getting the results can take several hours, days or even months. Scientific and innovative solutions are needed to face this problem. Since hardware is getting cheaper and cheaper and processors exhibit more and more cores, execution time of tasks can be dramatically reduced.
Thus, LigandScout makes use of multiple cores to split up tasks into multiple small tasks that can be executed in parallel. But there is more to it than that. LigandScout comes with a whole framework to execute these small tasks not only on multiple cores on a single machine, but in a network on multiple computers using all resources available to speed up execution.

iworker

To use computers connected through the network, the so called “ iworker ” has to run on each machine in the network. The iworker is a stand-alone application that can be started either in the command-line or as a graphical user interface application . Each iworker can execute multiple tasks in parallel to take full advantage of multi-core and/or multi-processor systems. While the iworker is running, it listens through a network port for incoming tasks. This port needs to be specified in the iworker Settings and Preferences/Distributed Calculation Settings . Make sure that the system administrator has opened that port! To keep an overview about the iworker in the network, they are monitored by the Network Monitor . Once the iworker receives a task it executes it and sends the result back to LigandScout. LigandScout collects all the results of the small tasks and displays the progress and the overall result.
You can stop an iworker whenever you want. Results will never get lost, even if the machine running the iworker has crashed unexpectedly. Tasks which were in execution, just when the iworker stopped or crashed, will simply be restarted on another iworker. Furthermore, iworkers can be started on the fly. LigandScout will make use of them as soon as they are started.
To use this opportunity of distributed calculations, you need to enable this mode in the Preferences/Distributed Calculation Settings . iworkers that are used by LigandScout can be added or removed in the list of iworkers in the Preferences. If a listed iworker is not running or cannot be connected to, LigandScout will regularly retry to connect. In the meantime all available iworkers will be used. Optionally, LigandScout can find iworkers automatically, if they run on a LAN (Local Area Network) by using UDP-Multicast (This works only if broadcasting is enabled by the system adminisitrator!).
To prevent idle time between finished tasks and new incoming tasks, which would cost performance, the iworker takes more tasks than it can execute in parallel and puts them into a so called “ Work Queue ” (queued tasks). Whenever a task execution has finished the iworker starts to execute the next task in the queue with no idle time in between. Preventing idle time as much as possible increases the execution performance.

How to start the iworker

The iworker can be started in two ways: The stand-alone GUI and through the command line .
The stand-alone GUI
Press on the iworker application icon to start the iworker GUI. It consists of an information overview about the iworker, option settings to be adjusted to your needs and a button that starts/stops it.
iworker
Figure 3.6. iworker

iworker Information
This information gives an overview of the status of the iworker. The CPU Usage shows the overall processor load of the machine running the iworker. The number of tasks that are currently processed are displayed in the Tasks in Execution field. The next field called Connections represents the number of nodes (LigandScout) that are connected to this particular iworker. The value of the Queued Tasks informs you about the number of tasks in the Work Queue . The Total Executed Tasks implies the number of tasks that are executed so far. Whereas, the Total Execution Time is the time that the iworker spends for executing the tasks. The Overall Running Time field shows the sum of idle time and the execution time (time between starting and stopping the iworker). Note that restarting the iworker does not reset the number of tasks, total execution time, and overall running time, but continues the counting.
iworker Options
Pressing the Options button, a dialog appears for changing the iworker settings.
iworker Options
Figure 3.7. iworker Options

If the Discoverable setting is enabled, the iworker can be detected in the network. If disabled, the only way to find this iworker is to define it in the iworker list . This list consists of addresses of the iworkers and are specified in the LigandScout Preferences/Distributed Calculation Settings chapter . To set the maximum number of tasks executed in parallel, just fill an appropriate value in the Parallel Tasks field. This number is limited to the available number of cores (e.g. maximal 2 on a dual-core system, maximal 4 on a quad-core system). In the Network Interface field you can select the network device to use. The Incoming Port represents the network port where the iworker listens for incoming tasks. This port has to be opened from your system administrator (TCP port). Note that if the options settings of the iworker are changed, during the iworker runs, the iworker has to be restarted to make these changes active.
The logging messages of the iworker can be shown in the console or redirected to a specified file. In the drop down box you can select the logging level which defines how much information of the log will be provided. Raising the level leads to a more detailed output. Choose between off , low , medium , high and highest .
Log Level Description
off no network log messages
low network errors and warnings
medium connection info messages are shown
high high-level protocol messages
highest debug (very verbose)

Network Monitor

The Network Monitor , inetmon can be used to observe the iworkers in the network. The iworkers can be detected in two ways. You can specify the network addresses of the iworkers in the appropriate list of the Network Monitor Preferences. Secondly, iworkers are automatically found in the LAN when the Auto-detectable Option of the iworker is activated and provided that the broadcasting are enabled.

The stand-alone GUI

Press on the Network Monitor application icon to start the stand-alone GUI. The Network Monitor consists of an iworker Information Table , that provides a detailed overview about the iworkers and a Log View for error handling.
Network Monitor
Figure 3.8. Network Monitor

iworker Information Table
The iworker Information Table shows information about the current state of all iworkers found in the network. Each row represents an iworker and displays following information about that iworker: Network Addresses of the iworkers ( Addresses ), number of nodes (LigandScout) that are connected to this particular iworker ( Connections ), number of CPU's ( CPU ), CPU usage of the machine running the iworker (CPU Usage), number of tasks that are currently executed (Running Jobs), number of queued tasks ( Queued Jobs ) and Enabling Log to view errors, warnings and other information about the iworker ( Log ). Note: Disabling the Log decreases the network-traffic.
Log View
The Log View displays errors, warnings or other useful information about the iworker. The Log shows only entries of iworkers selected in the iworker Information Table. If no iworker is selected, entries are shown for all iworkers. Any selection in the iworker Information Table can be reseted by clicking on an empty area in the iworker Information Table.
The detail level of the Log can be changed by the three Log Level buttons "Error", "Warning", and "Info". The first level "Error" shows only the errors (bold and red). The second level "Warning" illustrates the warnings (bold) and errors (bold and red). The last level "Info" shows all information of the iworker including warnings and errors.
Furthermore, a text filter can be set to show only those entries that contain the specified text. To apply such a filter, type the text into the filter area and press the Filter button. To disable the text filter press the Cross button that is shown when a text filter is successfully applied to the Log. You can clear the Log by pressing the Clear button. Note: Incoming Log entries are kept in temporary files. These files are deleted when the Network Monitor is closed and whenever the Clear button is pressed. It is a good idea to clear the Log if the temporary files require too much hard disc space. Never delete the temporary files manually! If the space in the Log View is exceeded the Network Monitor automatically scrolls to the last incoming entry. Automatic scrolling can be enabled or disabled by toggling the Lock button.
Network Monitor Preferences
Network Monitor Preferences
Figure 3.9. Network Monitor Preferences

In the Network Monitor Preferences dialog you can customize the logging settings and manage the list of iworkers in the network.
You can choose if the logging of the message traffic will be shown in the console or redirected to a specified file. In the drop down box you can select the logging level which defines how much information of the log will be provided. Raising the level leads to a more detailed output. Choose between off (no network log messages), low (network errors and warnings), medium (connection info messages are shown), high (high-level protocol messages) and highest (very verbose for debug).
Add or remove iworkers by adding or removing their network addresses. A network address has the form HOSTNAME:PORT or IP_ADDRESS:PORT (e.g.: localhost:4283, 135.27.1.119:1894). HOSTNAME or IP_ADDRESS is the host name or ip-address of the iworker, and PORT is the TCP-port the iworker is listening to. (Remember that the system administrator has to open that port on the machine the iworker is running on!).

Contact · Disclaimer

Page designed & authored by G. Wolber

Contact · Disclaimer

© Inte:Ligand GmbH / s3