Hi,
There is a piece of software called Sawmill (http://www.sawmill.net/)
that is a generic log parser. It is not free, but there is a 30 day
trial license available. I asked the company about parsing sacct logs
and they were able to come up with a basic config for it. That log
parser is built in to their latest release. I've added some additional
features to the parser config since then and I'll attach my latest
config. To use my version, copy slurm-rcc.cfg to
sawmill/LogAnalysisInfo/log_formats. A patch (which I'll attach as
well) also needs to be applied to
sawmill/LogAnalysisInfo/language/english/lang_stats.cfg.
sacct logs should be dumped to a file with something like this:
sacct -P --allocations
--format=Account,CPUTimeRAW,Eligible,End,JobName,JobID,NCPUS,NNodes,Partition,QOS,Start,State,Submit,Timelimit,User
Use the "SLURM (RCC Custom)" log format to use my updated config.
I've been impressed with stats that get generated. The config could
probably be improved to include additional info and reports. It
might be interesting if someone created a config to parse job steps as
well.
Andy
--
andy wettstein
hpc system administrator
research computing center
university of chicago
773.702.1104
# Copyright (c) 2012 Flowerfire, Inc. All Rights Reserved.
slurm-rcc = {
plugin_version = "1.0"
info.1.manufacturer = "SchedMD"
info.1.device = "SLURM (RCC Custom)"
info.1.version.1 = ""
# 2012-11-05 - 1.0 - MSG - Initial creation
# The name of the log format
log.format.format_label = "SLURM Log Format"
log.miscellaneous.log_data_type = "generic"
log.miscellaneous.log_format_type = "other"
# sacct command line options
# sacct -P --allocations
--format=Account,CPUTimeRAW,Eligible,End,JobName,JobID,NCPUS,NNodes,Partition,QOS,Start,State,Submit,Timelimit,User
# The log is in this format if any of the first ten lines match this regular
expression
log.format.autodetect_regular_expression =
"^Account[|]CPUTimeRAW[|]Eligible[|]"
# Use pipe as the field separator
log.format.field_separator = "|"
# Log fields
log.fields = {
date = ""
time = ""
account.index = 1
cputimeraw.index = 2
eligible.index = 3
end.index = 4
jobname.index = 5
jobid.index = 6
ncpus.index = 7
nnodes.index = 8
partition.index = 9
qos.index = 10
start.index = 11
state.index = 12
submit.index = 13
timelimit.index = 14
user.index = 15
wait_time = 16 # This is a derived field by customer request
# start - submit = wait time
wall_time = 17 # This is a derived field by customer request
} # log.fields
# Log Parsing Filters
log.parsing_filters.parse = `
# if (state ne 'COMPLETED') then "reject";
if (matches_regular_expression(end, '^([0-9-]*)T([0-9:]*)$')) then (
date = $1;
time = $2;
);
end = date_time_to_epoc((normalize_date(substr(end, 0, 10), 'auto')) . ' ' .
normalize_time(substr(end, 11), 'auto'));
eligible = date_time_to_epoc((normalize_date(substr(eligible, 0, 10),
'auto')) . ' ' . normalize_time(substr(eligible, 11), 'auto'));
start = date_time_to_epoc((normalize_date(substr(start, 0, 10), 'auto')) . '
' . normalize_time(substr(start, 11), 'auto'));
submit = date_time_to_epoc((normalize_date(substr(submit, 0, 10), 'auto')) .
' ' . normalize_time(substr(submit, 11), 'auto'));
# Compute wait_time
wait_time = start - eligible;
# wait_time is less than 0 just ignore it
if ( wait_time < 0 ) then (
wait_time = 0;
);
wall_time = end - start;
`
# Log Filters
log.filters = {
mark_entry = {
label = '$lang_admin.log_filters.mark_entry_label'
comment = '$lang_admin.log_filters.mark_entry_comment'
value = 'events = 1;'
} # mark_entry
} # log.filters
# Database fields
database.fields = {
date_time = ""
day_of_week = ""
hour_of_day = ""
account = ""
eligible = ""
end = ""
jobid = ""
jobname = ""
partition = ""
qos = ""
start = ""
submit = ""
timelimit = ""
user = ""
wall_time = ""
wait_time = ""
} # database.fields
database.numerical_fields = {
events = {
label = "$lang_stats.field_labels.jobs"
default = true
requires_log_field = false
entries_field = true
} # events
cputimeraw = {
# type = "int"
# integer_bits = 64
default = true
display_format_type = "duration_compact"
} # cputimeraw
ncpus = {
type = "float"
display_format_type = "two_digit_fixed"
# type = "int"
# integer_bits = 64
# display_format_type = "integer"
default = true
aggregation_method = "average"
average_denominator_field = "events"
} # ncpus
nnodes = {
type = "float"
display_format_type = "two_digit_fixed"
default = true
# type = "int"
# integer_bits = 64
# display_format_type = "integer"
aggregation_method = "average"
average_denominator_field = "events"
} # nnodes
wall_time = {
# type = "int"
# integer_bits = 64
default = true
display_format_type = "duration_compact"
} # wall_time
wait_time = {
# type = "int"
# integer_bits = 64
default = true
display_format_type = "duration_compact"
} # wait_time
} # database.numerical_fields
statistics.report_fields = {
eligible = {
database_field = "eligible"
display_format_type = "epoc_to_date_time"
label = "{=capitalize(expand(lang_stats.field_labels.eligible))=}"
} # eligible
end = {
database_field = "end"
display_format_type = "epoc_to_date_time"
label = "{=capitalize(expand(lang_stats.field_labels.end))=}"
} # end
start = {
database_field = "start"
display_format_type = "epoc_to_date_time"
label = "{=capitalize(expand(lang_stats.field_labels.start))=}"
} # start
submit = {
database_field = "submit"
display_format_type = "epoc_to_date_time"
label = "{=capitalize(expand(lang_stats.field_labels.submit))=}"
} # submit
wait_time_per_job = {
# type = "int"
# integer_bits = 64
label =
"{=capitalize(expand(lang_stats.field_labels.wait_time_per_job))=}"
database_field = "wait_time"
display_format_type = "duration_compact"
aggregation_method = "average"
average_denominator_field = "events"
} # wait_time_per_job
wall_time_per_job = {
# type = "int"
# integer_bits = 64
label =
"{=capitalize(expand(lang_stats.field_labels.wall_time_per_job))=}"
database_field = "wall_time"
display_format_type = "duration_compact"
aggregation_method = "average"
average_denominator_field = "events"
} # wall_time_per_job
} # statistics.report_fields
create_profile_wizard_options = {
manual_reports_menu = true
report_groups = {
overview.type = "overview"
date_time_group = {
date_time = {
date_filter = {
df = ""
} # date_filter
description = ""
filter = {
expression = ""
filter_items = ""
} # filter
footer = ""
header = ""
label =
"{=capitalize(pluralize(expand(lang_stats.field_labels.date_time)))=}"
report_elements = {
0 = {
label =
"{=capitalize(pluralize(expand(lang_stats.field_labels.date_time)))=}"
type = "table"
show_header_bar = "false"
display_side_by_side = "false"
report_link = ""
description = ""
header = ""
footer = ""
omit_parenthesized_items = "false"
use_overview_for_totals = "false"
date_filter = {
df = ""
} # date_filter
filter = {
expression = ""
} # filter
table_filter_expression = ""
show_graphs = "true"
show_table = "true"
display_graphs_side_by_side = "true"
maximum_table_bar_graph_length = ""
sort_by = "date_time"
sort_direction = "ascending"
show_remainder_row = "true"
show_averages_row = "false"
show_min_row = "false"
show_max_row = "false"
show_totals_row = "true"
number_of_rows = "10"
graphs = {
graph_type = "bar"
y_axis_height = "80"
x_axis_length = "400"
show_percent_on_y_axis = "false"
sort_all_descending = "false"
show_chrono_graph = "true"
} # graphs
pivot_table = {
show_pivot_table = "false"
report_field = ""
number_of_rows = "10"
sort_by = ""
sort_direction = ""
show_averages_row = "false"
show_min_row = "false"
show_max_row = "false"
show_totals_row = "true"
omit_parenthesized_items = "false"
} # pivot_table
columns = {
0 = {
report_field = "date_time"
show_column = true
} # 0
1 = {
report_field = "events"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 1
2 = {
report_field = "cputimeraw"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 2
3 = {
report_field = "nnodes"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 3
4 = {
report_field = "ncpus"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 4
5 = {
report_field = "wall_time"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 5
6 = {
report_field = "wait_time"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 6
7 = {
report_field = "wall_time_per_job"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 7
8 = {
report_field = "wait_time_per_job"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 8
} # columns
} # 0
} # report_elements
show_header_bar = "true"
sync_graph_axis_with_relative_date = "false"
} # date_time
year = {
date_filter = {
df = ""
} # date_filter
description = ""
filter = {
expression = ""
filter_items = ""
} # filter
footer = ""
header = ""
label =
"{=capitalize(pluralize(expand(lang_stats.field_labels.year)))=}"
report_elements = {
0 = {
label =
"{=capitalize(pluralize(expand(lang_stats.field_labels.year)))=}"
type = "table"
show_header_bar = "false"
display_side_by_side = "false"
report_link = ""
description = ""
header = ""
footer = ""
omit_parenthesized_items = "false"
use_overview_for_totals = "false"
date_filter = {
df = ""
} # date_filter
filter = {
expression = ""
} # filter
table_filter_expression = ""
show_graphs = "true"
show_table = "true"
display_graphs_side_by_side = "true"
maximum_table_bar_graph_length = ""
sort_by = "year"
sort_direction = "ascending"
show_remainder_row = "true"
show_averages_row = "false"
show_min_row = "false"
show_max_row = "false"
show_totals_row = "true"
number_of_rows = "10"
graphs = {
graph_type = "bar"
y_axis_height = "80"
x_axis_length = "400"
show_percent_on_y_axis = "false"
sort_all_descending = "false"
show_chrono_graph = "true"
} # graphs
pivot_table = {
show_pivot_table = "false"
report_field = ""
number_of_rows = "10"
sort_by = ""
sort_direction = ""
show_averages_row = "false"
show_min_row = "false"
show_max_row = "false"
show_totals_row = "true"
omit_parenthesized_items = "false"
} # pivot_table
columns = {
0 = {
report_field = "year"
show_column = true
} # 0
1 = {
report_field = "events"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = true
} # 1
2 = {
report_field = "cputimeraw"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 2
3 = {
report_field = "nnodes"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 3
4 = {
report_field = "ncpus"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 4
5 = {
report_field = "wall_time"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 5
6 = {
report_field = "wait_time"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 6
7 = {
report_field = "wall_time_per_job"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 7
8 = {
report_field = "wait_time_per_job"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 8
} # columns
} # 0
} # report_elements
show_header_bar = "true"
sync_graph_axis_with_relative_date = "false"
} # year
month = {
date_filter = {
df = ""
} # date_filter
description = ""
filter = {
expression = ""
filter_items = ""
} # filter
footer = ""
header = ""
label =
"{=capitalize(pluralize(expand(lang_stats.field_labels.month)))=}"
report_elements = {
0 = {
label =
"{=capitalize(pluralize(expand(lang_stats.field_labels.month)))=}"
type = "table"
show_header_bar = "false"
display_side_by_side = "false"
report_link = ""
description = ""
header = ""
footer = ""
omit_parenthesized_items = "false"
use_overview_for_totals = "false"
date_filter = {
df = ""
} # date_filter
filter = {
expression = ""
} # filter
table_filter_expression = ""
show_graphs = "true"
show_table = "true"
display_graphs_side_by_side = "true"
maximum_table_bar_graph_length = ""
sort_by = "month"
sort_direction = "ascending"
show_remainder_row = "true"
show_averages_row = "false"
show_min_row = "false"
show_max_row = "false"
show_totals_row = "true"
number_of_rows = "10"
graphs = {
graph_type = "bar"
y_axis_height = "80"
x_axis_length = "400"
show_percent_on_y_axis = "false"
sort_all_descending = "false"
show_chrono_graph = "true"
} # graphs
pivot_table = {
show_pivot_table = "false"
report_field = ""
number_of_rows = "10"
sort_by = ""
sort_direction = ""
show_averages_row = "false"
show_min_row = "false"
show_max_row = "false"
show_totals_row = "true"
omit_parenthesized_items = "false"
} # pivot_table
columns = {
0 = {
report_field = "month"
show_column = true
} # 0
1 = {
report_field = "events"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = true
} # 1
2 = {
report_field = "cputimeraw"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 2
3 = {
report_field = "nnodes"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 3
4 = {
report_field = "ncpus"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 4
5 = {
report_field = "wall_time"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 5
6 = {
report_field = "wait_time"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 6
7 = {
report_field = "wall_time_per_job"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 7
8 = {
report_field = "wait_time_per_job"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 8
} # columns
} # 0
} # report_elements
show_header_bar = "true"
sync_graph_axis_with_relative_date = "false"
} # month
day = {
date_filter = {
df = ""
} # date_filter
description = ""
filter = {
expression = ""
filter_items = ""
} # filter
footer = ""
header = ""
label = "{=capitalize(pluralize(expand(lang_stats.field_labels.day)))=}"
report_elements = {
0 = {
label =
"{=capitalize(pluralize(expand(lang_stats.field_labels.day)))=}"
type = "table"
show_header_bar = "false"
display_side_by_side = "false"
report_link = ""
description = ""
header = ""
footer = ""
omit_parenthesized_items = "false"
use_overview_for_totals = "false"
date_filter = {
df = ""
} # date_filter
filter = {
expression = ""
} # filter
table_filter_expression = ""
show_graphs = "true"
show_table = "true"
display_graphs_side_by_side = "true"
maximum_table_bar_graph_length = ""
sort_by = "day"
sort_direction = "ascending"
show_remainder_row = "true"
show_averages_row = "false"
show_min_row = "false"
show_max_row = "false"
show_totals_row = "true"
number_of_rows = "10"
graphs = {
graph_type = "bar"
y_axis_height = "80"
x_axis_length = "400"
show_percent_on_y_axis = "false"
sort_all_descending = "false"
show_chrono_graph = "true"
} # graphs
pivot_table = {
show_pivot_table = "false"
report_field = ""
number_of_rows = "10"
sort_by = ""
sort_direction = ""
show_averages_row = "false"
show_min_row = "false"
show_max_row = "false"
show_totals_row = "true"
omit_parenthesized_items = "false"
} # pivot_table
columns = {
0 = {
report_field = "day"
show_column = true
} # 0
1 = {
report_field = "events"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = true
} # 1
2 = {
report_field = "cputimeraw"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 2
3 = {
report_field = "nnodes"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 3
4 = {
report_field = "ncpus"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 4
5 = {
report_field = "wall_time"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 5
6 = {
report_field = "wait_time"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 6
7 = {
report_field = "wall_time_per_job"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 7
8 = {
report_field = "wait_time_per_job"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 8
} # columns
} # 0
} # report_elements
show_header_bar = "true"
sync_graph_axis_with_relative_date = "false"
} # day
day_of_week = {
date_filter = {
df = ""
} # date_filter
description = ""
filter = {
expression = ""
filter_items = ""
} # filter
footer = ""
header = ""
label =
"{=capitalize(pluralize(expand(lang_stats.field_labels.day_of_week)))=}"
report_elements = {
0 = {
label =
"{=capitalize(pluralize(expand(lang_stats.field_labels.day_of_week)))=}"
type = "table"
show_header_bar = "false"
display_side_by_side = "false"
report_link = ""
description = ""
header = ""
footer = ""
omit_parenthesized_items = "false"
use_overview_for_totals = "false"
date_filter = {
df = ""
} # date_filter
filter = {
expression = ""
} # filter
table_filter_expression = ""
show_graphs = "true"
show_table = "true"
display_graphs_side_by_side = "true"
maximum_table_bar_graph_length = ""
sort_by = "day_of_week"
sort_direction = "ascending"
show_remainder_row = "true"
show_averages_row = "false"
show_min_row = "false"
show_max_row = "false"
show_totals_row = "true"
number_of_rows = "7"
graphs = {
graph_type = "bar"
y_axis_height = "80"
x_axis_length = "400"
show_percent_on_y_axis = "false"
sort_all_descending = "false"
show_chrono_graph = "true"
} # graphs
pivot_table = {
show_pivot_table = "false"
report_field = ""
number_of_rows = "10"
sort_by = ""
sort_direction = ""
show_averages_row = "false"
show_min_row = "false"
show_max_row = "false"
show_totals_row = "true"
omit_parenthesized_items = "false"
} # pivot_table
columns = {
0 = {
report_field = "day_of_week"
show_column = true
} # 0
1 = {
report_field = "events"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = true
} # 1
2 = {
report_field = "cputimeraw"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 2
3 = {
report_field = "nnodes"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 3
4 = {
report_field = "ncpus"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 4
5 = {
report_field = "wall_time"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 5
6 = {
report_field = "wait_time"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 6
7 = {
report_field = "wall_time_per_job"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 7
8 = {
report_field = "wait_time_per_job"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 8
} # columns
} # 0
} # report_elements
show_header_bar = "true"
sync_graph_axis_with_relative_date = "false"
} # day_of_week
hour_of_day = {
date_filter = {
df = ""
} # date_filter
description = ""
filter = {
expression = ""
filter_items = ""
} # filter
footer = ""
header = ""
label =
"{=capitalize(pluralize(expand(lang_stats.field_labels.hour_of_day)))=}"
report_elements = {
0 = {
label =
"{=capitalize(pluralize(expand(lang_stats.field_labels.hour_of_day)))=}"
type = "table"
show_header_bar = "false"
display_side_by_side = "false"
report_link = ""
description = ""
header = ""
footer = ""
omit_parenthesized_items = "false"
use_overview_for_totals = "false"
date_filter = {
df = ""
} # date_filter
filter = {
expression = ""
} # filter
table_filter_expression = ""
show_graphs = "true"
show_table = "true"
display_graphs_side_by_side = "true"
maximum_table_bar_graph_length = ""
sort_by = "hour_of_day"
sort_direction = "ascending"
show_remainder_row = "true"
show_averages_row = "false"
show_min_row = "false"
show_max_row = "false"
show_totals_row = "true"
number_of_rows = "24"
graphs = {
graph_type = "bar"
y_axis_height = "80"
x_axis_length = "400"
show_percent_on_y_axis = "false"
sort_all_descending = "false"
show_chrono_graph = "true"
} # graphs
pivot_table = {
show_pivot_table = "false"
report_field = ""
number_of_rows = "10"
sort_by = ""
sort_direction = ""
show_averages_row = "false"
show_min_row = "false"
show_max_row = "false"
show_totals_row = "true"
omit_parenthesized_items = "false"
} # pivot_table
columns = {
0 = {
report_field = "hour_of_day"
show_column = true
} # 0
1 = {
report_field = "events"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = true
} # 1
2 = {
report_field = "cputimeraw"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 2
3 = {
report_field = "nnodes"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 3
4 = {
report_field = "ncpus"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 4
5 = {
report_field = "wall_time"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 5
6 = {
report_field = "wait_time"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 6
7 = {
report_field = "wall_time_per_job"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 7
8 = {
report_field = "wait_time_per_job"
show_column = true
show_percent_column = false
show_bar_column = false
show_graph = false
} # 8
} # columns
} # 0
} # report_elements
show_header_bar = "true"
sync_graph_axis_with_relative_date = "false"
} # hour_of_day
}
#single_page_summary = true
account = {
report_elements = {
0 = {
label =
"{=capitalize(pluralize(expand(lang_stats.field_labels.account)))=}"
show_graphs = "true"
show_table = "true"
sort_by = "cputimeraw"
sort_direction = "descending"
number_of_rows = "20"
graphs.graph_type = "pie"
columns = {
0.report_field = "account"
1 = {
report_field = "cputimeraw"
show_percent_column = true
show_bar_column = true
show_graph = true
} # 1
2 = {
report_field = "events"
show_percent_column = true
show_bar_column = true
show_graph = true
} # 2
3.report_field = "ncpus"
4.report_field = "nnodes"
5.report_field = "wall_time"
6.report_field = "wait_time"
} # columns
} # 0
} # report_elements
} # account
user = {
report_elements = {
0 = {
label =
"{=capitalize(pluralize(expand(lang_stats.field_labels.user)))=}"
show_graphs = "true"
show_table = "true"
sort_by = "cputimeraw"
sort_direction = "descending"
number_of_rows = "20"
graphs.graph_type = "pie"
columns = {
0.report_field = "user"
1 = {
report_field = "cputimeraw"
show_percent_column = true
show_bar_column = true
show_graph = true
} # 1
2 = {
report_field = "events"
show_percent_column = true
show_bar_column = true
show_graph = true
} # 2
3.report_field = "ncpus"
4.report_field = "nnodes"
5.report_field = "wall_time"
6.report_field = "wait_time"
} # columns
} # 0
} # report_elements
} # user
account_utilization_by_user = {
label = "Account Utilization by User"
report_elements = {
0 = {
label =
"{=capitalize(pluralize(expand(lang_stats.field_labels.account)))=}"
show_graphs = "true"
show_table = "true"
sort_by = "cputimeraw"
sort_direction = "descending"
number_of_rows = "20"
graphs.graph_type = "pie"
pivot_table = {
show_pivot_table = "true"
report_field = "user"
} # pivot_table
columns = {
0.report_field = "account"
1 = {
report_field = "cputimeraw"
show_percent_column = true
show_bar_column = true
show_graph = true
} # 1
2 = {
report_field = "events"
show_percent_column = true
show_bar_column = true
show_graph = true
} # 2
3.report_field = "ncpus"
4.report_field = "nnodes"
5.report_field = "wall_time"
6.report_field = "wait_time"
} # columns
} # 0
} # report_elements
} # account_utilization_by_user
partition = {
report_elements = {
0 = {
label =
"{=capitalize(pluralize(expand(lang_stats.field_labels.partition)))=}"
show_graphs = "true"
show_table = "true"
sort_by = "cputimeraw"
sort_direction = "descending"
number_of_rows = "20"
graphs.graph_type = "pie"
columns = {
0.report_field = "partition"
1 = {
report_field = "cputimeraw"
show_percent_column = true
show_bar_column = true
show_graph = true
} # 1
2 = {
report_field = "events"
show_percent_column = true
show_bar_column = true
show_graph = true
} # 2
3.report_field = "ncpus"
4.report_field = "nnodes"
5.report_field = "wall_time"
6.report_field = "wait_time"
} # columns
} # 0
} # report_elements
} # partition
qos = {
label = "{=capitalize(expand(lang_stats.field_labels.qos))=}"
report_elements = {
0 = {
show_graphs = "true"
show_table = "true"
sort_by = "cputimeraw"
sort_direction = "descending"
number_of_rows = "20"
graphs.graph_type = "pie"
columns = {
0.report_field = "qos"
1 = {
report_field = "cputimeraw"
show_percent_column = true
show_bar_column = true
show_graph = true
} # 1
2 = {
report_field = "events"
show_percent_column = true
show_bar_column = true
show_graph = true
} # 2
3.report_field = "ncpus"
4.report_field = "nnodes"
5.report_field = "wall_time"
6.report_field = "wait_time"
} # columns
} # 0
} # report_elements
} # qos
timelimit = {
report_elements = {
0 = {
label =
"{=capitalize(pluralize(expand(lang_stats.field_labels.timelimit)))=}"
show_graphs = "true"
show_table = "true"
sort_by = "events"
sort_direction = "descending"
number_of_rows = "20"
graphs.graph_type = "pie"
columns = {
0.report_field = "timelimit"
1 = {
report_field = "cputimeraw"
show_percent_column = true
show_bar_column = true
show_graph = true
} # 1
2 = {
report_field = "events"
show_percent_column = true
show_bar_column = true
show_graph = true
} # 2
3.report_field = "ncpus"
4.report_field = "nnodes"
5.report_field = "wall_time"
6.report_field = "wait_time"
} # columns
} # 0
} # report_elements
} # timelimit
log_detail = {
sort_by = "jobid"
sort_direction = "ascending"
number_of_rows = "50"
columns = {
0.report_field = "jobid"
1.report_field = "jobname"
2.report_field = "user"
3.report_field = "account"
4.report_field = "nnodes"
5.report_field = "ncpus"
6.report_field = "partition"
7.report_field = "qos"
8.report_field = "cputimeraw"
9.report_field = "timelimit"
10.report_field = "submit"
11.report_field = "eligible"
12.report_field = "start"
13.report_field = "end"
14.report_field = "wall_time"
15.report_field = "wait_time"
} # columns
} # log_detail
} # report_groups
} # create_profile_wizard_options
} # slurm
--- lang_stats.cfg.orig 2013-01-28 09:35:23.872008252 -0600
+++ lang_stats.cfg 2013-01-25 12:54:07.232740708 -0600
@@ -6471,8 +6471,8 @@
jobname = "job name"
jobs = "jobs"
maxrss = "maximum RSS"
- ncpus = "CPUs"
- nnodes = "nodes"
+ ncpus = "CPUs/job"
+ nnodes = "nodes/job"
ntasks = "tasks"
partition = "partition"
qos = "quality of service"
@@ -6482,6 +6482,9 @@
timelimit = "time limit"
uid = "user ID"
wait_time = "wait time"
+ wait_time_per_job = "wait time/job"
+ wall_time = "wall time"
+ wall_time_per_job = "wall time/job"
} # field_labels
field_labels_by_log_format = {