Computing nowadays is a concurrent computing. Be it a mainstream multi-core machine,
a computing cluster, or a large-scale distributed service, a modern computing system involves multiple
processes that concurrently perform independent computations and communicate to synchronize their activities.
Understanding concurrency is therefore getting essential to be competitive in practice or research in computer science.
What will be taught?
The school will offer courses on a wide range of practical and theoretical aspects of
concurrency given by renowned experts in the field.
The following topics will be covered (probably, not all of them):
Concurrent data structures: definitions and design principles.
Fault-tolerance and asynchrony
Fine grained locking, optimism and relaxation
Flat combining and data locality
Concurrency issues in data mining and big data processing
Randomization in concurrent algorithms
Verification of concurrent systems
Dynamic memory allocation and garbage collection
Probabilistic performance analysis
More information about the courses can be found here.