Algorithm Engineering (2016, Q3, 5 ECTS)

Slides:



Advertisements
Similar presentations
Course Outline Presentation Term: F09 Faculty Name : Asma Sanam Larik Course Name :INTRO TO COMPUTING Course Code : CSE145 Section :1 Semester : 1.
Advertisements

Analysis of algorithms and BIG-O
1 CIS 461 Compiler Design and Construction Fall 2014 Instructor: Hugh McGuire slides derived from Tevfik Bultan, Keith Cooper, and Linda Torczon Lecture-Module.
Dr. Ken Hoganson, © August 2014 Programming in R COURSE NOTES 2 Hoganson Language Translation.
CS252: Systems Programming Ninghui Li Program Interview Questions.
LECTURE 1 CMSC 201. Overview Goal: Problem solving and algorithm development. Learn to program in Python. Algorithm - a set of unambiguous and ordered.
Gerth Stølting Brodal Cache-Oblivious Algorithms - A Unified Approach to Hierarchical Memory Algorithms Current Trends in Algorithms, Complexity Theory,
Engineering Problem Solving With C++ An Object Based Approach Fundamental Concepts Chapter 1 Engineering Problem Solving.
PZ13A Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ13A - Processor design Programming Language Design.
Elementary Data Structures and Algorithms
COMP 14: Intro. to Intro. to Programming May 23, 2000 Nick Vallidis.
Chapter 1: Introduction To Computer | SCP1103 Programming Technique C | Jumail, FSKSM, UTM, 2005 | Last Updated: July 2005 Slide 1 Introduction To Computers.
Reduced Instruction Set Computers (RISC) Computer Organization and Architecture.
CS1430: Programming in C++ Section 2 Instructor: Qi Yang 213 Ullrich
1 Chapter-01 Introduction to Computers and C++ Programming.
Programming Languages Generations
1 Intro to Computer Science I Chapter 1 Introduction to Computation Algorithms, Processors, and Programs.
JOP: A Java Optimized Processor for Embedded Real-Time Systems Martin Schöberl.
Data Structures & AlgorithmsIT 0501 Algorithm Analysis I.
Overview of Computing. Computer Science What is computer science? The systematic study of computing systems and computation. Contains theories for understanding.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
IT253: Computer Organization Lecture 4: Instruction Set Architecture Tonga Institute of Higher Education.
Comp Sci 251 Intro 1 Computer organization and assembly language Wing Huen.
1 A Simple but Realistic Assembly Language for a Course in Computer Organization Eric Larson Moon Ok Kim Seattle University October 25, 2008.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Week 1 - Friday.  What did we talk about last time?  Our first Java program.
2-1 Hardware CPU Memory - 2 kinds Network Graphics Input and Output Devices.
What is programming? Steps to solve a problem. Repeatable by executing or “doing” the steps again. UWP - Landgraf Some slides are from Dr. Qi Yang's notes.
C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
IXA 1234 : C++ PROGRAMMING CHAPTER 1. PROGRAMMING LANGUAGE Programming language is a computer program that can solve certain problem / task Keyword: Computer.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
M. Mateen Yaqoob The University of Lahore Spring 2014.
Outline Announcements: –HW III due Friday! –HW II returned soon Software performance Architecture & performance Measuring performance.
ECEG-3202 Computer Architecture and Organization Chapter 7 Reduced Instruction Set Computers.
Lecture 2 Programming life cycle. computer piano analogy Piano + player - computer hardware Musical score/notes - software or program Composer - programmer.
The Instruction Set Architecture. Hardware – Software boundary Java Program C Program Ada Program Compiler Instruction Set Architecture Microcode Hardware.
MIPS Pipeline and Branch Prediction Implementation Shuai Chang.
Lecture #1: Introduction to Algorithms and Problem Solving Dr. Hmood Al-Dossari King Saud University Department of Computer Science 6 February 2012.
Programming 2 Intro to Java Machine code Assembly languages Fortran Basic Pascal Scheme CC++ Java LISP Smalltalk Smalltalk-80.
Software Engineering Algorithms, Compilers, & Lifecycle.
1 Processor design Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section 11.3.
Cache Advanced Higher.
Topics to be covered Instruction Execution Characteristics
What Do Computers Do? A computer system is
Introduction to Computers and C++ Programming
Speed up on cycle time Stalls – Optimizing compilers for pipelining
15-740/ Computer Architecture Lecture 3: Performance
CSCI-235 Micro-Computer Applications
Computer Programming.
Key Ideas from day 1 slides
COP 3503 FALL 2012 Shayan Javed Lecture 15
A Closer Look at Instruction Set Architectures
Lecture 4: MIPS Instruction Set
Rosen 5th ed., §2.1 ~31 slides, ~1 lecture
CSE 403 Lecture 17 Coding.
CSE 373 Data Structures and Algorithms
Algorithm Engineering (2017, Q3, 5 ECTS)
Rosen 5th ed., §2.1 ~31 slides, ~1 lecture
Processor design Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section 11.3.
Recursion Chapter 11.
Algorithms: Design and Analysis
Discrete Mathematics and its Applications
Course Outline for Computer Architecture
Computer Systems An Introducton.
Instruction Level Parallelism
Programming language translators
Introduction to Computer Systems Engineering
Processor design Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Section 11.3.
MIPS instructions.
Week 1 - Friday COMP 1600.
Presentation transcript:

Algorithm Engineering (2016, Q3, 5 ECTS) Gerth Stølting Brodal

Motivation for the course… Narrow the gap between theoretical algorithm courses and implementing algorithms Systematic experimental evaluation Algorithm vs hardware understanding … new theory

From Idea to Program Execution (Java-)code Pseudocode Divide and Conquer ? … for each x in m up to middle add x to left for each x in m after middle add x to right … if ( t1[t1index] <= t2[t2index] ) a[index] = t1[t1index++]; else a[index] = t2[t2index++]; Idea Compiler (Java) Bytecode + Virtual machine Assembler Machine code Microcode Virtual memory/ TLB L1, L2,… cache Branch Prediction Pipelining ... MergeSort pseudo kode + Java uddrag Image: Athlon Igor Ostrovsky Blog: Gallery of Processor Cache Effects http://igoro.com/archive/gallery-of-processor-cache-effects/ Program execution

Theory–Experiment Cycle www.algorithm-engineering.de

Pred(x) = return max { yS | y  x } Project 1 Store a set S of N integers to support the query: Pred(x) = return max { yS | y  x } Throughout testing of the performance of the Pred operation Groups 2-3 persons Next Tuesday (optional) : A slide with your results so far

Statement : ”I implemented my fancy algorithm and ran it on this big input I found on the internet. It took 87.32 seconds to run the program” + Apparently succeded to implement the algorithm Is the output correct? Is 87.32 fast or slow? What is the theoretical expected running time?