List of Tools:
Intel Parallel Studio:
“Intel Parallel Studio XE is a software
development product developed by Intel that facilitates native code development
on Windows, macOS and Linux in C++/C and Fortran for parallel computing. Parallel
programming enables software programs to take advantage of multi-core
processors from Intel and other processor vendors.”
“predictive profiling tool based on dynamic
analysis to explore opportunities and bottlenecks for parallel execution of C
and C++ code.”
that tool offers:
Generate trace by getting two types of input,
capturing all runtime events and Function calls
providing intermediate code as an input
Frameworks for binary analysis
Pin Tool (used in Parceive)
Pin inject analysis result into SQLite database
which consists of runtime events (function calls or memory access) and meta-information
(execution time or variable names)
Parceive incorporate these information for data
Function Call and Function Return
Information about memory type, memory address,
Handles heap memory.
For concurrent software this tool captures
thread operation and synchronization
Since the tool offer query based analysis, they
have written multiple queries to get the required information form the trace
that has been generated by the PIN Tool.
After injecting information into database, the
tool queries the database for the required information, like data dependencies
In the Visualization section they have provided
a graph that shows the executed function, accessed memory location,
Different color to show memory types
In this tool Function view graph is used to visualize
the analyzed data. This graph shows Functions in rectangle, memory location in circle
and memory access in the form of edges. Execution time of cumulated function
call has shown in the different colors.
related section author has compared the goals of Parceive with the Intel Advisor.
related work section author has shown some interests on Intel’s dynamic analysis
tool named as Intel Parallel Advisor (which is also part of Intel’s Parallel
studio suite) and Pareon from Vector Fabrics.
“Intel Parallel Advisor: Vectorization advisor is designed to help you
add vectorization to your existing application and analyze the efficiency of
the current vectorization. This application included different approaches like Survey
Report (to analyze where the time has been spent. Survey report shows the hot
loop information about whether they have been vectorized or not), Trip count
analysis (this check how many time loops has been iterated and hope to
Vector Fabrics: To detect errors Pareon builds an accurate picture of software’s
behavior and only then Pareon can pin point subtle mistakes cause havoc when
the software is deployed in the field”
Additionally, the author has described Parceive’s features like parallel
pattern, different views like call graph or speedup curves. Author also said
that his tool doesn’t require manual annotation.
“Kremlin” and “Embla” have been described as a research perspective.
However, these two tools focus on functional parallelism and critical path
based detection of parallelism. Author defines his goal from parallelism is to
detect validation and optimization of parallelization scenarios that’s why
author has incorporated dependency analysis, profile analysis, detection of
parallelism-inhibiting problem to show parallel candidates. There is another tool mentioned in the paper “The
Prospector tool suite” this suite include profiler for loop, data dependencies,
speedup predictor, and post analyzer. Same like Parceive it uses binary
instrumentations as an input but like tool lack of visual representation of runtime
code behavior and the software structure graphically.