The documents distributed by this server have been provided by the contributing authors as a means to ensure timely dissemination of scholarly and technical work on a noncommercial basis. Copyright and all rights therein are maintained by the authors or by other copyright holders, notwithstanding that they have offered their works here electronically. It is understood that all persons copying this information will adhere to the terms and constraints invoked by each author's copyright. These works may not be reposted without the explicit permission of the copyright holder.
Publications of SPCL
|S. Shudler, A. Calotoiu, T. Hoefler, F. Wolf:|
|Isoefficiency in Practice: Configuring and Understanding the Performance of Task-based Applications|
(Vol , Nr. , In Proceedings of the 22nd ACM SIGPLAN symposium on Principles and practice of parallel programming, presented in College Station, TX, pages , ACM, ISSN: , ISBN: , Feb. 2017, )
AbstractTask-based programming offers an elegant way to express units of computation and the dependencies among them, making it easier to distribute the computational load evenly across multiple cores. However, this separation of problem decomposition and parallelism requires a sufficiently large input problem to achieve satisfactory efficiency on a given number of cores. Unfortunately, finding a good match between input size and core count usually requires significant experimentation, which is expensive and sometimes even impractical. In this paper, we propose an automated empirical method for finding the isoefficiency function of a taskbased program, binding efficiency, core count, and the input size in one analytical expression. This allows the latter two to be adjusted according to given (realistic) efficiency objectives. Moreover, we not only find (i) the actual isoefficiency function but also (ii) the function one would yield if the program execution was free of resource contention and (iii) an upper bound that could only be reached if the program was able to maintain its average parallelism throughout its execution. The difference between the three helps explain low efficiency, in particular, it helps differentiate between resource contention and structural conflicts related to task dependencies or scheduling. The insights gained can be used to codesign programs and shared system resources.