Over the past few years, there has been a surge in the popularity of binary optimizers such as BOLT, Propeller, Janus and HALO. These tools use dynamic profiling information to make optimization decisions. Although effective, gathering runtime data presents developers with inconveniences such as unrepresentative inputs, the need to accommodate software modifications, and longer build times. In this paper, we revisit the static profiling technique proposed by Calder et al. in the late 90’s, and investigate its application to drive binary optimizations, in the context of the BOLT binary optimizer, as a replacement for dynamic profiling. A few core modifications to Calder et al.’s original proposal, consisting of new program features and a new regression model, are sufficient to enable some of the gains obtained through runtime profiling. An evaluation of BOLT powered by our static profiler on four large benchmarks (clang, GCC, MySQL and PostgreSQL) yields binaries that are 5.47 % faster than the executables produced by clang -O3.
The PnP (Pipe 'n Prune) approach is considered one of the most promising approaches for partial cube computation over distributed memory computer architectures, however it generates a huge amount of redundant data. In general, PnP does not consider data uniformity, named skew, when partitioning its workload and, thus, it imposes a maximum data redundancy even with uniform data. Due to this scenario, we implement P2CDM (acronym of Parallel Cube Computation with Distributed Memory) approach which has minimized communication and low data redundancy. Globally, at the entire cluster, P2CDM automatically generates data redundancy only for skewed values among all dimensions of a Data Warehouse. Locally, at each host, P2CDM provides cube cells pruning using MCG approach. The result is a distributed approach that computes massive full or partial data cubes over a cluster of commodity PCs. The experiments demonstrated that both approaches have similar speedup, but P2CDM approach is 20-25% faster and consumes 30-40% less memory at each host of the cluster, when compared to PnP approach.
Profiling is one of the most effective enablers of compiler optimizations. Reports of speedups of 20-30% on top of highly optimized codes are common in the industry. Despite these gains, profiling is rarely used during development — rather, it is used during the generation of production-ready executables. Collecting profile information takes time, and reusing it across different versions of the same software leads to poor results, particularly for binary-level optimizations: small changes to the code might invalidate large portions of otherwise good data. This paper proposes a methodology to mitigate this problem. When mapping profile information from one program to a newer version of it, we use branch features, instead of addresses or hash of instructions, as anchor points between programs. Branch features have been used for decades as a way to predict the outcome of branches: they are characteristics of the branch, such as direction and opcode. By choosing good feature sets, it is possible to minimize collisions between branches, so that different branches seldom share the same features. We have modified the BOLT binary optimizer to use branch features to map profile information across programs. By optimizing three new versions of four large executables — Clang, GCC, MySQL, and PostgreSQL — we show that the new approach to reuse profile data yields speedups of about 8.00% over Clang -O3. In contrast, BOLT’s default mapping, which uses relative addresses as anchor points, yields speedups of 6.06%. Previous work based on hashing of basic blocks yields speedups of 5.02%.
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.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.