ANALYZING PARALLEL PROGRAMS WITH PIN

被引:46
作者
Bach, Moshe [1 ]
Charney, Mark
Cohn, Robert
Demikhovsky, Elena [1 ]
Devor, Tevi
Hazelwood, Kim [2 ]
Jaleel, Aamer
Luk, Chi-Keung
Lyons, Gail
Patil, Harish
Tal, Ady
机构
[1] Intel, Israel Design Ctr, Santa Clara, CA 95052 USA
[2] Univ Virginia, Charlottesville, VA 22903 USA
关键词
Computer architectures; Computer systems organization; Multiple processor systems; Operating systems; Processor architectures; Software engineering;
D O I
10.1109/MC.2010.60
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Developers can build tools to detect and examine dynamic behavior including data races, memory system behavior, and parallelizable loops using Pin. Pin is a software system that performs runtime binary instrumentation of Linux and Microsoft Windows applications. Pin's aim is to provide an instrumentation platform for building a wide variety of program analysis tools, called pintools. Pin eliminates the need to modify or recompile the application's source and supports the instrumentation of programs that dynamically generate code. A pintool consists of instrumentation, analysis, and callback routines. Pin uses a just-in-time (JIT) compiler to insert instrumentation into a running application. The JIT compiler recompiles and instruments small chunks of binary instructions immediately prior to executing them. Pin overwrites the entry point of procedures with jumps (called probes) to dynamically generated instrumentation. Intel Parallel Inspector uses Pin to instrument the running program and collect the information necessary to detect errors.
引用
收藏
页码:34 / 41
页数:8
相关论文
共 11 条
[1]  
Banerjee U., 2006, PADTAD 06, P69, DOI [10.1145/1147403.1147416, DOI 10.1145/1147403.1147416]
[2]  
GRAHAM SL, 1982, P 1982 SIGPLAN S COM, P120, DOI DOI 10.1145/800230.806987
[3]  
Jaleel Aamer., 2008, Proceedings of the Fourth Annual Workshop on Modeling, Benchmarking and Simulation, P28
[4]  
KIM M, 2009, 2009001 GEORG I TECH
[5]  
Kiriansky V, 2002, USENIX ASSOCIATION PROCEEDINGS OF THE 11TH USENIX SECURITY SYMPOSIUM, P191
[6]  
LUK CK, 2005, PLDI 05, P190, DOI [DOI 10.1145/1065010.1065034, DOI 10.1145/1064978.1065034]
[7]  
NARAYANASAMY S, 2006, P JOINT INT C MEAS M, P216, DOI DOI 10.1145/1140277.1140303
[8]   Valgrind: A Framework for Heavyweight Dynamic Binary Instrumentation [J].
Nethercote, Nicholas ;
Seward, Julian .
PLDI'07: PROCEEDINGS OF THE 2007 ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, 2007, :89-100
[9]  
Patil H.A., 2010, INT C SIGNAL PROCESS, P1
[10]  
Reinders J., 2007, Intel threading building blocks: outfitting C++ for multi-core processor parallelism