Lesson Objectives Aims You should be able to:

Slides:



Advertisements
Similar presentations
The LC-3 – Chapter 6 COMP 2620 Dr. James Money COMP
Advertisements

SDP Languages and Environments. Types of Languages and Environments There are 4 main types of language that you must be able to describe at Higher level.
Programming Fundamentals (750113) Ch1. Problem Solving
Parallel Programming Models Jihad El-Sana These slides are based on the book: Introduction to Parallel Computing, Blaise Barney, Lawrence Livermore National.
TMF1013 : Introduction To Computing Lecture 1 : Fundamental of Computer ComputerFoudamentals.
A PowerPoint about Algorithm’s. What is an algorithm?  a process or set of rules to be followed in calculations or other problem-solving operations,
Parallel Processing Sharing the load. Inside a Processor Chip in Package Circuits Primarily Crystalline Silicon 1 mm – 25 mm on a side 100 million to.
COMP 111 Threads and concurrency Sept 28, Tufts University Computer Science2 Who is this guy? I am not Prof. Couch Obvious? Sam Guyer New assistant.
Copyright © Curt Hill Concurrent Execution An Overview for Database.
Algorithms and Flowcharts
What’s going on here? Can you think of a generic way to describe both of these?
Lean Production: Critical Path Analysis 3.15 Lean Production Objectives; Understand the key requirements of critical path analysis (CPA) Understand the.
1 ”MCUDA: An efficient implementation of CUDA kernels for multi-core CPUs” John A. Stratton, Sam S. Stone and Wen-mei W. Hwu Presentation for class TDT24,
Lecture 5. Example for periority The average waiting time : = 41/5= 8.2.
 Programming methodology: ◦ is a process of developing programs that involves strategically dividing important tasks into functions to be utilized by.
Introduction to threads
AP CSP: Creating Functions & Top-Down Design
A Level Computing – a2 Component 2 1A, 1B, 1C, 1D, 1E.
Code Optimization.
Chapter 10: Computer systems (1)
Programming Languages
FLOWCHARTS Part 1.
Lesson Objectives Aims You should be able to:
ENTERPRISE FACULTY What is Enterprise?.
Case Study 2- Parallel Breadth-First Search Using OpenMP
Memory Consistency Models
UNIT 3 – LESSON 5 Creating Functions.
Memory Consistency Models
The University of Adelaide, School of Computer Science
Introduction to Programmng in Python
Yenka Portfolio Level for this topic: Student Name : My Levels
Teaching Computing to GCSE
Operating Systems (CS 340 D)
Multi-Processing in High Performance Computer Architecture:
Teaching Computing to GCSE
Design and Technology Academic Year 2017/2018 Grade 7 First Semester.
The University of Texas at Austin
Algorithms Today we will look at: what the word algorithm means
Learning to Program in Python
Learning to Program in Python
Chapter 4: Threads.
Programming Languages
Lesson Objectives Aims You should be able to:
Programming Fundamentals (750113) Ch1. Problem Solving
Programming Fundamentals (750113) Ch1. Problem Solving
Target Setting for Student Progress
Theory of Computation Turing Machines.
1.1 The Characteristics of Contemporary Processors, Input, Output and Storage Devices Types of Processors.
Background and Motivation
Multithreaded Programming
Global Challenge Walking for Water Lesson 2.
Operating Systems (CS 340 D)
Programming Fundamentals (750113) Ch1. Problem Solving
Global Challenge Walking for Water Lesson 2.
Global Challenge Walking for Water Lesson 2.
ICT Gaming Lesson 2.
Using Decision Structures
Programming Fundamentals (750113) Ch1. Problem Solving
Global Challenge Walking for Water Lesson 2.
Applying Use Cases (Chapters 25,26)
Global Challenge Walking for Water Lesson 2.
Global Challenge Walking for Water Lesson 2.
Global Challenge Walking for Water Lesson 2.
Programming with Shared Memory Specifying parallelism
October 9, 2003.
Global Challenge Walking for Water Lesson 2.
6- General Purpose GPU Programming
Global Challenge Walking for Water Lesson 2.
Global Challenge Walking for Water Lesson 2.
Running & Testing Programs :: Translators
Presentation transcript:

Lesson Objectives Aims You should be able to: Identify points in a solution where a decision must be made Determine logical conditions that affect the outcome of a decision Determine how decisions affect flow through a program Determine parts of a problem that can be tackled at the same time Outline the benefits and trade offs that might result from concurrent processing in a solution

Note Before we start: You should’ve realised before now that this entire section is based on concepts that will make you a better programmer There is no easy way to learn these techniques and “thinking logically” and the like will only come with practise Some of these specification objectives are only possible to learn when you are coding a solution and solving the unique problems that arise There is an expectation in 6th form that you care about the subjects you take and are motivated, without us telling you, to study outside of school Studying programming shouldn’t be seen as a hassle, it should be something that you’re interested in, motivated to do and want to learn by yourself If you are not programming now, you are already falling behind.

This whole course is about thinking logically It is the process of being able to: Identify a problem Break it down (decomposition) Removing unnecessary complications and focussing on the true problem (abstraction) Identifying concurrency, algorithms, efficiency savings etc Designing the solution

Logic Thinking logically mainly focusses on the ability to solve a given problem You are only using a small set of rules or syntax to enable you to do this What are the steps that must be taken? In what order? What is the eventual goal? What decisions must be made?

Problem The problem with “teaching” logical thought is that…. You either can or can’t! You will only get better through practise and by solving problems by creating code And inevitably debugging that code So the coding challenges are incredibly important

Concurrency Concurrency is the idea of doing multiple things at the same time Some problems are very sequential in their nature- things must happen in order and each step relies on the previous Some are much more parallel: Whilst the kettle is boiling… Go and get a cup and put a tea bag in it Get the milk and pour in to the cup

This is made possible in modern machines through multi core processors Concurrency This is made possible in modern machines through multi core processors But concurrency does not only apply to computers – we can use it to: Model projects Suggest time savings in existing processes Manage human resources

Benefits and Trade-offs of Concurrency Faster processing More things can happen during the same time window Energy efficiencies As more is being done each cycle, we use less energy Efficient use of resources Less idle processor time, more time available for other tasks Less apparent lag when running a program

Not suitable for all tasks Increased complexity Programs must be specifically designed to work concurrently (threading) Compilers need to be able to explicitly target multi-core architectures Not suitable for all tasks It is not possible to make all problems concurrent Does not provide a doubling of speed Some tasks may be more/less concurrent than others Some threads may have to wait for the outcome of others to proceed

Practice paper – 1b A flight simulator is being developed to help train pilots…