Simulators and empirical profiling data are often used to understand how suitable a specific hardware architecture is for an application. However, simulators can be slow, and empirical profiling-based methods can only provide insights about the existing hardware on which the applications are executed. While the insights obtained in this way are valuable, they cannot be used to evaluate a large number of system designs efficiently.In this paper, we introduce an alternative to these approaches that is hardware-agnostic and enables fast designspace exploration. We propose a framework based on the LLVM compiler infrastructure that is capable of analyzing the inherent instruction-level parallelism and memory access patterns in sequential and parallel applications. The analysis is performed per thread or process during application execution. To illustrate the potential of the framework, we provide a detailed characterization of a representative benchmark for graph-based analytics, Graph 500. In addition to showcasing our tool's capabilities, our study complements previous Graph 500 characterization work by providing an analysis of the intrinsic properties of various implementations of the benchmark. Finally, we show how analytical models can leverage the software properties measured by our framework to enable fast system design-space exploration.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.