Module Specifications.
Current Academic Year 2024 - 2025
All Module information is indicative, and this portal is an interim interface pending the full upgrade of Coursebuilder and subsequent integration to the new DCU Student Information System (DCU Key).
As such, this is a point in time view of data which will be refreshed periodically. Some fields/data may not yet be available pending the completion of the full Coursebuilder upgrade and integration project. We will post status updates as they become available. Thank you for your patience and understanding.
Date posted: September 2024
| |||||||||||||||||||||||||||||||||||||||||||
None Develop concurrent & distribute implementations to solve given problems. |
|||||||||||||||||||||||||||||||||||||||||||
Description This module aims to introduce the student to issues involved in concurrent and distributed computing, and particularly to the paradigms used in concurrent and distributed computing to address these issues. To facilitate learning on part of the student, algorithms are presented in the form of solutions to everyday problems (e.g. modelling a queue in a bakery shop). | |||||||||||||||||||||||||||||||||||||||||||
Learning Outcomes 1. Distinguish between two forms of Parallel Computing: Concurrent & Distributed; The fundamental concepts underlying concurrent & distributed computing. 2. Explain the meaning of concurrent programming and where it fits in with single-threaded programming paradigms (Concurrency & Parallelism, Multithreading, Multicore…) 3. Describe common architectures for concurrent and distributed programs. 4. Understand when concurrent programming can be used to solve common problems in computer science (Dining Philosophers, Producers/Consumers etc) 5. Explain communication in Concurrent and Distributed Programs (Synchronous/Asynchronous…) 6. Evaluate the impact of various synchronization models for safe concurrent (semaphores/monitors) and distributed programs including issues related to replication & consistency. 7. Explain support for advanced concurrency in a modern general purpose programming language. 8. Write, analyse and debug multi-threaded and distributed programs involving multiple agents. 9. Explain the operation of communication libraries (such as OPENMP) for message passing. 10. Apply technologies supporting distributed applications such as distributed object-based and coordination-based technology (RMI/RPC and Web Services using SOAP/REST). | |||||||||||||||||||||||||||||||||||||||||||
All module information is indicative and subject to change. For further information,students are advised to refer to the University's Marks and Standards and Programme Specific Regulations at: http://www.dcu.ie/registry/examinations/index.shtml |
|||||||||||||||||||||||||||||||||||||||||||
Indicative Content and Learning Activities
Architectural classification schemes in Concurrent & Distributed Systems• Flynn’s Classification: SISD, SIMD, MIMD • Structural Classification: Tightly (UMA/NUMA) & Loosely Coupled • Grain-size Classification: Fine & Coarse GrainCritical sections, fairness and mutual exclusion• Dekker’s & Gustafson’s Algorithms, Semaphores & Monitors in Concurrent Systems • Time in Distributed Systems: Lamport /Vector Clocks, Centralized/ Decentralized AlgorithmsArchitectural Styles in Concurrent & Distributed Systems• Layered & Object-based, Data-centred & Event-based architectures • Decentralized: Structured & Unstructured architecturesSpeed-up on single & multicores• Amdahl’s lawThreads, processes and virtualization.Services in Distributed Computing• Naming & DiscoveryCommunications Mechanisms in Concurrent & Distributed• Types of message passing processes (Filters, Clients, Servers and Peers..) • Mechanisms RPC/RMI and Rendezvous • Message Oriented Middleware/Message Queuing (e.g. RabbitMQ) • Web Services: SOAP, RESTSafe Access to distributed shared resourcesTime, Synchronization, Replication & Consistency in Distributed Systems | |||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||
Indicative Reading List
| |||||||||||||||||||||||||||||||||||||||||||
Other Resources None | |||||||||||||||||||||||||||||||||||||||||||