Fine-grain synchronization and memory consistency in parallell programming (or Helping programmers avoid surprises due to aggressive memory models)
Research Project, 2011
– 2013
Shared memory parallel algorithms are extremely tricky; small details can introduce hard to discover bugs, depending on the interleaving of events. Programmers naturally wish to rely on and implement known methods for synchronization from the literature. However, new systems do not provide the memory consistency commonly assumed by the constructions in the literature, but rather more relaxed ones, which, roughly speaking, allow reorderings of operations towards aggressive optimization that hides memory latencies, thus implying larger difficulty in reasoning about the order of events.
Programmers face confusion and dillemas: shall one sequentialize all accesses to shared data with barriers (thus "killing" the performance properties of efficient, fine-grain synchronization algorithms that aim at enhancing parallelism) or struggle to come up with a solution of the level of difficulty of a publishable result for each program?
We aim at balancing the trade-off between the cost of synchronization and ease of programming. Towards that, we will work to provide programmers with needed clever ways to avoid heavy use of unnecessary global synchronization constructs (barriers) when possible and with crieria and methods to use alternative efficient primitives and constructs when necessary, in programming algorithms available in the literature.
Participants
Marina Papatriantafilou (contact)
Chalmers, Computer Science and Engineering (Chalmers), Networks and Systems (Chalmers)
Ioannis Nikolakopoulos
Chalmers, Computer Science and Engineering (Chalmers), Networks and Systems (Chalmers)
Funding
Swedish Research Council (VR)
Project ID: 2010-4801
Funding Chalmers participation during 2011–2013
Related Areas of Advance and Infrastructure
Information and Communication Technology
Areas of Advance
Sustainable development
Driving Forces
Energy
Areas of Advance
Basic sciences
Roots