Write a Blog >>
ICFP 2018
Sun 23 - Sat 29 September 2018 St. Louis, Missouri, United States
Sat 29 Sep 2018 11:20 - 12:05 at New York Central - Morning Session 2 Chair(s): Kei Davis

One of the most pervasive and pernicious classes of bugs for the high performance computing engineer is the data race, when two or more concurrent threads access shared data without any mutual exclusion mechanism. Often these bugs are hard to detect, hard to locate, and hard to debug. Most existing programming models in HPC are of little help, providing almost no support for preventing this class of errors. As any functional programmer should when faced with a class of runtime error, we turn to the type system to prevent it. While there are a variety of possible approaches, we us LiquidHaskell, which allows us to refine our types in an expressive way, while leaving the burden of proof to the underlying SMT solver. Precisely, we show how we can statically prevent data races, along with other well known errors, for low level, concurrent code.

Sat 29 Sep

Displayed time zone: Guadalajara, Mexico City, Monterrey change

10:20 - 12:15
Morning Session 2FHPC at New York Central
Chair(s): Kei Davis Los Alamos National Laboratory
10:20
60m
Talk
Modular Acceleration: Tricky Cases of Functional High-Performance Computing
FHPC
A: Troels Henriksen University of Copenhagen, Denmark, A: Martin Elsman University of Copenhagen, Denmark, A: Cosmin Oancea University of Copenhagen, Denmark
DOI
11:20
45m
Talk
Preventing Data Races with Refinement Types
FHPC