Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F102882528
trace-statistics.py
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Tue, Feb 25, 04:24
Size
2 KB
Mime Type
text/x-c++
Expires
Thu, Feb 27, 04:24 (1 d, 20 h)
Engine
blob
Format
Raw Data
Handle
24448158
Attached To
R3704 elastic-yarn
trace-statistics.py
View Options
import
json
import
pprint
import
sys
import
re
#shameless copy paste from json/decoder.py
FLAGS
=
re
.
VERBOSE
|
re
.
MULTILINE
|
re
.
DOTALL
WHITESPACE
=
re
.
compile
(
r'[ \t\n\r]*'
,
FLAGS
)
class
ConcatJSONDecoder
(
json
.
JSONDecoder
):
def
decode
(
self
,
s
,
_w
=
WHITESPACE
.
match
):
s_len
=
len
(
s
)
objs
=
[]
end
=
0
while
end
!=
s_len
:
obj
,
end
=
self
.
raw_decode
(
s
,
idx
=
_w
(
s
,
end
)
.
end
())
end
=
_w
(
s
,
end
)
.
end
()
objs
.
append
(
obj
)
return
objs
all_total_tasks
=
0
all_total_jobs
=
0
all_sum_task_dur
=
0
all_sum_task_mem
=
0
for
file
in
sys
.
argv
[
1
:]:
total_tasks
=
0
total_jobs
=
0
sum_task_dur
=
0
sum_task_mem
=
0
min_task_dur
=
-
1
max_task_dur
=
-
1
min_task_mem
=
-
1
max_task_mem
=
-
1
tasks_per_job
=
[]
print
" **** FILE: "
+
file
+
" **** "
with
open
(
file
,
"r"
)
as
f
:
data
=
json
.
load
(
f
,
cls
=
ConcatJSONDecoder
)
for
job
in
data
:
for
task
in
job
[
u'job.tasks'
]:
nr_tasks
=
task
[
u'c.nr'
]
task_dur
=
task
[
u'c.dur'
]
task_mem
=
task
[
u'c.mem'
]
total_tasks
+=
int
(
nr_tasks
)
sum_task_dur
+=
int
(
nr_tasks
*
task_dur
)
sum_task_mem
+=
int
(
nr_tasks
*
task_mem
)
if
task_dur
<
min_task_dur
or
min_task_dur
==
-
1
:
min_task_dur
=
task_dur
if
task_dur
>
max_task_dur
or
max_task_dur
==
-
1
:
max_task_dur
=
task_dur
if
task_mem
<
min_task_mem
or
min_task_mem
==
-
1
:
min_task_mem
=
task_mem
if
task_mem
>
max_task_mem
or
max_task_mem
==
-
1
:
max_task_mem
=
task_mem
tasks_per_job
.
append
(
total_tasks
)
total_jobs
+=
1
all_total_jobs
+=
total_jobs
all_total_tasks
+=
total_tasks
all_sum_task_dur
+=
sum_task_dur
all_sum_task_mem
+=
sum_task_mem
print
"Total number of jobs: "
+
str
(
total_jobs
)
print
"Total number of tasks: "
+
str
(
total_tasks
)
print
"Tasks per job (average): "
+
str
(
total_tasks
/
total_jobs
)
print
"Task duration [min, weighted avg, max]: ["
+
str
(
min_task_dur
)
+
", "
+
str
(
sum_task_dur
/
total_tasks
)
+
", "
+
str
(
max_task_dur
)
+
"]"
print
"Task memory [min, weighted avg, max]: ["
+
str
(
min_task_mem
)
+
", "
+
str
(
sum_task_mem
/
total_tasks
)
+
", "
+
str
(
max_task_mem
)
+
"]"
print
"============================================================"
print
"Total number of jobs (all traces): "
+
str
(
all_total_jobs
)
print
"Total number of tasks (all traces): "
+
str
(
all_total_tasks
)
print
"Total tasks per job (average): "
+
str
(
all_total_tasks
/
all_total_jobs
)
print
"Task duration (weighted avg) (all traces): "
+
str
(
all_sum_task_dur
/
all_total_tasks
)
print
"Task memory (weighted avg) (all traces): "
+
str
(
all_sum_task_mem
/
all_total_tasks
)
print
"============================================================"
Event Timeline
Log In to Comment