@@ -236,7 +236,7 @@ def draw_lines(start, total_duration, minute_scale, scale):
236
236
# Iterate through the lines and create html line markers string
237
237
for line in range (num_lines ):
238
238
# Line object
239
- new_line = "<hr class='line' width='100 %%' style='top:%dpx;'>" % next_line
239
+ new_line = "<hr class='line' width='98 %%' style='top:%dpx;'>" % next_line
240
240
result += new_line
241
241
# Time digits
242
242
time = "<p class='time' style='top:%dpx;'> %02d:%02d </p>" % \
@@ -345,21 +345,6 @@ def draw_nodes(start, nodes_list, cores, minute_scale, space_between_minutes,
345
345
# Return html string for nodes
346
346
return result
347
347
348
- # def draw_thread_bar(threads,space_between_minutes, minute_scale, color):
349
- # result = "<p class='time' style='top:198px;left:900px;'>Threads</p>"
350
- #
351
- # scale = float(space_between_minutes/float(minute_scale))
352
- # space_between_minutes = float(space_between_minutes/60.0)
353
- #
354
- # for i in range(len(threads)):
355
- # #print threads[i]
356
- # width = threads[i] * 10
357
- # t = (float(i*scale*minute_scale)/60.0) + 220
358
- # bar = "<div class='bar' style='height:"+ str(space_between_minutes) + "px;width:"+ str(width) +"px;left:900px;top:"+str(t)+"px'></div>"
359
- # result += bar
360
- #
361
- # return result
362
-
363
348
def draw_resource_bar (start_time , finish_time , time_series , space_between_minutes ,
364
349
minute_scale , color , left , resource ):
365
350
'''
@@ -479,7 +464,7 @@ def generate_gantt_chart(logfile, cores, minute_scale=10,
479
464
<head>
480
465
<style>
481
466
#content{
482
- width:100 %;
467
+ width:99 %;
483
468
height:100%;
484
469
position:absolute;
485
470
}
@@ -518,11 +503,28 @@ def generate_gantt_chart(logfile, cores, minute_scale=10,
518
503
height: 1px;
519
504
background-color: red;
520
505
}
506
+ .label {
507
+ width:20px;
508
+ height:20px;
509
+ opacity: 0.7;
510
+ display: inline-block;
511
+ }
521
512
</style>
522
513
</head>
523
514
524
515
<body>
525
- <div id="content">'''
516
+ <div id="content">
517
+ <div style="display:inline-block;">
518
+ '''
519
+
520
+ close_header = '''
521
+ </div>
522
+ <div style="display:inline-block;margin-left:60px;vertical-align: top;">
523
+ <p><span><div class="label" style="background-color:#03969D;"></div> Estimated Resource</span></p>
524
+ <p><span><div class="label" style="background-color:#90BBD7;"></div> Actual Resource</span></p>
525
+ <p><span><div class="label" style="background-color:#f00;"></div> Failed Node</span></p>
526
+ </div>
527
+ '''
526
528
527
529
# Read in json-log to get list of node dicts
528
530
nodes_list = log_to_dict (logfile )
@@ -541,7 +543,7 @@ def generate_gantt_chart(logfile, cores, minute_scale=10,
541
543
html_string += '<p>Duration: ' + "{0:.2f}" .format (duration / 60 ) + ' minutes</p>'
542
544
html_string += '<p>Nodes: ' + str (len (nodes_list ))+ '</p>'
543
545
html_string += '<p>Cores: ' + str (cores ) + '</p>'
544
-
546
+ html_string += close_header
545
547
# Draw nipype nodes Gantt chart and runtimes
546
548
html_string += draw_lines (start_node ['start' ], duration , minute_scale ,
547
549
space_between_minutes )
@@ -552,19 +554,20 @@ def generate_gantt_chart(logfile, cores, minute_scale=10,
552
554
estimated_mem_ts = calculate_resource_timeseries (events , 'estimated_memory_gb' )
553
555
runtime_mem_ts = calculate_resource_timeseries (events , 'runtime_memory_gb' )
554
556
# Plot gantt chart
557
+ resource_offset = 120 + 30 * cores
555
558
html_string += draw_resource_bar (start_node ['start' ], last_node ['finish' ], estimated_mem_ts ,
556
- space_between_minutes , minute_scale , '#90BBD7' , 1200 , 'Memory' )
559
+ space_between_minutes , minute_scale , '#90BBD7' , resource_offset * 2 + 120 , 'Memory' )
557
560
html_string += draw_resource_bar (start_node ['start' ], last_node ['finish' ], runtime_mem_ts ,
558
- space_between_minutes , minute_scale , '#03969D' , 1200 , 'Memory' )
561
+ space_between_minutes , minute_scale , '#03969D' , resource_offset * 2 + 120 , 'Memory' )
559
562
560
563
# Get threads timeseries
561
564
estimated_threads_ts = calculate_resource_timeseries (events , 'estimated_threads' )
562
565
runtime_threads_ts = calculate_resource_timeseries (events , 'runtime_threads' )
563
566
# Plot gantt chart
564
567
html_string += draw_resource_bar (start_node ['start' ], last_node ['finish' ], estimated_threads_ts ,
565
- space_between_minutes , minute_scale , '#90BBD7' , 600 , 'Threads' )
568
+ space_between_minutes , minute_scale , '#90BBD7' , resource_offset , 'Threads' )
566
569
html_string += draw_resource_bar (start_node ['start' ], last_node ['finish' ], runtime_threads_ts ,
567
- space_between_minutes , minute_scale , '#03969D' , 600 , 'Threads' )
570
+ space_between_minutes , minute_scale , '#03969D' , resource_offset , 'Threads' )
568
571
569
572
#finish html
570
573
html_string += '''
0 commit comments