Example #1
0
File: sort.c Project: A1ve5/slurm
static int _sort_by_job_size(void *void1, void *void2)
{
	int diff;
	sinfo_data_t *sinfo1;
	sinfo_data_t *sinfo2;
	uint32_t val1 = 0, val2 = 0;

	_get_sinfo_from_void(&sinfo1, &sinfo2, void1, void2);

	if (sinfo1->part_info) {
		val1 = sinfo1->part_info->max_nodes;
		if (val1 != INFINITE)
			val1 += sinfo1->part_info->min_nodes;
	}
	if (sinfo2->part_info) {
		val2 = sinfo2->part_info->max_nodes;
		if (val2 != INFINITE)
			val2 += sinfo2->part_info->min_nodes;
	}
	diff = _diff_uint32(val1, val2);

	if (reverse_order)
		diff = -diff;
	return diff;
}
Example #2
0
static int _sort_step_by_id(void *void1, void *void2)
{
	int diff;
	job_step_info_t *step1;
	job_step_info_t *step2;

	_get_step_info_from_void(&step1, &step2, void1, void2);

	diff = _diff_uint32(step1->job_id, step2->job_id);
	if (diff == 0)
		diff = _diff_uint32(step1->step_id, step2->step_id);

	if (reverse_order)
		diff = -diff;
	return diff;
}
Example #3
0
static int _sort_job_by_priority(void *void1, void *void2)
{
    int diff;
    job_info_t *job1, *job2;
    uint32_t prio1 = 0, prio2 = 0;

    _get_part_prio_info_from_void(&prio1, &prio2, void1, void2);
    diff = _diff_uint32(prio1, prio2);

    if (diff == 0) {  /* Same partition priority, test job priority */
        _get_job_info_from_void(&job1, &job2, void1, void2);
        diff = _diff_uint32(job1->priority, job2->priority);
    }

    if (reverse_order)
        diff = -diff;
    return diff;
}
Example #4
0
static int _sort_step_by_time_limit(void *void1, void *void2)
{
	int diff;
	job_step_info_t *step1;
	job_step_info_t *step2;

	_get_step_info_from_void(&step1, &step2, void1, void2);

	diff = _diff_uint32(step1->time_limit, step2->time_limit);

	if (reverse_order)
		diff = -diff;
	return diff;
}
Example #5
0
static int _sort_job_by_user_id(void *void1, void *void2)
{
	int diff;
	job_info_t *job1;
	job_info_t *job2;

	_get_job_info_from_void(&job1, &job2, void1, void2);

	diff = _diff_uint32(job1->user_id, job2->user_id);

	if (reverse_order)
		diff = -diff;
	return diff;
}
Example #6
0
static int _sort_job_by_min_tmp_disk(void *void1, void *void2)
{
	int diff;
	job_info_t *job1;
	job_info_t *job2;

	_get_job_info_from_void(&job1, &job2, void1, void2);

	diff = _diff_uint32(job1->pn_min_tmp_disk, job2->pn_min_tmp_disk);

	if (reverse_order)
		diff = -diff;
	return diff;
}
Example #7
0
static int _sort_job_by_threads(void *void1, void *void2)
{
	int diff;
	job_info_t *job1;
	job_info_t *job2;

	_get_job_info_from_void(&job1, &job2, void1, void2);

	diff = _diff_uint32(job1->threads_per_core, job2->threads_per_core);

	if (reverse_order)
		diff = -diff;
	return diff;
}
Example #8
0
File: sort.c Project: A1ve5/slurm
static int _sort_by_weight(void *void1, void *void2)
{
	int diff;
	sinfo_data_t *sinfo1;
	sinfo_data_t *sinfo2;

	_get_sinfo_from_void(&sinfo1, &sinfo2, void1, void2);

	diff = _diff_uint32(sinfo1->min_weight, sinfo2->min_weight);

	if (reverse_order)
		diff = -diff;
	return diff;
}
Example #9
0
File: sort.c Project: A1ve5/slurm
static int _sort_by_nodes(void *void1, void *void2)
{
	int diff;
	sinfo_data_t *sinfo1;
	sinfo_data_t *sinfo2;

	_get_sinfo_from_void(&sinfo1, &sinfo2, void1, void2);

	diff = _diff_uint32(sinfo1->nodes_total, sinfo2->nodes_total);

	if (reverse_order)
		diff = -diff;
	return diff;
}
Example #10
0
static int _sort_job_by_num_sct(void *void1, void *void2)
{
	int diffs, diffc, difft;
	job_info_t *job1;
	job_info_t *job2;

	_get_job_info_from_void(&job1, &job2, void1, void2);

	diffs = _diff_uint32(job1->sockets_per_node, job2->sockets_per_node);
	diffc = _diff_uint32(job1->cores_per_socket, job2->cores_per_socket);
	difft = _diff_uint32(job1->threads_per_core, job2->threads_per_core);

	if (reverse_order) {
		diffs = -diffs;
		diffc = -diffc;
		difft = -difft;
	}
	if (diffs)
		return diffs;
	else if (diffc)
		return diffc;
	else
		return difft;
}
Example #11
0
File: sort.c Project: A1ve5/slurm
static int _sort_by_sct(void *void1, void *void2)
{
	int diffs, diffc, difft;
	sinfo_data_t *sinfo1;
	sinfo_data_t *sinfo2;

	_get_sinfo_from_void(&sinfo1, &sinfo2, void1, void2);

	diffs = _diff_uint32(sinfo1->min_sockets, sinfo2->min_sockets);
	diffc = _diff_uint32(sinfo1->min_cores,   sinfo2->min_cores);
	difft = _diff_uint32(sinfo1->min_threads, sinfo2->min_threads);

	if (reverse_order) {
		diffs = -diffs;
		diffc = -diffc;
		difft = -difft;
	}
	if (diffs)
		return diffs;
	else if (diffc)
		return diffc;
	else
		return difft;
}
Example #12
0
static int _sort_job_by_min_memory(void *void1, void *void2)
{
	int diff;
	job_info_t *job1;
	job_info_t *job2;

	_get_job_info_from_void(&job1, &job2, void1, void2);

	job1->pn_min_memory &= (~MEM_PER_CPU);
	job2->pn_min_memory &= (~MEM_PER_CPU);
	diff = _diff_uint32(job1->pn_min_memory, job2->pn_min_memory);

	if (reverse_order)
		diff = -diff;
	return diff;
}
Example #13
0
File: sort.c Project: A1ve5/slurm
static int _sort_by_priority_tier(void *void1, void *void2)
{
	int diff;
	sinfo_data_t *sinfo1;
	sinfo_data_t *sinfo2;
	uint32_t val1 = 0, val2 = 0;

	_get_sinfo_from_void(&sinfo1, &sinfo2, void1, void2);

	if (sinfo1->part_info)
		val1 = sinfo1->part_info->priority_tier;
	if (sinfo2->part_info)
		val2 = sinfo2->part_info->priority_tier;
	diff = _diff_uint32(val1, val2);

	if (reverse_order)
		diff = -diff;
	return diff;
}
Example #14
0
File: sort.c Project: HPCNow/slurm
static int _sort_job_by_id(void *void1, void *void2)
{
	int diff;
	job_info_t *job1;
	job_info_t *job2;
	uint32_t job_id1, job_id2;

	_get_job_info_from_void(&job1, &job2, void1, void2);

	if (job1->pack_job_id)
		job_id1 = job1->pack_job_id;
	else if (job1->array_task_id == NO_VAL)
		job_id1 = job1->job_id;
	else
		job_id1 = job1->array_job_id;

	if (job2->pack_job_id)
		job_id2 = job2->pack_job_id;
	else if (job2->array_task_id == NO_VAL)
		job_id2 = job2->job_id;
	else
		job_id2 = job2->array_job_id;

	if (job_id1 == job_id2) {
		if (job1->pack_job_id)
			job_id1 = job1->pack_job_offset;
		else
			job_id1 = job1->array_task_id;
		if (job2->pack_job_id)
			job_id2 = job2->pack_job_offset;
		else
			job_id2 = job2->array_task_id;
	}

	diff = _diff_uint32(job_id1, job_id2);

	if (reverse_order)
		diff = -diff;
	return diff;
}