TY - GEN
T1 - INSPECTOR
T2 - 36th IEEE International Conference on Distributed Computing Systems, ICDCS 2016
AU - Thalheim, Jorg
AU - Bhatotia, Pramod
AU - Fetzer, Christof
N1 - Publisher Copyright:
© 2016 IEEE.
PY - 2016/8/8
Y1 - 2016/8/8
N2 - Data provenance strives for explaining how thecomputation was performed by recording a trace of the execution. The provenance trace is useful across a wide-range of workflowsto improve the dependability, security, and efficiency of softwaresystems. In this paper, we present Inspector, a POSIX-compliantdata provenance library for shared-memory multithreadedprograms. The Inspector library is completely transparent andeasy to use: it can be used as a replacement for the pthreadslibrary by a simple exchange of libraries linked, without evenrecompiling the application code. To achieve this result, we present a parallel provenancealgorithm that records control, data, and schedule dependenciesusing a Concurrent Provenance Graph (CPG). We implementedour algorithm to operate at the compiled binary code levelby leveraging a combination of OS-specific mechanisms, andrecently released Intel PT ISA extensions as part of the Broadwellmicro-architecture. Our evaluation on a multicore platform usingapplications from multithreaded benchmarks suites (PARSECand Phoenix) shows reasonable provenance overheads for amajority of applications. Lastly, we briefly describe three case-studies where thegeneric interface exported by Inspector is being used toimprove the dependability, security, and efficiency of systems. The Inspector library is publicly available for further use in awide range of other provenance workflows.
AB - Data provenance strives for explaining how thecomputation was performed by recording a trace of the execution. The provenance trace is useful across a wide-range of workflowsto improve the dependability, security, and efficiency of softwaresystems. In this paper, we present Inspector, a POSIX-compliantdata provenance library for shared-memory multithreadedprograms. The Inspector library is completely transparent andeasy to use: it can be used as a replacement for the pthreadslibrary by a simple exchange of libraries linked, without evenrecompiling the application code. To achieve this result, we present a parallel provenancealgorithm that records control, data, and schedule dependenciesusing a Concurrent Provenance Graph (CPG). We implementedour algorithm to operate at the compiled binary code levelby leveraging a combination of OS-specific mechanisms, andrecently released Intel PT ISA extensions as part of the Broadwellmicro-architecture. Our evaluation on a multicore platform usingapplications from multithreaded benchmarks suites (PARSECand Phoenix) shows reasonable provenance overheads for amajority of applications. Lastly, we briefly describe three case-studies where thegeneric interface exported by Inspector is being used toimprove the dependability, security, and efficiency of systems. The Inspector library is publicly available for further use in awide range of other provenance workflows.
KW - Data provenance
KW - Debugging multi-threaded programs
KW - Intel Processor Trace (PT)
KW - Operating systems
KW - Parallel programming
UR - http://www.scopus.com/inward/record.url?scp=84985930737&partnerID=8YFLogxK
U2 - 10.1109/ICDCS.2016.86
DO - 10.1109/ICDCS.2016.86
M3 - Conference contribution
AN - SCOPUS:84985930737
T3 - Proceedings - International Conference on Distributed Computing Systems
SP - 25
EP - 34
BT - Proceedings - 2016 IEEE 36th International Conference on Distributed Computing Systems, ICDCS 2016
PB - Institute of Electrical and Electronics Engineers Inc.
Y2 - 27 June 2016 through 30 June 2016
ER -