Dthreads: Efficient Deterministic Multithreading (2011) [pdf]

By gbrown_ - 2 days ago

Showing first level comment(s)

> DTHREADS achieves cross-thread memory isolation by replacing threads with processes. In a multithreaded program running with pthreads, threads share all memory except for the stack. Changes to memory immediately become visible to all other threads. Threads share the same file descriptors, sockets, device handles, and windows. By contrast, because DTHREADS runs threads in separate processes, it must manage these shared resources explicitly.

They seem to be using a processes' copy-on-write memory to keep the dthreads isolated until commit points. At commit points they deterministically merge the pages back.

Algorithmic errors are still possible due to data races, but they present themselves more like logic errors because they're deterministic. They'll fail the same everytime.

Interesting.

kjeetgill - 21 hours ago

If Dthreads match the performance of pthreads, how is it possible that 7 years from the publication they aren't widely used?

e_carra - a day ago