NDAK13000U Extreme Multiprogramming
Volume 2013/2014
Education
MSc Programme in Computer
Science
Content
Multithreaded
programming is often considered complex, and classic concurrency
problems, such as race-conditions and deadlocks occur frequently in
multithreaded programs. The overall purpose of this course
is to enable the student to use threading as the primary design
mechanism for large, maintainable and high-performance
applications.
The class will equip the student with the tools, primarily Communicating Sequential Processes (CSP), required to understand and apply concurrency as a fundamental tool for building both computational platforms (systems-level programming) and end-user applications. It contains a thorough introduction to the abstract CSP algebra and its concrete realizations in practical programming systems.
The class will equip the student with the tools, primarily Communicating Sequential Processes (CSP), required to understand and apply concurrency as a fundamental tool for building both computational platforms (systems-level programming) and end-user applications. It contains a thorough introduction to the abstract CSP algebra and its concrete realizations in practical programming systems.
Learning Outcome
At course completion,
the successful student will have:
Knowledge of:
Knowledge of:
- The CSP
framework: concepts, notation, and reasoning principles.
- CSP-based libraries and languages, such as PyCSP or Occam.
- Implementation
techniques for efficiently executing concurrent programs on highly
parallel platforms.
- Tools for
automatic analysis and verification of concurrent systems.
- Proving equivalences and other formal properties of processes in the CSP algebra.
- Designing and implementing highly concurrent programs using the CSP paradigm.
- Analyzing and verifying properties of concurrent programs (or program fragments), with respect to both correctness and performance.
- Construct and validate maintainable, high-performance concurrent and/or parallel applications according to sound structuring and reasoning principles.
- Communicate effectively and rigorously about key aspects of concurrent systems in both theoretical and practical contexts.
Literature
Expected
textbook: Tony Hoare, Communicating Sequential Processes
(freely downloadable from usingcsp.com); selected articles and
notes.
Academic qualifications
BSc-level courses in
Computer Architecture and Operating Systems.
Teaching and learning methods
Lectures and mandatory
assignments. Independent work at home will be a major part of the
workload.
Workload
- Category
- Hours
- Exam
- 40
- Lectures
- 28
- Preparation
- 138
- Total
- 206
Sign up
Self Service at KUnet
As an exchange, guest and credit student - click here!
Continuing Education - click here!
As an exchange, guest and credit student - click here!
Continuing Education - click here!
Exam
- Credit
- 7,5 ECTS
- Type of assessment
- Written assignment, 12 daysAn individually written report based on a fixed assignment, containing both theoretical and programming tasks. The report is due on the last day of the exam period. Submission in Absalon.
- Exam registration requirements
- Two passed homework assignments.
- Aid
- All aids allowed
- Marking scale
- 7-point grading scale
- Censorship form
- No external censorship
Several internal examiners
- Re-exam
- One-week take-home assignment + 30-minute oral examination without preparation; internal grading using the 7-point grading scale. Submission in Absalon.
Criteria for exam assesment
See learning outcome.
Course information
- Language
- English
- Course code
- NDAK13000U
- Credit
- 7,5 ECTS
- Level
- Full Degree Master
- Duration
- 1 block
- Placement
- Block 2
- Schedule
- B
- Course capacity
- No limit
- Continuing and further education
- Study board
- Study Board of Mathematics and Computer Science
Contracting departments
- Department of Computer Science
- The Niels Bohr Institute
Course responsibles
- Andrzej Filinski (andrzej@di.ku.dk)
Lecturers
Andrzej Filinski, DIKU
Brian Vinter, NBI
Saved on the
30-04-2013