Jupiter Evaluation¶
We have built a runtime profiler for the purpose of gathering and analyzing relevant performance statistics while running Jupiter. The runtime profiler’s purpose is to collect timestamp information either for all the tasks, compute nodes and incoming files, or file transfer process. This built-in runtime profiler runs at the same time with the deployed system without any further actions.
Automatic evaluation script¶
We wrote the optional script evaluate.py
inside CIRCE , which you can choose to run or not in start_home.sh
. This script is only for testing purpose of Coded DNAD (Coded Network Anomaly Detection Application). After choosing this option and build the corresponding image, the script will be started automatically after CIRCE
finishes dispatching all the tasks on all the computing nodes.
Collecting task performance statistics¶
This part of runtime profiler is integrated with CIRCE , the dispatcher tool of Jupiter You can find corresponding runtime profiler implementation in monitor.py
and scheduler.py
scripts of CIRCE
. Every compute node has a Flask server which can send related runtime information to the Flask server on the home node of CIRCE
. All the task-related runtime statistics are output at runtime_tasks.txt
on the CIRCE home node
under the following collumn-based format: Task_name
, local_input_file
, Enter_time
, Execute_time
, Finish_time,Elapse_time
, Duration_time
, Waiting_time
. This runtime file is only available after the evaluation.py
finishes running.
- Enter time: time the input file enter the queue
- Execute time: time the input file is processed
- Finish time: time the output file is generated
- Elapse time: total time since the input file is created till the output file is created
- Duration time: total execution time of the task
- Waiting time: total time since the input file is created till it is processed
Collecting file transfer performance statistics¶
This part of runtime profiler is implemented with the integration interface Jupiter, which servers the purpose of collecting runtime information of different data transfer methods in order for comparison. You can find corresponding runtime profiler implementation in ``CIRCE``integration inferface.
- There are two options, whether collecting statistics only in the senders, or in both the senders and the receivers. This can be configured in
jupiter_config.ini
as theRUNTIME
variable.- All the data transfer related runtime statistics of the senders are output at
runtime_transfer_sender.txt
on each computing node under the following collumn-based format:Node_name, Transfer_Type, File_path, Time_stamp
.- All the data transfer related runtime statistics of the receivers are output at
runtime_transfer_receivers.txt
on each computing node under the following collumn-based format:Node_name, Transfer_Type, File_path, Time_stamp
.- If the value of
Time_stamp
is-1
, it indicates that the file has not been transfered successfully; else it indicates the timestamp that the file starts to be transfered and the file has been transfered successfully.