Problem

You need to determine the maximum number of hosts available to the cluster.

Solution

Retrieve the maximum number of hosts available to the cluster by calling getMaximumHostCount().

Java  Copy imageCopy
package stkscalabilitysdk.howto;


import agi.parallel.client.ClusterJobScheduler;
import agi.parallel.client.IJobScheduler;

public class DetermineNumberOfThreadsAvailable {
    public static void main(String[] args) {
        IJobScheduler scheduler = new ClusterJobScheduler("localhost");
        try {
            scheduler.connect();
            int numHosts = scheduler.getMaximumHostCount();
            System.out.format("There are %s hosts available to the job scheduler.", numHosts);
        } finally {
            scheduler.dispose();
        }

        /*
         * The output of the application should resemble:
         * There are 4 hosts available to the job scheduler.
         */
    }
}

Discussion

Knowing the maximum number of hosts available to the job scheduler is useful when partitioning a workload into tasks. As an example, for 100 units of work and 5 maximum hosts, submit 5 tasks and each task will be assigned 20 units. In the case of 20 available hosts, it may be better to submit 20 tasks and assign only 5 units of work to each.

For the cluster job scheduler, the value returned from getMaximumHostCount is calculated by summing the capacity of all agents currently connected to the cluster.

See Also

Other Resources