Determine number of threads available to job scheduler |
You need to determine the maximum number of hosts available to the cluster.
Retrieve the maximum number of hosts available to the cluster by calling GetMaximumHostCount.
using System; using AGI.Parallel.Client; using AGI.Parallel.Infrastructure; namespace CodeSamples { class Program { static void Main(string[] args) { using (IJobScheduler scheduler = new ClusterJobScheduler("localhost")) { scheduler.Connect(); int numHosts = scheduler.GetMaximumHostCount(); Console.WriteLine("There are {0} hosts available to the job scheduler.", numHosts); } /* * The output of the application should resemble: * There are 4 hosts available to the job scheduler. */ } } }
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. For the embedded job scheduler, it is the value passed from the EmbeddedJobSchedulerEmbeddedJobScheduler constructor.
STK Parallel Computing Server 2.9 API for .NET