Monday, October 24, 2011 2:38 PM
In my application I need to get the list of active jobs ID for a specific Node Group that the user chooses.
how can i get it using C#?
Thursday, October 27, 2011 9:57 PM
You might start by reviewing IScheduler.GetJobList() (http://msdn.microsoft.com/en-us/library/microsoft.hpc.scheduler.ischeduler.getjoblist(VS.85).aspx).
Filtering by nodegroup membership might take some work but with GetJobList() you should be able to get the information you seek.
Sunday, October 30, 2011 2:27 PM
I would appreciate if I can get an example.
Tuesday, November 01, 2011 10:00 PM
Since nodegroups cannot be used as a filter criteria, this must be implemented on the client side.
Assuming "active" means "running" we get:
static void Main(string args)
IScheduler scheduler = new Scheduler();
IFilterCollection filter = scheduler.CreateFilterCollection();
FilterProperty filStateRunning = new FilterProperty(FilterOperator.Equal, JobPropertyIds.State, JobState.Running);
// now fetch the list of all jobs that satisfy the filter
ISchedulerCollection jobs = scheduler.GetJobList(filter, null /* no sort order specified */);
// build this list of jobs in desired nodegroup.
List<ISchedulerJob> jobsInNodegroup = new List<ISchedulerJob>;
// walk the filtered collection, look for jobs in desired nodegroup
foreach (object obj in jobs)
if (obj is ISchedulerJob)
ISchedulerJob job = obj as ISchedulerJob;
if (job.NodeGroups.Contains("ComputeNodes")) //<<-- put desired nodegroup here
// use "jobsInnodegroup" here