OMX Helsinki — S&P 500 — DAX — NASDAQ 100 — STOXX 600 — EUR/USD — EUR/SEK — BTC/USD — ETH/USD — Euribor 3M — Euribor 12M —
Microsoft Research

Microsoft Research

Technology and AI 359,000 subscribers

Grace: Safe Multithreaded Programming for C/C++

16.10.2019 2,570 views
Published: 16.10.2019 Category: Technology and AI Views: 2,570

Episode details

Episode description

The shift from single to multiple core architectures means that programmers must write concurrent, multithreaded programs in order to increase application performance. Unfortunately, multithreaded applications are susceptible to numerous errors, including deadlocks, race conditions, atomicity violations, and order violations. These errors are notoriously difficult for programmers to debug. This talk presents Grace, a software-only runtime system designed to enforce the correctness of a class of multithreaded programs: those based on fork-join parallelism. By turning threads into processes, leveraging virtual memory protection, and imposing a sequential commit protocol, Grace provides programmers with the appearance of deterministic, sequential execution, while taking advantage of available processing cores to run code concurrently and efficiently. Experimental results demonstrate Grace's effectiveness: with modest code changes (1-16 lines) across a suite of computationally-intensive benchmarks, Grace can achieve high scalability and performance while enforcing correct execution.

Open the AI assistant chat. The chat loads only when you open it.