Kolloq. Prof. Wolf, topic: Isoefficiency in Practice: Configuring and Understanding the Performance of Task-based Applications
Wednesday, 22nd of March 2017, 2:00 pm FMI 01.06.020 (MI-Building, Campus Garching)
Task-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 talk, we propose an automated empirical method for finding the isoefficiency function of a task-based 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 to explain low efficiency, and in particular, it helps to differentiate between resource contention and structural conflicts related to task dependencies or scheduling. The insights gained can be used to co-design programs and shared system resources.
Felix Wolf is a full professor at the Department of Computer Science of TU Darmstadt, where he is head of the Laboratory for Parallel Programming. He specializes in methods, tools, and algorithms to exploit massive parallelism on modern computer architectures. Since the beginning of his professional career, Prof. Wolf designed programming tools for HPC. He has made major contributions to Scalasca, a widely used open-source tool for the performance analysis of HPC applications.
Current areas of interest include automatic performance modeling, parallelism discovery, dynamic scheduling, and scalable parallel algorithms.