COS40003 Concurrent Programming Lecture 1 PDF
Document Details

Uploaded by StimulativeJaguar
Swinburne University of Technology
Tags
Related
- Multi-Threading - Concurrent & Parallel Programming in Java PDF
- Parallel Computing Unit 1 - Introduction to Parallel Computing PDF
- Chapter 6: Concurrent Processes PDF
- Programación Concurrente y Distribuida PDF
- Understanding Operating Systems: Concurrent Processes PDF
- Computación Concurrente, Paralela y Distribuida. PDF
Summary
These are lecture notes for COS40003 Concurrent Programming, Lecture 1: Introduction, covering concurrent computing, parallel computing and distributed computing paradigms. The lecture discusses cluster computing, grid computing, cloud computing, and fog/edge computing.
Full Transcript
COS40003 Concurrent Programming Lecture 1: Introduction CRICOS 00111D TOID 3059 Introduction of Concurrent Programming CRICOS 00111D TOID 3059 What is “concurrent progr...
COS40003 Concurrent Programming Lecture 1: Introduction CRICOS 00111D TOID 3059 Introduction of Concurrent Programming CRICOS 00111D TOID 3059 What is “concurrent programming”? Concurrent programming – program to support concurrent computing Computing paradigms – Concurrent computing – Parallel computing – Distributed computing – Others: Cluster computing, grid computing, cloud computing, fog/edge computing Concurrent computing and Parallel computing In English: – Concurrent happen at the same time – Parallel happen at the same time In Computer Science – Concurrent computing from observer’s point of view whether computing tasks are done simultaneously – Parallel computing from system’s point of view whether computing tasks are done simultaneously Concurrent computing Concurrent computing theory – Was developed on a single processor – Also applies to multiple processors Time-sharing – Scheduling computing tasks, i.e. how to improve response time, while ensure fairness Concurrency control – Race conditions – Deadlocks Parallel computing What parallel computing means? – A type of computation in which many calculations or the execution of processes are carried out simultaneously. How parallel computing is done? – In parallel computing, a computational task is typically broken down into several, often many, very similar subtasks that can be processed independently and whose results are combined afterwards, upon completion. Parallel computing example GPU Computing – https://www.youtube.com/watch?v=- P28LKWTzrI Attention: – Pause the recording when playing Youtube video Distributed computing No single definition of a distributed system Commonly agreed properties: – (a) There are several autonomous computers, each of which has its own local memory. – (b) The computers communicate with each other by message passing. Parallel computing and distributed computing A rough way to classify concurrent systems as "parallel" or "distributed“: – In parallel computing, all processors may have access to a shared memory to exchange information between processors. – In distributed computing, each processor has its own private memory (distributed memory). Information is exchanged by passing messages between the processors. Parallel computing and distributed computing Parallel example – Multi-core CPU – GPU Distributed example – Cluster computing – Grid computing Ref: https://en.wikipedia.org/wiki/Distributed_computing Cluster computing The computer cluster usually (but not always) has a number of low-cost computers connected via a fast local area network to provide high- performance computing power. Technicians working on a large Linux cluster at the Chemnitz University of Technology, Germany. – photo from wiki Grid computing Grid is composed of many networked loosely coupled computers acting together to perform large tasks. Generally believed: – Computer cluster: homogeneous, collocated; – Computer grid: heterogeneous, geographically dispersed Grid computing – sort of outdated – Cloud computing Cloud computing Hide computing Providing services only – SaaS – PaaS – IaaS Cloud computing The goal of cloud computing is to hide computation at server, with users no need to know the details. (not purely about distributed computing.) Distributed computing techniques become important because it supports cloud computing. Fog/Edge computing The goal is to do as much processing as possible using computing units co-located or near the data- generating devices. In particular, supporting Internet of Things (IoT) application. Review Concurrent computing VS Parallel computing (1) no clearly defined boundary (2) try to understand following the history of how technology developed The aim of both is to support multiple tasks to run simultaneously 16 Concurrent computing VS Parallel computing At the beginning, only one CPU in a computer, to support multiple tasks to run simultaneously, timing sharing and concurrency control have to be used. – Concurrent is the best word to describe As technology developed, we have multi-core, multi-processors, etc. Parallelism can be physically realized/implemented – Parallel computing realized true parallelism 17 Concurrent computing and Parallel computing In a simple way to summarize: – Concurrent computing from observer/user’s point of view whether computing tasks are done simultaneously – Parallel computing from system/computer’s point of view whether computing tasks are done simultaneously (Note that, this is Lecturer’s personal view. 18 More discussions welcome) Lab 1 Task Read, understand, summarize the following computing paradigms – Concurrent, parallel, distributed, cluster, grid, cloud, fog/edge etc. Put it as part of your Report I. Make use of lab to get feedback early Feel free to express your own thoughts, disagreement with the established ideas (has to be reasonable) Questions? CRICOS 00111D TOID 3059