BReakfast talk in CS:_ Paolo Bientinesi
Can we trust programming languages to compute efficiently?
Long gone are the times when computers were only accessible by selected researchers at a handful of institutions; nowadays, just about every researcher has access to powerful computing devices.
Over the course of the years, as computers became more widespread, programming languages also evolved. Traditional programming languages (e.g., C and Fortran) are being progressively replaced by "high-level" languages and frameworks (e.g., Matlab, Python, R, Julia, TensorFlow) that far are more user-friendly. Thanks to convenient and intuitive syntax, these languages make it easy for programmers to express new and complicated ideas with ease, thus greatly improving their productivity. Indeed, programmers can now work with complex data types directly, without any need for loops and intricate indexing.
However, by adopting high-level languages, programmers delegate to compilers more responsibility for the translation of programs into efficient low-level code. In this presentation, we focus on vector and matrix computations, which are at the heart of disciplines such as statistics, data science, signal processing, and countless other applications in science and engineering. We investigate whether or not programmers can trust popular programming languages to generate fast code. Maybe surprisingly, the answer is a resounding no. Because of this, this talk is of importance to both users and developers, as the gains in productivity are likely paired with unexpected losses in computer efficiency, i.e., unnecessarily high energy consumption.
Short Biography
Paolo Bientinesi is professor in High-Performance Computing at the Department of Computing Science, Umeå University, and director of the High-Performance Computing Center North (HPC2N).
He completed his Laurea degree in computer science at the University of Pisa (Italy, 1998), and received his Ph.D. from The University of Texas at Austin (US, 2006). Before moving to Sweden, he was professor at RWTH Aachen University (Germany, 2008).
His research interests include matrix and tensor operations, automatic algorithm & code generation, performance modeling, and computer music. Paolo leads the research group High-Performance and Automatic Computing (HPAC, hpac.cs.umu.se, https://github.com/HPAC).