What is the technology behind Jinx?
Jinx is based on a research project from the University of Washington called Deterministic Shared-Memory Multi-Processing, or DMP. To understand DMP, one must first understand the concept of determinism. Determinism is the notion that, given a set of input, the application will always produce the same output. Traditional sequential programs behaved this way. Parallel applications, on the other hand, are non-deterministic, meaning that the same input doesn’t always yield the same output. This is because the operating system adjusts the timing of threads in an application based on a variety of factors external to the application, such as the operating system scheduling one processor over another, when one processor has less inhibited access to system memory, and so on. Non-deterministic applications pose a number of significant challenges, including difficulty in finding and reproducing defects, difficulty in debugging, testing, and supporting applications once in production, and a diffi