img

Notice détaillée

On a technique for transparently empowering classical compiler optimizations on multithreaded code

Article Ecrit par: Joisha, Pramod G. ; Schreiber, Robert S. ; Banerjee, Prithviraj ; Boehm, Hans-J. ; Chakrabarti, Dhruva R. ;

Résumé: A large body of data-flow analyses exists for analyzing and optimizing sequential code. Unfortunately, much of it cannot be directly applied on parallel code, for reasons of correctness. This article presents a technique to automatically, aggressively, yet safely apply sequentially-sound data-flow transformations, without change, on shared-memory programs. The technique is founded on the notion of program references being “siloed” on certain control-flow paths. Intuitively, siloed references are free of interference from other threads within the confines of such paths. Data-flow transformations can, in general, be unblocked on siloed references. The solution has been implemented in a widely used compiler. Results on benchmarks from SPLASH-2 show that performance improvements of up to 41% are possible, with an average improvement of 6% across all the tested programs over all thread counts.


Langue: Anglais