Parosh Aziz Abdulla
Algorithmic Program Verification.
Postgraduate Course, 10 credits.
Current capabilities in computer technology allow enormously complicated implementations of such systems, making the task of producing error-free products more and more difficult. In particular, during the last decade, parallel systems have become a critical part of the infrastructure of our society due to the emergence of modern platforms such as multicores and cloud technology.
It is of great practical and economic importance to developing methods that make the design process less error-prone. There is a real need for techniques for testing and verifying software to guarantee a higher degree of reliability.
Reasoning about concurrent systems is often conducted under the fundamental assumption of sequential consistency (SC) where all components are strongly synchronized so that they all have a uniform view of the global state of the system. However, nowadays, most parallel software run on platforms that do not guarantee SC. More precisely, to satisfy demands on efficiency and energy-saving, such platforms implement optimizations that lead to the relaxation of the inter-component synchronization, hence offering only weak consistency guarantees. Weakly consistent platforms are found at all levels of system design, such as multiprocessors, cache protocols, programming languages, and cloud systems.
The participants will learn: