本文整理汇总了C++中convert_num_unit函数的典型用法代码示例。如果您正苦于以下问题:C++ convert_num_unit函数的具体用法?C++ convert_num_unit怎么用?C++ convert_num_unit使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了convert_num_unit函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: _build_min_max_32_string
static int
_build_min_max_32_string(char *buffer, int buf_size,
uint32_t min, uint32_t max,
bool range, bool use_suffix)
{
char tmp_min[8];
char tmp_max[8];
if (use_suffix) {
convert_num_unit((float)min, tmp_min, sizeof(tmp_min),
UNIT_NONE);
convert_num_unit((float)max, tmp_max, sizeof(tmp_max),
UNIT_NONE);
} else {
snprintf(tmp_min, sizeof(tmp_min), "%u", min);
snprintf(tmp_max, sizeof(tmp_max), "%u", max);
}
if (max == min)
return snprintf(buffer, buf_size, "%s", tmp_max);
else if (range) {
if (max == INFINITE)
return snprintf(buffer, buf_size, "%s-infinite",
tmp_min);
else
return snprintf(buffer, buf_size, "%s-%s",
tmp_min, tmp_max);
} else
return snprintf(buffer, buf_size, "%s+", tmp_min);
}
开发者ID:Xarthisius,项目名称:slurm,代码行数:30,代码来源:print.c
示例2: _print_nodes_ai
int _print_nodes_ai(sinfo_data_t * sinfo_data, int width,
bool right_justify, char *suffix)
{
char id[FORMAT_STRING_SIZE];
char tmpa[8];
char tmpi[8];
if (sinfo_data) {
if(params.cluster_flags & CLUSTER_FLAG_BG) {
convert_num_unit((float)sinfo_data->nodes_alloc,
tmpa, sizeof(tmpa), UNIT_NONE);
convert_num_unit((float)sinfo_data->nodes_idle,
tmpi, sizeof(tmpi), UNIT_NONE);
} else {
snprintf(tmpa, sizeof(tmpa), "%d",
sinfo_data->nodes_alloc);
snprintf(tmpi, sizeof(tmpi), "%d",
sinfo_data->nodes_idle);
}
snprintf(id, FORMAT_STRING_SIZE, "%s/%s",
tmpa, tmpi);
_print_str(id, width, right_justify, true);
} else
_print_str("NODES(A/I)", width, right_justify, true);
if (suffix)
printf("%s", suffix);
return SLURM_SUCCESS;
}
开发者ID:Xarthisius,项目名称:slurm,代码行数:28,代码来源:print.c
示例3: _sprint_range
static void _sprint_range(char *str, uint32_t str_size,
uint32_t lower, uint32_t upper)
{
char tmp[128];
uint32_t cluster_flags = slurmdb_setup_cluster_flags();
if (cluster_flags & CLUSTER_FLAG_BG) {
convert_num_unit((float)lower, tmp, sizeof(tmp), UNIT_NONE,
NO_VAL, CONVERT_NUM_UNIT_EXACT);
} else {
snprintf(tmp, sizeof(tmp), "%u", lower);
}
if (upper > 0) {
char tmp2[128];
if (cluster_flags & CLUSTER_FLAG_BG) {
convert_num_unit((float)upper, tmp2, sizeof(tmp2),
UNIT_NONE, NO_VAL,
CONVERT_NUM_UNIT_EXACT);
} else {
snprintf(tmp2, sizeof(tmp2), "%u", upper);
}
snprintf(str, str_size, "%s-%s", tmp, tmp2);
} else
snprintf(str, str_size, "%s", tmp);
}
开发者ID:fafik23,项目名称:slurm,代码行数:26,代码来源:job_info.c
示例4: _update_block_record
static void _update_block_record(sview_block_info_t *block_ptr,
GtkTreeStore *treestore)
{
char cnode_cnt[20], cnode_cnt2[20];
char *tmp_char = NULL, *tmp_char2 = NULL, *tmp_char3 = NULL;
convert_num_unit((float)block_ptr->cnode_cnt, cnode_cnt,
sizeof(cnode_cnt), UNIT_NONE, NO_VAL,
working_sview_config.convert_flags);
if (cluster_flags & CLUSTER_FLAG_BGQ) {
convert_num_unit((float)block_ptr->cnode_err_cnt, cnode_cnt2,
sizeof(cnode_cnt), UNIT_NONE, NO_VAL,
working_sview_config.convert_flags);
tmp_char3 = xstrdup_printf("%s/%s", cnode_cnt, cnode_cnt2);
} else
tmp_char3 = cnode_cnt;
tmp_char = conn_type_string_full(block_ptr->bg_conn_type);
tmp_char2 = _set_running_job_str(block_ptr->job_list, 0);
/* Combining these records provides a slight performance improvement */
gtk_tree_store_set(treestore, &block_ptr->iter_ptr,
SORTID_BLOCK, block_ptr->bg_block_name,
SORTID_COLOR,
sview_colors[block_ptr->color_inx],
SORTID_COLOR_INX, block_ptr->color_inx,
SORTID_CONN, tmp_char,
SORTID_IMAGEMLOADER, block_ptr->imagemloader,
SORTID_JOB, tmp_char2,
SORTID_NODE_INX, block_ptr->mp_inx,
SORTID_NODE_CNT, tmp_char3,
SORTID_NODELIST, block_ptr->mp_str,
SORTID_PARTITION, block_ptr->slurm_part_name,
SORTID_REASON, block_ptr->reason,
SORTID_SMALL_BLOCK, block_ptr->small_block,
SORTID_STATE,
bg_block_state_string(block_ptr->state),
SORTID_UPDATED, 1,
-1);
xfree(tmp_char);
xfree(tmp_char2);
if (cluster_flags & CLUSTER_FLAG_BGQ)
xfree(tmp_char3);
if (cluster_flags & CLUSTER_FLAG_BGP) {
gtk_tree_store_set(treestore, &block_ptr->iter_ptr,
SORTID_IMAGERAMDISK, block_ptr->imageramdisk,
SORTID_IMAGELINUX, block_ptr->imagelinux,
-1);
} else if (cluster_flags & CLUSTER_FLAG_BGL) {
gtk_tree_store_set(treestore, &block_ptr->iter_ptr,
SORTID_IMAGERAMDISK, block_ptr->imageramdisk,
SORTID_IMAGELINUX, block_ptr->imagelinux,
SORTID_IMAGEBLRTS, block_ptr->imageblrts,
SORTID_USE,
node_use_string(block_ptr->bg_node_use),
-1);
}
return;
}
开发者ID:damienfrancois,项目名称:slurm,代码行数:60,代码来源:block_info.c
示例5: _update_bb_record
/* updates the burst buffer record on sview */
static void _update_bb_record(sview_bb_info_t *sview_bb_info_ptr,
GtkTreeStore *treestore)
{
char tmp_create_time[40];
char tmp_size[20], tmp_user_id[60], bb_name_id[32];
char *tmp_state, *tmp_user_name;
burst_buffer_resv_t *bb_ptr = sview_bb_info_ptr->bb_ptr;
if (bb_ptr->name) {
strncpy(bb_name_id, bb_ptr->name, sizeof(bb_name_id));
} else if (bb_ptr->array_task_id == NO_VAL) {
convert_num_unit(bb_ptr->job_id, bb_name_id,
sizeof(bb_name_id),
UNIT_NONE, working_sview_config.convert_flags);
} else {
snprintf(bb_name_id, sizeof(bb_name_id),
"%u_%u(%u)",
bb_ptr->array_job_id,
bb_ptr->array_task_id,
bb_ptr->job_id);
}
if (bb_ptr->create_time) {
slurm_make_time_str((time_t *)&bb_ptr->create_time,
tmp_create_time, sizeof(tmp_create_time));
} else {
time_t now = time(NULL);
slurm_make_time_str(&now, tmp_create_time,
sizeof(tmp_create_time));
}
_get_size_str(tmp_size, sizeof(tmp_size), bb_ptr->size);
tmp_state = bb_state_string(bb_ptr->state);
tmp_user_name = uid_to_string(bb_ptr->user_id);
snprintf(tmp_user_id, sizeof(tmp_user_id), "%s(%u)", tmp_user_name,
bb_ptr->user_id);
xfree(tmp_user_name);
/* Combining these records provides a slight performance improvement */
gtk_tree_store_set(treestore, &sview_bb_info_ptr->iter_ptr,
SORTID_COLOR,
sview_colors[sview_bb_info_ptr->color_inx],
SORTID_COLOR_INX, sview_bb_info_ptr->color_inx,
SORTID_PLUGIN, sview_bb_info_ptr->plugin,
SORTID_ACCOUNT, bb_ptr->account,
SORTID_CREATE_TIME, tmp_create_time,
SORTID_NAME, bb_name_id,
SORTID_PARTITION, bb_ptr->partition,
SORTID_POOL, bb_ptr->pool,
SORTID_QOS, bb_ptr->qos,
SORTID_SIZE, tmp_size,
SORTID_STATE, tmp_state,
SORTID_UPDATED, 1,
SORTID_USERID, tmp_user_id,
-1);
return;
}
开发者ID:HDOD,项目名称:slurm,代码行数:61,代码来源:bb_info.c
示例6: _print_job_num_nodes
int _print_job_num_nodes(job_info_t * job, int width, bool right_justify,
char* suffix)
{
uint32_t node_cnt = 0;
char tmp_char[8];
if (job == NULL) /* Print the Header instead */
_print_str("NODES", width, right_justify, true);
else {
if (params.cluster_flags & CLUSTER_FLAG_BG)
select_g_select_jobinfo_get(job->select_jobinfo,
SELECT_JOBDATA_NODE_CNT,
&node_cnt);
if ((node_cnt == 0) || (node_cnt == NO_VAL))
node_cnt = _get_node_cnt(job);
if (params.cluster_flags & CLUSTER_FLAG_BG)
convert_num_unit((float)node_cnt, tmp_char,
sizeof(tmp_char), UNIT_NONE);
else
snprintf(tmp_char, sizeof(tmp_char), "%d", node_cnt);
_print_str(tmp_char, width, right_justify, true);
}
if (suffix)
printf("%s", suffix);
return SLURM_SUCCESS;
}
开发者ID:Cray,项目名称:slurm,代码行数:29,代码来源:print.c
示例7: _display_info_bb
static void _display_info_bb(List info_list, popup_info_t *popup_win)
{
specific_info_t *spec_info = popup_win->spec_info;
char *name = (char *)spec_info->search_info->gchar_data;
//int found = 0;
burst_buffer_resv_t *bb_ptr = NULL;
GtkTreeView *treeview = NULL;
ListIterator itr = NULL;
sview_bb_info_t *sview_bb_info = NULL;
int update = 0;
char bb_name_id[32];
if (!spec_info->search_info->gchar_data) {
//info = xstrdup("No pointer given!");
goto finished;
}
if (!spec_info->display_widget) {
treeview = create_treeview_2cols_attach_to_table(
popup_win->table);
spec_info->display_widget =
gtk_widget_ref(GTK_WIDGET(treeview));
} else {
treeview = GTK_TREE_VIEW(spec_info->display_widget);
update = 1;
}
itr = list_iterator_create(info_list);
while ((sview_bb_info = (sview_bb_info_t*) list_next(itr))) {
bb_ptr = sview_bb_info->bb_ptr;
if (bb_ptr->name) {
strcpy(bb_name_id, bb_ptr->name);
} else if (bb_ptr->array_task_id == NO_VAL) {
convert_num_unit(bb_ptr->job_id,
bb_name_id,
sizeof(bb_name_id),
UNIT_NONE,
working_sview_config.convert_flags);
} else {
snprintf(bb_name_id, sizeof(bb_name_id),
"%u_%u(%u)",
bb_ptr->array_job_id,
bb_ptr->array_task_id,
bb_ptr->job_id);
}
if (!xstrcmp(bb_name_id, name)) {
_layout_bb_record(treeview, sview_bb_info, update);
break;
}
}
list_iterator_destroy(itr);
gtk_widget_show(spec_info->display_widget);
finished:
return;
}
开发者ID:HDOD,项目名称:slurm,代码行数:59,代码来源:bb_info.c
示例8: _print_cpus_aiot
/* Cpus, allocated/idle/other/total */
int _print_cpus_aiot(sinfo_data_t * sinfo_data, int width,
bool right_justify, char *suffix)
{
char id[FORMAT_STRING_SIZE];
char tmpa[8];
char tmpi[8];
char tmpo[8];
char tmpt[8];
if (sinfo_data) {
if (params.cluster_flags & CLUSTER_FLAG_BG) {
convert_num_unit((float)sinfo_data->cpus_alloc,
tmpa, sizeof(tmpa), UNIT_NONE,
params.convert_flags);
convert_num_unit((float)sinfo_data->cpus_idle,
tmpi, sizeof(tmpi), UNIT_NONE,
params.convert_flags);
convert_num_unit((float)sinfo_data->cpus_other,
tmpo, sizeof(tmpo), UNIT_NONE,
params.convert_flags);
convert_num_unit((float)sinfo_data->cpus_total,
tmpt, sizeof(tmpt), UNIT_NONE,
params.convert_flags);
} else {
snprintf(tmpa, sizeof(tmpa), "%u",
sinfo_data->cpus_alloc);
snprintf(tmpi, sizeof(tmpi), "%u",
sinfo_data->cpus_idle);
snprintf(tmpo, sizeof(tmpo), "%u",
sinfo_data->cpus_other);
snprintf(tmpt, sizeof(tmpt), "%u",
sinfo_data->cpus_total);
}
snprintf(id, FORMAT_STRING_SIZE, "%s/%s/%s/%s",
tmpa, tmpi, tmpo, tmpt);
_print_str(id, width, right_justify, true);
} else
_print_str("CPUS(A/I/O/T)", width, right_justify, true);
if (suffix)
printf("%s", suffix);
return SLURM_SUCCESS;
}
开发者ID:samkos,项目名称:slurm,代码行数:42,代码来源:print.c
示例9: _build_min_max_16_string
static int
_build_min_max_16_string(char *buffer, int buf_size, uint16_t min, uint16_t max,
bool range)
{
char tmp_min[8];
char tmp_max[8];
convert_num_unit((float)min, tmp_min, sizeof(tmp_min), UNIT_NONE);
convert_num_unit((float)max, tmp_max, sizeof(tmp_max), UNIT_NONE);
if (max == min)
return snprintf(buffer, buf_size, "%s", tmp_max);
else if (range) {
if (max == (uint16_t) INFINITE)
return snprintf(buffer, buf_size, "%s-infinite",
tmp_min);
else
return snprintf(buffer, buf_size, "%s-%s",
tmp_min, tmp_max);
} else
return snprintf(buffer, buf_size, "%s+", tmp_min);
}
开发者ID:Xarthisius,项目名称:slurm,代码行数:21,代码来源:print.c
示例10: _print_small_double
static void _print_small_double(
char *outbuf, int buf_size, double dub, int units)
{
if (fuzzy_equal(dub, NO_VAL))
return;
if (dub > 1)
convert_num_unit((float)dub, outbuf, buf_size, units);
else if (dub > 0)
snprintf(outbuf, buf_size, "%.2fM", dub);
else
snprintf(outbuf, buf_size, "0");
}
开发者ID:Cray,项目名称:slurm,代码行数:13,代码来源:print.c
示例11: _print_job_num_sct
int _print_job_num_sct(job_info_t * job, int width, bool right_justify,
char* suffix)
{
char sockets[10];
char cores[10];
char threads[10];
char sct[(10+1)*3];
if (job) {
if (job->sockets_per_node == (uint16_t) NO_VAL)
strcpy(sockets, "*");
else
convert_num_unit((float)job->sockets_per_node, sockets,
sizeof(sockets), UNIT_NONE);
if (job->cores_per_socket == (uint16_t) NO_VAL)
strcpy(cores, "*");
else
convert_num_unit((float)job->cores_per_socket, cores,
sizeof(cores), UNIT_NONE);
if (job->threads_per_core == (uint16_t) NO_VAL)
strcpy(threads, "*");
else
convert_num_unit((float)job->threads_per_core, threads,
sizeof(threads), UNIT_NONE);
sct[0] = '\0';
strcat(sct, sockets);
strcat(sct, ":");
strcat(sct, cores);
strcat(sct, ":");
strcat(sct, threads);
_print_str(sct, width, right_justify, true);
} else {
_print_str("S:C:T", width, right_justify, true);
}
if (suffix)
printf("%s", suffix);
return SLURM_SUCCESS;
}
开发者ID:Cray,项目名称:slurm,代码行数:38,代码来源:print.c
示例12: _print_pn_min_cpus
int _print_pn_min_cpus(job_info_t * job, int width, bool right_justify,
char* suffix)
{
char tmp_char[8];
if (job == NULL) /* Print the Header instead */
_print_str("MIN_CPUS", width, right_justify, true);
else {
convert_num_unit((float)job->pn_min_cpus, tmp_char,
sizeof(tmp_char), UNIT_NONE);
_print_str(tmp_char, width, right_justify, true);
}
if (suffix)
printf("%s", suffix);
return SLURM_SUCCESS;
}
开发者ID:Cray,项目名称:slurm,代码行数:16,代码来源:print.c
示例13: _update_resv_record
static void _update_resv_record(sview_resv_info_t *sview_resv_info_ptr,
GtkTreeStore *treestore)
{
char tmp_duration[40], tmp_end[40], tmp_nodes[40], tmp_start[40];
char *tmp_flags;
reserve_info_t *resv_ptr = sview_resv_info_ptr->resv_ptr;
secs2time_str((uint32_t)difftime(resv_ptr->end_time,
resv_ptr->start_time),
tmp_duration, sizeof(tmp_duration));
slurm_make_time_str((time_t *)&resv_ptr->end_time, tmp_end,
sizeof(tmp_end));
tmp_flags = reservation_flags_string(resv_ptr->flags);
convert_num_unit((float)resv_ptr->node_cnt,
tmp_nodes, sizeof(tmp_nodes), UNIT_NONE);
slurm_make_time_str((time_t *)&resv_ptr->start_time, tmp_start,
sizeof(tmp_start));
/* Combining these records provides a slight performance improvement */
gtk_tree_store_set(treestore, &sview_resv_info_ptr->iter_ptr,
SORTID_ACCOUNTS, resv_ptr->accounts,
SORTID_COLOR,
sview_colors[sview_resv_info_ptr->color_inx],
SORTID_COLOR_INX, sview_resv_info_ptr->color_inx,
SORTID_DURATION, tmp_duration,
SORTID_FEATURES, resv_ptr->features,
SORTID_FLAGS, tmp_flags,
SORTID_LICENSES, resv_ptr->licenses,
SORTID_NAME, resv_ptr->name,
SORTID_NODE_CNT, tmp_nodes,
SORTID_NODE_INX, resv_ptr->node_inx,
SORTID_NODELIST, resv_ptr->node_list,
SORTID_PARTITION, resv_ptr->partition,
SORTID_TIME_START, tmp_start,
SORTID_TIME_END, tmp_end,
SORTID_UPDATED, 1,
SORTID_USERS, resv_ptr->users,
-1);
xfree(tmp_flags);
return;
}
开发者ID:lipari,项目名称:slurm,代码行数:47,代码来源:resv_info.c
示例14: _update_block_record
static void _update_block_record(sview_block_info_t *block_ptr,
GtkTreeStore *treestore, GtkTreeIter *iter)
{
char job_running[20], cnode_cnt[20];
if (block_ptr->job_running > NO_JOB_RUNNING)
snprintf(job_running, sizeof(job_running),
"%d", block_ptr->job_running);
else
snprintf(job_running, sizeof(job_running), "-");
convert_num_unit((float)block_ptr->cnode_cnt, cnode_cnt, sizeof(cnode_cnt),
UNIT_NONE);
/* Combining these records provides a slight performance improvement */
gtk_tree_store_set(treestore, iter,
SORTID_BLOCK, block_ptr->bg_block_name,
SORTID_COLOR,
sview_colors[block_ptr->color_inx],
SORTID_COLOR_INX, block_ptr->color_inx,
SORTID_CONN,
conn_type_string(block_ptr->bg_conn_type),
SORTID_IMAGERAMDISK, block_ptr->imageramdisk,
SORTID_IMAGELINUX, block_ptr->imagelinux,
SORTID_IMAGEMLOADER, block_ptr->imagemloader,
SORTID_JOB, job_running,
SORTID_NODE_INX, block_ptr->bp_inx,
SORTID_MP_STR, cnode_cnt,
SORTID_NODELIST, block_ptr->mp_str,
SORTID_PARTITION, block_ptr->slurm_part_name,
SORTID_SMALL_BLOCK, block_ptr->small_block,
SORTID_STATE,
bg_block_state_string(block_ptr->state),
SORTID_USER, block_ptr->bg_user_name,
SORTID_UPDATED, 1,
-1);
if (cluster_flags & CLUSTER_FLAG_BGL) {
gtk_tree_store_set(treestore, iter,
SORTID_IMAGEBLRTS, block_ptr->imageblrts,
SORTID_USE,
node_use_string(block_ptr->bg_node_use),
-1);
}
return;
}
开发者ID:donaghy1,项目名称:slurm,代码行数:47,代码来源:block_info.c
示例15: _print_job_num_cpus
int _print_job_num_cpus(job_info_t * job, int width, bool right, char* suffix)
{
char tmp_char[18];
if (job == NULL) /* Print the Header instead */
_print_str("CPUS", width, right, true);
else {
if (params.cluster_flags & CLUSTER_FLAG_BG)
convert_num_unit((float)job->num_cpus, tmp_char,
sizeof(tmp_char), UNIT_NONE);
else
snprintf(tmp_char, sizeof(tmp_char),
"%u", job->num_cpus);
_print_str(tmp_char, width, right, true);
}
if (suffix)
printf("%s", suffix);
return SLURM_SUCCESS;
}
开发者ID:Cray,项目名称:slurm,代码行数:18,代码来源:print.c
示例16: _print_threads
int _print_threads(job_info_t * job, int width, bool right_justify,
char* suffix)
{
char tmp_char[8];
if (job == NULL) /* Print the Header instead */
_print_str("THREADS_PER_CORE", width, right_justify, true);
else {
if (job->threads_per_core == (uint16_t) NO_VAL)
strcpy(tmp_char, "*");
else
convert_num_unit((float)job->threads_per_core, tmp_char,
sizeof(tmp_char), UNIT_NONE);
_print_str(tmp_char, width, right_justify, true);
}
if (suffix)
printf("%s", suffix);
return SLURM_SUCCESS;
}
开发者ID:Cray,项目名称:slurm,代码行数:19,代码来源:print.c
示例17: _print_nodes_t
int _print_nodes_t(sinfo_data_t * sinfo_data, int width,
bool right_justify, char *suffix)
{
char id[FORMAT_STRING_SIZE];
char tmp[8];
if (sinfo_data) {
if(params.cluster_flags & CLUSTER_FLAG_BG)
convert_num_unit((float)sinfo_data->nodes_total,
tmp, sizeof(tmp), UNIT_NONE);
else
snprintf(tmp, sizeof(tmp), "%d",
sinfo_data->nodes_total);
snprintf(id, FORMAT_STRING_SIZE, "%s", tmp);
_print_str(id, width, right_justify, true);
} else
_print_str("NODES", width, right_justify, true);
if (suffix)
printf("%s", suffix);
return SLURM_SUCCESS;
}
开发者ID:Xarthisius,项目名称:slurm,代码行数:21,代码来源:print.c
示例18: _print_pn_min_memory
int _print_pn_min_memory(job_info_t * job, int width, bool right_justify,
char* suffix)
{
char min_mem[10];
char tmp_char[21];
if (job == NULL) /* Print the Header instead */
_print_str("MIN_MEMORY", width, right_justify, true);
else {
tmp_char[0] = '\0';
job->pn_min_memory &= (~MEM_PER_CPU);
convert_num_unit((float)job->pn_min_memory, min_mem,
sizeof(min_mem), UNIT_NONE);
strcat(tmp_char, min_mem);
_print_str(tmp_char, width, right_justify, true);
}
if (suffix)
printf("%s", suffix);
return SLURM_SUCCESS;
}
开发者ID:Cray,项目名称:slurm,代码行数:21,代码来源:print.c
示例19: print_fields
void print_fields(slurmdb_step_rec_t *step)
{
print_field_t *field = NULL;
int curr_inx = 1;
char outbuf[FORMAT_STRING_SIZE];
list_iterator_reset(print_fields_itr);
while ((field = list_next(print_fields_itr))) {
char *tmp_char = NULL;
memset(&outbuf, 0, sizeof(outbuf));
switch(field->type) {
case PRINT_AVECPU:
tmp_char = _elapsed_time((long)step->stats.cpu_ave, 0);
field->print_routine(field,
tmp_char,
(curr_inx == field_count));
xfree(tmp_char);
break;
case PRINT_ACT_CPUFREQ:
convert_num_unit2((double)step->stats.act_cpufreq,
outbuf, sizeof(outbuf), UNIT_KILO,
NO_VAL, 1000, params.convert_flags &
(~CONVERT_NUM_UNIT_EXACT));
field->print_routine(field,
outbuf,
(curr_inx == field_count));
break;
case PRINT_CONSUMED_ENERGY:
if (!fuzzy_equal(step->stats.consumed_energy, NO_VAL)) {
convert_num_unit2((double)
step->stats.consumed_energy,
outbuf, sizeof(outbuf),
UNIT_NONE, NO_VAL, 1000,
params.convert_flags &
(~CONVERT_NUM_UNIT_EXACT));
}
field->print_routine(field,
outbuf,
(curr_inx == field_count));
break;
case PRINT_CONSUMED_ENERGY_RAW:
field->print_routine(field,
step->stats.consumed_energy,
(curr_inx == field_count));
break;
case PRINT_AVEDISKREAD:
_print_small_double(outbuf, sizeof(outbuf),
step->stats.disk_read_ave,
UNIT_MEGA);
field->print_routine(field,
outbuf,
(curr_inx == field_count));
break;
case PRINT_AVEDISKWRITE:
_print_small_double(outbuf, sizeof(outbuf),
step->stats.disk_write_ave,
UNIT_MEGA);
field->print_routine(field,
outbuf,
(curr_inx == field_count));
break;
case PRINT_AVEPAGES:
convert_num_unit((double)step->stats.pages_ave, outbuf,
sizeof(outbuf), UNIT_KILO, NO_VAL,
params.convert_flags);
field->print_routine(field,
outbuf,
(curr_inx == field_count));
break;
case PRINT_AVERSS:
convert_num_unit((double)step->stats.rss_ave, outbuf,
sizeof(outbuf), UNIT_KILO, NO_VAL,
params.convert_flags);
field->print_routine(field,
outbuf,
(curr_inx == field_count));
break;
case PRINT_AVEVSIZE:
convert_num_unit((double)step->stats.vsize_ave, outbuf,
sizeof(outbuf), UNIT_KILO, NO_VAL,
params.convert_flags);
field->print_routine(field,
outbuf,
(curr_inx == field_count));
break;
case PRINT_JOBID:
if (step->stepid == SLURM_BATCH_SCRIPT)
snprintf(outbuf, sizeof(outbuf), "%u.batch",
step->job_ptr->jobid);
else if (step->stepid == SLURM_EXTERN_CONT)
//.........这里部分代码省略.........
开发者ID:artpol84,项目名称:slurm,代码行数:101,代码来源:print.c
示例20: slurm_sprint_job_step_info
/*
* slurm_sprint_job_step_info - output information about a specific Slurm
* job step based upon message as loaded using slurm_get_job_steps
* IN job_ptr - an individual job step information record pointer
* IN one_liner - print as a single line if true
* RET out - char * containing formatted output (must be freed after call)
* NULL is returned on failure.
*/
char *
slurm_sprint_job_step_info ( job_step_info_t * job_step_ptr,
int one_liner )
{
char tmp_node_cnt[40];
char time_str[32];
char limit_str[32];
char tmp_line[128];
char *out = NULL;
uint32_t cluster_flags = slurmdb_setup_cluster_flags();
/****** Line 1 ******/
slurm_make_time_str ((time_t *)&job_step_ptr->start_time, time_str,
sizeof(time_str));
if (job_step_ptr->time_limit == INFINITE)
sprintf(limit_str, "UNLIMITED");
else
secs2time_str ((time_t)job_step_ptr->time_limit * 60,
limit_str, sizeof(limit_str));
snprintf(tmp_line, sizeof(tmp_line),
"StepId=%u.%u UserId=%u StartTime=%s TimeLimit=%s",
job_step_ptr->job_id, job_step_ptr->step_id,
job_step_ptr->user_id, time_str, limit_str);
out = xstrdup(tmp_line);
if (one_liner)
xstrcat(out, " ");
else
xstrcat(out, "\n ");
/****** Line 2 ******/
snprintf(tmp_line, sizeof(tmp_line),
"State=%s ",
job_state_string(job_step_ptr->state));
xstrcat(out, tmp_line);
if (cluster_flags & CLUSTER_FLAG_BG) {
char *io_nodes;
select_g_select_jobinfo_get(job_step_ptr->select_jobinfo,
SELECT_JOBDATA_IONODES,
&io_nodes);
if (io_nodes) {
snprintf(tmp_line, sizeof(tmp_line),
"Partition=%s MidplaneList=%s[%s] Gres=%s",
job_step_ptr->partition,
job_step_ptr->nodes, io_nodes,
job_step_ptr->gres);
xfree(io_nodes);
} else
snprintf(tmp_line, sizeof(tmp_line),
"Partition=%s MidplaneList=%s Gres=%s",
job_step_ptr->partition,
job_step_ptr->nodes,
job_step_ptr->gres);
} else {
snprintf(tmp_line, sizeof(tmp_line),
"Partition=%s NodeList=%s Gres=%s",
job_step_ptr->partition, job_step_ptr->nodes,
job_step_ptr->gres);
}
xstrcat(out, tmp_line);
if (one_liner)
xstrcat(out, " ");
else
xstrcat(out, "\n ");
/****** Line 3 ******/
if (cluster_flags & CLUSTER_FLAG_BGQ) {
uint32_t nodes = 0;
select_g_select_jobinfo_get(job_step_ptr->select_jobinfo,
SELECT_JOBDATA_NODE_CNT,
&nodes);
convert_num_unit((float)nodes, tmp_node_cnt,
sizeof(tmp_node_cnt), UNIT_NONE);
} else {
convert_num_unit((float)_nodes_in_list(job_step_ptr->nodes),
tmp_node_cnt, sizeof(tmp_node_cnt),
UNIT_NONE);
}
snprintf(tmp_line, sizeof(tmp_line),
"Nodes=%s Tasks=%u Name=%s Network=%s",
tmp_node_cnt, job_step_ptr->num_tasks, job_step_ptr->name,
job_step_ptr->network);
xstrcat(out, tmp_line);
if (one_liner)
xstrcat(out, " ");
else
xstrcat(out, "\n ");
/****** Line 4 ******/
snprintf(tmp_line, sizeof(tmp_line),
"ResvPorts=%s Checkpoint=%u CheckpointDir=%s",
job_step_ptr->resv_ports,
//.........这里部分代码省略.........
开发者ID:jimmycao,项目名称:slurm_jobsubmit,代码行数:101,代码来源:job_step_info.c
注:本文中的convert_num_unit函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论