Adding more extensive logging functionality will allow a better understanding of the performance of individual components (aiding in the development of a performance model,) be a potential means of troubleshooting issues, and enable identification of the critical path of FLiT. This information may be used to predict performance for potential adopters, as well as to direct future development of the tool.
Suggested change:
Add command line option --enable-logging for flit and flit_bisect to log individual events.
For safety in concurrency, unique logs can be written to $FLIT_PATH/data/event_logs from each process and later aggregated for processing. Each file name should have a unique identifier for the node and process writing to it, and should contain at least:
Event name / identifier
Timestamp, in nanosecond resolution
Notes (for any other relevant information in a given event)
Log entries may be written in JSON (or perhaps in tab-delimited plaintext,) manually wrapped around relevant events within their respective files using:
Python: logging library
C++: chrono library
Make files: echo directly into log files
These files can either be aggregated into a single complete.log file utilizing the same format with an additional identifier field denoting the process identifiers, or into a sqlite database to match the style of existing data processing with FLiT results.
Feature Request
Description:
Adding more extensive logging functionality will allow a better understanding of the performance of individual components (aiding in the development of a performance model,) be a potential means of troubleshooting issues, and enable identification of the critical path of FLiT. This information may be used to predict performance for potential adopters, as well as to direct future development of the tool.
Suggested change:
Add command line option
--enable-logging
for flit and flit_bisect to log individual events.For safety in concurrency, unique logs can be written to
$FLIT_PATH/data/event_logs
from each process and later aggregated for processing. Each file name should have a unique identifier for the node and process writing to it, and should contain at least:Log entries may be written in JSON (or perhaps in tab-delimited plaintext,) manually wrapped around relevant events within their respective files using:
logging
librarychrono
libraryecho
directly into log filesThese files can either be aggregated into a single
complete.log
file utilizing the same format with an additional identifier field denoting the process identifiers, or into a sqlite database to match the style of existing data processing with FLiT results.