filmov
tv
Design Patterns for Multithreaded Algorithm Design and Implementation

Показать описание
SCI DevCoOp presents Will Schroeder and Spiros Tsalikis.
Modern computing hardware typically provides multiple cores and high-performance memory systems well suited to parallel computing, especially shared memory approaches. Yet despite these ubiquitous resources, much scientific computing software is still implemented using sequential approaches or is in dire need of a performance makeover. We believe that part of the reason for this is a perception that parallel algorithms are hard to design and implement. We are of the view that instead, a wealth of opportunities exists to reimagine classic and emerging algorithms, to better address the large-data challenges facing us as a community. The key is to become familiar with basic parallel computing design patterns, enabling algorithm developers to readily create performant software.
In this panel presentation, two developers with long experience developing parallel algorithms will describe common parallel design patterns by working through two classic algorithms: iso-contouring and surface extraction from volume. Topics addressed include removing bottlenecks; using multiple passes to configure data output, process data, and produce output; and compositing methods to avoid costly mutexes and other synchronization mechanisms. Also, simple but powerful techniques using functions like prefix sums and sorting algorithms, in conjunction with parallel for loops and atomic variables will be described. The emphasis will be on high-level conceptual approaches, and not the details of a particular implementation language / framework.
Biographies:
Will Schroeder, PhD is a long-time developer of VTK. At Kitware he works as an Opportunity Catalyst to envision and lead technical innovation; mentor talented software professionals and engage with customers and collaborators to provide solutions to pressing technical challenges.
Spiros Tsalikis has been a developer of VTK/ParaView for the past ~1.5 years. At Kitware, he works as an R&D Engineer for the Scientific Computing team. His main focuses are performance improvements with an emphasis on geometric filters, and development of new filters, widgets, and functionalities.
Modern computing hardware typically provides multiple cores and high-performance memory systems well suited to parallel computing, especially shared memory approaches. Yet despite these ubiquitous resources, much scientific computing software is still implemented using sequential approaches or is in dire need of a performance makeover. We believe that part of the reason for this is a perception that parallel algorithms are hard to design and implement. We are of the view that instead, a wealth of opportunities exists to reimagine classic and emerging algorithms, to better address the large-data challenges facing us as a community. The key is to become familiar with basic parallel computing design patterns, enabling algorithm developers to readily create performant software.
In this panel presentation, two developers with long experience developing parallel algorithms will describe common parallel design patterns by working through two classic algorithms: iso-contouring and surface extraction from volume. Topics addressed include removing bottlenecks; using multiple passes to configure data output, process data, and produce output; and compositing methods to avoid costly mutexes and other synchronization mechanisms. Also, simple but powerful techniques using functions like prefix sums and sorting algorithms, in conjunction with parallel for loops and atomic variables will be described. The emphasis will be on high-level conceptual approaches, and not the details of a particular implementation language / framework.
Biographies:
Will Schroeder, PhD is a long-time developer of VTK. At Kitware he works as an Opportunity Catalyst to envision and lead technical innovation; mentor talented software professionals and engage with customers and collaborators to provide solutions to pressing technical challenges.
Spiros Tsalikis has been a developer of VTK/ParaView for the past ~1.5 years. At Kitware, he works as an R&D Engineer for the Scientific Computing team. His main focuses are performance improvements with an emphasis on geometric filters, and development of new filters, widgets, and functionalities.