Many applications such as online meetings and video streaming need to transmit large amount of data as quickly as possible. Good signal is consequently required for those transmissions, otherwise you might experience web conferences cutting or video pausing at unexpected time. Other applications need to send content with appropriate quality according to signal strength.
Resource selection based on network properties
However, the quality of said signal can vary due to external parameters. Fortunately, networks are redundant which allow multiple paths with different properties to lead to the same device. This is why there is a use for flows to pass by carefully chosen resources. This choice may be made according to values such as ping and/or bandwidth.
Multiple methods are available to achieve this selection with all their pros and cons. One way is to carefully measure the selection criteria (such as bandwidth) on every resource before using one. This method is time consuming at startup but is accurate and dynamic. Another ways is to allocate a value to each resource corresponding to the total monitored parameter (bandwidth, RAM, etc.) available when idle. This value will then be consumed according to expected task needs. This method is quick to select appropriate resource but does not account for external causes capable of modifying this parameter.
Both approaches are possible with ProActive Workflows&Scheduling. The first one can be implemented by relying on selection scripts to launch tasks only on nodes meeting defined criteria.
The second method can be achieved in two ways depending on the use cases. For instance, by giving a meaning of 10 Mbps of bandwidth per nodes and a meaning a task with a max. expected usage of 150 Mbps would take 15 nodes. Another way to apply this method is to enable a special behavior of ProActive to keep track of all tasks running on an host and their expected consumption (this way, multiple resource types can be handled).
A selection script can target nodes according to ping and/or bandwidth, as explained below. A ping can be easily known but the available bandwidth takes time to be measured because it is evaluated by transferring files and using the time taken. After this is a script to select nodes according to their bandwidth. It is only one way to write a script to this effect. It use a convenient tool to perform the evaluation. This tool requires to be installed beforehand but is used by many and is simple.
Content selection based on network properties
Applying the same script makes it possible to get information on the network between the content provider and receiver. Using that information, the workflow would select the relevant content for ideal user experience balancing quality and smooth experience. (In advanced cases, the size and properties of the device can also be taken into account. i.e. No need to send an HD quality video on a 4" screen.)