CSL 730: Parallel Programming. Algorithms
|
|
- Lillian Jacobs
- 6 years ago
- Views:
Transcription
1 CSL 73: Parallel Programming Algorithms
2 First 1 problem Input: n-bit vector Output: minimum index of a 1-bit
3 First 1 problem Input: n-bit vector Output: minimum index of a 1-bit Algorithm: Divide into n blocks of n bits each For block i, B[i] = 1 if there is a 1 in the block Arbitrary CRCW, O(n) work, O(1) time Find the first j such that B[j] = 1 O(n) work, O(1) time Find first 1 in the j th block O(n) work, O(1) time
4 All Nearest Smaller Value For each element A[i] in a vector find the largest j<i, such that A[j] < A[i] 3
5 All Nearest Smaller Value For each element A[i] in a vector find the largest j<i, such that A[j] < A[i] Algorithm: Find left match: For each i For each j < i, B[i,j] = (A[j] < A[i]) O(n ) work For each B[i] find largest j<i with B[i,j] = 1 3
6 Prefix Minima For each element A[i] in a vector find the minimum of all A[j], j < i 4
7 Prefix Minima For each element A[i] in a vector find the minimum of all A[j], j < i m+ m+ m+ m+ m a 4
8 Prefix Minima For each element A[i] in a vector find the minimum of all A[j], j < i m+ m+ m+ m+ m b a 4
9 Prefix Minima For each element A[i] in a vector find the minimum of all A[j], j < i m+ m+ m+ m+ m b a 4
10 Prefix Minima For each element A[i] in a vector find the minimum of all A[j], j < i Algorithm: Find ANSV For each A[i] For each A[j], j<i PrefixMin[i] = A[j] where j is the largest index such that A[j] has no smaller value on its left m+ m+ m+ m+ m b a 4
11 Prefix Minima For each element A[i] in a vector find the minimum of all A[j], j < i Algorithm: Find ANSV For each A[i] For each A[j], j<i O(n ) work PrefixMin[i] = A[j] where j is the largest index such that A[j] has no smaller value on its left m+ m+ m+ m+ m b a 4
12 Prefix Minima 1.Partition into n blocks of n each.find prefix min for each block j recursively 3.Consider B = m 1.. m n where m j is the minima of block j Find prefix min of B in constant time 4.Minimum of A[1]..A[i], A[i] in block j is the minimum of m 1..m j-1 and A[i] s block prefix minima (computed in step ) 5
13 Prefix Minima 1.Partition into n blocks of n each.find prefix min for each block j recursively 3.Consider B = m 1.. m n where m j is the minima of block j Find prefix min of B in constant time 4.Minimum of A[1]..A[i], A[i] in block j is the minimum of m 1..m j-1 and A[i] s block prefix minima (computed in step ) O(n) work 5
14 Prefix Minima 1.Partition into n blocks of n each.find prefix min for each block j recursively 3.Consider B = m 1.. m n where m j is the minima of block j Find prefix min of B in constant time 4.Minimum of A[1]..A[i], A[i] in block j is the minimum of m 1..m j-1 and A[i] s block prefix minima (computed in step ) O(n) work O(n log log n) work, O(log log n) time 5
15 General Algorithmic Techniques 6
16 General Algorithmic Techniques Pipelining 6
17 General Algorithmic Techniques Pipelining Balanced binary tree 6
18 General Algorithmic Techniques Pipelining Balanced binary tree Divide and conquer 6
19 General Algorithmic Techniques Pipelining Balanced binary tree Divide and conquer Partitioning 6
20 General Algorithmic Techniques Pipelining Balanced binary tree Divide and conquer Partitioning Accelerated Cascading 6
21 General Algorithmic Techniques Pipelining Balanced binary tree Divide and conquer Partitioning Accelerated Cascading Pointer doubling 6
22 General Algorithmic Techniques Pipelining Balanced binary tree Divide and conquer Partitioning Accelerated Cascading Pointer doubling Symmetry breaking 6
23 PARALLEL ALGORITHM TECHNIQUES: PATH DOUBLING / POINTER JUMPING
24 Find Roots in a Forest
25 Find Roots in a Forest p(i): parent of node i
26 Find Roots in a Forest p(i): parent of node i 1 8 Do in parallel p(i) = p(p(i))
27 Find Roots in a Forest p(i): parent of node i Do in parallel p(i) = p(p(i)) Stop if p(i) = i
28 Find Roots in a Forest p(i): parent of node i Do in parallel p(i) = p(p(i)) Stop if p(i) = i Time: log(height) 9 7 9
29 Find Roots in a Forest p(i): parent of node i Do in parallel p(i) = p(p(i)) Stop if p(i) = i Time: log(height) Work: n log(height) 9 7 9
30 Find Roots in a Forest p(i): parent of node i Do in parallel p(i) = p(p(i)) Stop if p(i) = i Time: log(height) Work: n log(height) 9 4 7
31 Find Roots in a Forest p(i): parent of node i Do in parallel p(i) = p(p(i)) Stop if p(i) = i Time: log(height) Work: n log(height) 9 1
32 Pointer Jumping Progressively push computation to all elements at a given distance Doubling the distance at each step After k steps the computation has been performed for elements within a distance of k Applies to array, list, tree
33 List Ranking Compute the number of nodes before node i in a list
34 List Ranking Compute the number of nodes before node i in a list Parallel for all i do: if next[i]=null then d[i] else d[i] 1 Parallel for all i do: if next[i] null d[i] d[i] + d[next[i]] next[i] next[next[i]] un@l next[i] == null for all i d(i) = distance of i from the end of the list
35
36
37
38
39 O(n log n) work, O(log n) time 5 13
40 PARALLEL ALGORITHM TECHNIQUES: SYMMETRY BREAKING
41 Cycle Coloring c[i]!= c[j] if e[i] = j e[i] = The next vertex from i O(n) Sequen@al algorithm Parallel: Make local decision But all ver@ces look the same locally Break symmetry Put ver@ces in iden@fiable classes
42 3-Coloring Use vertex index to break symmetry But too many indices Algorithm: Initialize c[i] = i Iterate, reducing #colors each time parallel for all i do Let k = Least significant bit in which c[i] and c[e[i]] differ Set c[i] = k + bit k of c[i] 16
43 3-Coloring k = ; nd bit = => New color = * + = 4
44 3-Coloring k = ; nd bit = => New color = * + = k = ; th bit = 1=> New color = * + 1 = 1
45 3-Coloring k = ; nd bit = => New color = * + = k = ; th bit = 1=> New color = * + 1 = 1 Why does this produce a coloring?
46 3-Coloring #new colors = O(log (#old colors)) Time O(log*n) Work O(n log*n) But can t reduce the number of colors below 6 t bits for i => log t + 1 bits for iteration i+1, t > 3 One more steps each to remove three extra colors parallel for all i If(c[i] = extra-color) c[i] = {,1,} and NOT (c[[e[i]], c[predecessor[i]) 18
CSL 730: Parallel Programming
CSL 73: Parallel Programming General Algorithmic Techniques Balance binary tree Partitioning Divid and conquer Fractional cascading Recursive doubling Symmetry breaking Pipelining 2 PARALLEL ALGORITHM
More informationCSL 860: Modern Parallel
CSL 860: Modern Parallel Computation PARALLEL ALGORITHM TECHNIQUES: BALANCED BINARY TREE Reduction n operands => log n steps Total work = O(n) How do you map? Balance Binary tree technique Reduction n
More informationReal parallel computers
CHAPTER 30 (in old edition) Parallel Algorithms The PRAM MODEL OF COMPUTATION Abbreviation for Parallel Random Access Machine Consists of p processors (PEs), P 0, P 1, P 2,, P p-1 connected to a shared
More informationCSE 613: Parallel Programming. Lecture 6 ( Basic Parallel Algorithmic Techniques )
CSE 613: Parallel Programming Lecture 6 ( Basic Parallel Algorithmic Techniques ) Rezaul A. Chowdhury Department of Computer Science SUNY Stony Brook Spring 2017 Some Basic Techniques 1. Divide-and-Conquer
More informationINDIAN INSTITUTE OF TECHNOLOGY KHARAGPUR Stamp / Signature of the Invigilator
INDIAN INSTITUTE OF TECHNOLOGY KHARAGPUR Stamp / Signature of the Invigilator EXAMINATION ( End Semester ) SEMESTER ( Autumn ) Roll Number Section Name Subject Number C S 6 0 0 2 6 Subject Name Parallel
More informationCSE 638: Advanced Algorithms. Lectures 10 & 11 ( Parallel Connected Components )
CSE 6: Advanced Algorithms Lectures & ( Parallel Connected Components ) Rezaul A. Chowdhury Department of Computer Science SUNY Stony Brook Spring 01 Symmetry Breaking: List Ranking break symmetry: t h
More informationCS256 Applied Theory of Computation
CS256 Applied Theory of Computation Parallel Computation IV John E Savage Overview PRAM Work-time framework for parallel algorithms Prefix computations Finding roots of trees in a forest Parallel merging
More informationExample of usage of Prefix Sum Compacting an Array. Example of usage of Prexix Sum Compacting an Array
Example of usage of Prefix um A 0 0 0 e 1 0 0 0 0 0 B e 1 Example of usage of Prexix um A 0 0 0 e 1 0 0 0 0 0 B e 1 Initialize B with zeroes Any idea on the solution (first in sequential)? If A[i]!= 0
More informationParallel Algorithms for (PRAM) Computers & Some Parallel Algorithms. Reference : Horowitz, Sahni and Rajasekaran, Computer Algorithms
Parallel Algorithms for (PRAM) Computers & Some Parallel Algorithms Reference : Horowitz, Sahni and Rajasekaran, Computer Algorithms Part 2 1 3 Maximum Selection Problem : Given n numbers, x 1, x 2,, x
More informationThe PRAM model. A. V. Gerbessiotis CIS 485/Spring 1999 Handout 2 Week 2
The PRAM model A. V. Gerbessiotis CIS 485/Spring 1999 Handout 2 Week 2 Introduction The Parallel Random Access Machine (PRAM) is one of the simplest ways to model a parallel computer. A PRAM consists of
More informationPriority queues. Priority queues. Priority queue operations
Priority queues March 30, 018 1 Priority queues The ADT priority queue stores arbitrary objects with priorities. An object with the highest priority gets served first. Objects with priorities are defined
More informationAlgorithms & Data Structures 2
Algorithms & Data Structures 2 PRAM Algorithms WS2017 B. Anzengruber-Tanase (Institute for Pervasive Computing, JKU Linz) (Institute for Pervasive Computing, JKU Linz) RAM MODELL (AHO/HOPCROFT/ULLMANN
More informationBalanced Search Trees
Balanced Search Trees Computer Science E-22 Harvard Extension School David G. Sullivan, Ph.D. Review: Balanced Trees A tree is balanced if, for each node, the node s subtrees have the same height or have
More informationProblem. Input: An array A = (A[1],..., A[n]) with length n. Output: a permutation A of A, that is sorted: A [i] A [j] for all. 1 i j n.
Problem 5. Sorting Simple Sorting, Quicksort, Mergesort Input: An array A = (A[1],..., A[n]) with length n. Output: a permutation A of A, that is sorted: A [i] A [j] for all 1 i j n. 98 99 Selection Sort
More informationDefine the red- black tree properties Describe and implement rotations Implement red- black tree insertion
Red black trees Define the red- black tree properties Describe and implement rotations Implement red- black tree insertion We will skip red- black tree deletion October 2004 John Edgar 2 Items can be inserted
More informationCMSC351 - Fall 2014, Homework #2
CMSC351 - Fall 2014, Homework #2 Due: October 8th at the start of class Name: Section: Grades depend on neatness and clarity. Write your answers with enough detail about your approach and concepts used,
More informationCS2223: Algorithms Sorting Algorithms, Heap Sort, Linear-time sort, Median and Order Statistics
CS2223: Algorithms Sorting Algorithms, Heap Sort, Linear-time sort, Median and Order Statistics 1 Sorting 1.1 Problem Statement You are given a sequence of n numbers < a 1, a 2,..., a n >. You need to
More informationEE/CSCI 451 Spring 2018 Homework 8 Total Points: [10 points] Explain the following terms: EREW PRAM CRCW PRAM. Brent s Theorem.
EE/CSCI 451 Spring 2018 Homework 8 Total Points: 100 1 [10 points] Explain the following terms: EREW PRAM CRCW PRAM Brent s Theorem BSP model 1 2 [15 points] Assume two sorted sequences of size n can be
More informationParallel Random Access Machine (PRAM)
PRAM Algorithms Parallel Random Access Machine (PRAM) Collection of numbered processors Access shared memory Each processor could have local memory (registers) Each processor can access any shared memory
More informationHeap: A binary heap is a complete binary tree in which each, node other than root is smaller than its parent. Heap example: Fig 1. NPTEL IIT Guwahati
Heap sort is an efficient sorting algorithm with average and worst case time complexities are in O(n log n). Heap sort does not use any extra array, like merge sort. This method is based on a data structure
More informationModule 16: Data Flow Analysis in Presence of Procedure Calls Lecture 32: Iteration. The Lecture Contains: Iteration Space.
The Lecture Contains: Iteration Space Iteration Vector Normalized Iteration Vector Dependence Distance Direction Vector Loop Carried Dependence Relations Dependence Level Iteration Vector - Triangular
More information7 Sorting Algorithms. 7.1 O n 2 sorting algorithms. 7.2 Shell sort. Reading: MAW 7.1 and 7.2. Insertion sort: Worst-case time: O n 2.
7 Sorting Algorithms 7.1 O n 2 sorting algorithms Reading: MAW 7.1 and 7.2 Insertion sort: 1 4 3 2 1 3 4 2 Selection sort: 1 4 3 2 Bubble sort: 1 3 2 4 7.2 Shell sort Reading: MAW 7.4 Introduction: Shell
More information1. (a) O(log n) algorithm for finding the logical AND of n bits with n processors
1. (a) O(log n) algorithm for finding the logical AND of n bits with n processors on an EREW PRAM: See solution for the next problem. Omit the step where each processor sequentially computes the AND of
More informationHypercubes. (Chapter Nine)
Hypercubes (Chapter Nine) Mesh Shortcomings: Due to its simplicity and regular structure, the mesh is attractive, both theoretically and practically. A problem with the mesh is that movement of data is
More informationAnalyze the obvious algorithm, 5 points Here is the most obvious algorithm for this problem: (LastLargerElement[A[1..n]:
CSE 101 Homework 1 Background (Order and Recurrence Relations), correctness proofs, time analysis, and speeding up algorithms with restructuring, preprocessing and data structures. Due Thursday, April
More informationRange Reporting. Range Reporting. Range Reporting Problem. Applications
Philip Bille Problem problem. Preprocess at set of points P R 2 to support report(x1, y1, x2, y2): Return the set of points in R P, where R is rectangle given by (x1, y1) and (x2, y2). Applications Relational
More informationParallel Sorting Algorithms
CSC 391/691: GPU Programming Fall 015 Parallel Sorting Algorithms Copyright 015 Samuel S. Cho Sorting Algorithms Review Bubble Sort: O(n ) Insertion Sort: O(n ) Quick Sort: O(n log n) Heap Sort: O(n log
More informationTechnical University of Denmark
Technical University of Denmark Written examination, May 7, 27. Course name: Algorithms and Data Structures Course number: 2326 Aids: Written aids. It is not permitted to bring a calculator. Duration:
More informationReadings. Priority Queue ADT. FindMin Problem. Priority Queues & Binary Heaps. List implementation of a Priority Queue
Readings Priority Queues & Binary Heaps Chapter Section.-. CSE Data Structures Winter 00 Binary Heaps FindMin Problem Quickly find the smallest (or highest priority) item in a set Applications: Operating
More informationAlgorithms and Applications
Algorithms and Applications 1 Areas done in textbook: Sorting Algorithms Numerical Algorithms Image Processing Searching and Optimization 2 Chapter 10 Sorting Algorithms - rearranging a list of numbers
More informationThe PRAM Model. Alexandre David
The PRAM Model Alexandre David 1.2.05 1 Outline Introduction to Parallel Algorithms (Sven Skyum) PRAM model Optimality Examples 11-02-2008 Alexandre David, MVP'08 2 2 Standard RAM Model Standard Random
More informationSolved by: Syed Zain Ali Bukhari (BSCS)
Solved by: Syed Zain Ali Bukhari (BSCS) 1. If there are N internal nodes in a binary tree then what will be the no. of external nodes in this binary tree? N -1 N N +1 (Page 303) N +2 2.If there are N elements
More informationCS 171: Introduction to Computer Science II. Binary Search Trees
CS 171: Introduction to Computer Science II Binary Search Trees Binary Search Trees Symbol table applications BST definitions and terminologies Search and insert Traversal Ordered operations Delete Symbol
More informationCSE 4500 (228) Fall 2010 Selected Notes Set 2
CSE 4500 (228) Fall 2010 Selected Notes Set 2 Alexander A. Shvartsman Computer Science and Engineering University of Connecticut Copyright c 2002-2010 by Alexander A. Shvartsman. All rights reserved. 2
More informationA6-R3: DATA STRUCTURE THROUGH C LANGUAGE
A6-R3: DATA STRUCTURE THROUGH C LANGUAGE NOTE: 1. There are TWO PARTS in this Module/Paper. PART ONE contains FOUR questions and PART TWO contains FIVE questions. 2. PART ONE is to be answered in the TEAR-OFF
More informationUnion-Find: A Data Structure for Disjoint Set Operations
Union-Find: A Data Structure for Disjoint Set Operations 1 Equivalence Relations A equivalence relation R is defined on a set S, if for every pair of elements (a,b) in S, a R b is either false or true
More informationSearch Trees. Data and File Structures Laboratory. DFS Lab (ISI) Search Trees 1 / 17
Search Trees Data and File Structures Laboratory http://www.isical.ac.in/~dfslab/2017/index.html DFS Lab (ISI) Search Trees 1 / 17 Binary search trees. Definition. Binary tree in which following property
More information1. [1 pt] What is the solution to the recurrence T(n) = 2T(n-1) + 1, T(1) = 1
Asymptotics, Recurrence and Basic Algorithms 1. [1 pt] What is the solution to the recurrence T(n) = 2T(n-1) + 1, T(1) = 1 1. O(logn) 2. O(n) 3. O(nlogn) 4. O(n 2 ) 5. O(2 n ) 2. [1 pt] What is the solution
More informationCS 310 Advanced Data Structures and Algorithms
CS 310 Advanced Data Structures and Algorithms Sorting June 13, 2017 Tong Wang UMass Boston CS 310 June 13, 2017 1 / 42 Sorting One of the most fundamental problems in CS Input: a series of elements with
More informationCMSC 341 Lecture 15 Leftist Heaps
Based on slides from previous iterations of this course CMSC 341 Lecture 15 Leftist Heaps Prof. John Park Review of Heaps Min Binary Heap A min binary heap is a Complete binary tree Neither child is smaller
More informationA Comparison of Data Structures for Dijkstra's Single Source Shortest Path Algorithm. Shane Saunders
A Comparison of Data Structures for Dijkstra's Single Source Shortest Path Algorithm Shane Saunders November 5, 1999 Abstract Dijkstra's algorithm computes the shortest paths between a starting vertex
More informationCS 598: Communication Cost Analysis of Algorithms Lecture 15: Communication-optimal sorting and tree-based algorithms
CS 598: Communication Cost Analysis of Algorithms Lecture 15: Communication-optimal sorting and tree-based algorithms Edgar Solomonik University of Illinois at Urbana-Champaign October 12, 2016 Defining
More informationLoop Transformations! Part II!
Lecture 9! Loop Transformations! Part II! John Cavazos! Dept of Computer & Information Sciences! University of Delaware! www.cis.udel.edu/~cavazos/cisc879! Loop Unswitching Hoist invariant control-flow
More informationParallel Models. Hypercube Butterfly Fully Connected Other Networks Shared Memory v.s. Distributed Memory SIMD v.s. MIMD
Parallel Algorithms Parallel Models Hypercube Butterfly Fully Connected Other Networks Shared Memory v.s. Distributed Memory SIMD v.s. MIMD The PRAM Model Parallel Random Access Machine All processors
More informationIntroduction to Computers and Programming. Today
Introduction to Computers and Programming Prof. I. K. Lundqvist Lecture 10 April 8 2004 Today How to determine Big-O Compare data structures and algorithms Sorting algorithms 2 How to determine Big-O Partition
More informationComplexity and Advanced Algorithms Monsoon Parallel Algorithms Lecture 4
Complexity and Advanced Algorithms Monsoon 2011 Parallel Algorithms Lecture 4 Advanced Optimal Solutions 1 8 5 11 2 6 10 4 3 7 12 9 General technique suggests that we solve a smaller problem and extend
More informationCMSC 341 Lecture 15 Leftist Heaps
Based on slides from previous iterations of this course CMSC 341 Lecture 15 Leftist Heaps Prof. John Park Review of Heaps Min Binary Heap A min binary heap is a Complete binary tree Neither child is smaller
More informationList Ranking. Chapter 4
List Ranking Chapter 4 Problem on linked lists 2-level memory model List Ranking problem Given a (mono directional) linked list L of n items, compute the distance of each item from the tail of L. Id Succ
More informationUnion-Find: A Data Structure for Disjoint Set Operations
Union-Find: A Data Structure for Disjoint Set Operations 1 The Union-Find Data Structure Purpose: Great for disjoint sets Operations: Union ( S 1, S 2 ) Find ( x ) Performs a union of two disjoint sets
More informationLecture 18. Today, we will discuss developing algorithms for a basic model for parallel computing the Parallel Random Access Machine (PRAM) model.
U.C. Berkeley CS273: Parallel and Distributed Theory Lecture 18 Professor Satish Rao Lecturer: Satish Rao Last revised Scribe so far: Satish Rao (following revious lecture notes quite closely. Lecture
More informationList Ranking. Chapter 4
List Ranking Chapter 4 Problem on linked lists 2-level memory model List Ranking problem Given a (mono directional) linked list L of n items, compute the distance of each item from the tail of L. Id Succ
More informationDeliverables. Quick Sort. Randomized Quick Sort. Median Order statistics. Heap Sort. External Merge Sort
More Sorting Deliverables Quick Sort Randomized Quick Sort Median Order statistics Heap Sort External Merge Sort Copyright @ gdeepak.com 2 Quick Sort Divide and conquer algorithm which relies on a partition
More informationBinary Heaps. CSE 373 Data Structures Lecture 11
Binary Heaps CSE Data Structures Lecture Readings and References Reading Sections.1-. //0 Binary Heaps - Lecture A New Problem Application: Find the smallest ( or highest priority) item quickly Operating
More informationDesign and Analysis of Algorithms - - Assessment
X Courses» Design and Analysis of Algorithms Week 1 Quiz 1) In the code fragment below, start and end are integer values and prime(x) is a function that returns true if x is a prime number and false otherwise.
More informationParadigms for Parallel Algorithms
S Parallel Algorithms Paradigms for Parallel Algorithms Reference : C. Xavier and S. S. Iyengar, Introduction to Parallel Algorithms Binary Tree Paradigm A binary tree with n nodes is of height log n Can
More information7. Sorting I. 7.1 Simple Sorting. Problem. Algorithm: IsSorted(A) 1 i j n. Simple Sorting
Simple Sorting 7. Sorting I 7.1 Simple Sorting Selection Sort, Insertion Sort, Bubblesort [Ottman/Widmayer, Kap. 2.1, Cormen et al, Kap. 2.1, 2.2, Exercise 2.2-2, Problem 2-2 19 197 Problem Algorithm:
More informationArrays, Vectors Searching, Sorting
Arrays, Vectors Searching, Sorting Arrays char s[200]; //array of 200 characters different type than class string can be accessed as s[0], s[1],..., s[199] s[0]= H ; s[1]= e ; s[2]= l ; s[3]= l ; s[4]=
More informationSorting and Selection
Sorting and Selection Introduction Divide and Conquer Merge-Sort Quick-Sort Radix-Sort Bucket-Sort 10-1 Introduction Assuming we have a sequence S storing a list of keyelement entries. The key of the element
More informationCSE 613: Parallel Programming. Lecture 11 ( Graph Algorithms: Connected Components )
CSE 61: Parallel Programming Lecture ( Graph Algorithms: Connected Components ) Rezaul A. Chowdhury Department of Computer Science SUNY Stony Brook Spring 01 Graph Connectivity 1 1 1 6 5 Connected Components:
More informationChapter 6 Heaps. Introduction. Heap Model. Heap Implementation
Introduction Chapter 6 Heaps some systems applications require that items be processed in specialized ways printing may not be best to place on a queue some jobs may be more small 1-page jobs should be
More informationCSE 241 Class 17. Jeremy Buhler. October 28, Ordered collections supported both, plus total ordering operations (pred and succ)
CSE 241 Class 17 Jeremy Buhler October 28, 2015 And now for something completely different! 1 A New Abstract Data Type So far, we ve described ordered and unordered collections. Unordered collections didn
More information1. [1 pt] What is the solution to the recurrence T(n) = 2T(n-1) + 1, T(1) = 1
Asymptotics, Recurrence and Basic Algorithms 1. [1 pt] What is the solution to the recurrence T(n) = 2T(n-1) + 1, T(1) = 1 2. O(n) 2. [1 pt] What is the solution to the recurrence T(n) = T(n/2) + n, T(1)
More informationComplexity and Advanced Algorithms Monsoon Parallel Algorithms Lecture 2
Complexity and Advanced Algorithms Monsoon 2011 Parallel Algorithms Lecture 2 Trivia ISRO has a new supercomputer rated at 220 Tflops Can be extended to Pflops. Consumes only 150 KW of power. LINPACK is
More informationCHENNAI MATHEMATICAL INSTITUTE M.Sc. / Ph.D. Programme in Computer Science
CHENNAI MATHEMATICAL INSTITUTE M.Sc. / Ph.D. Programme in Computer Science Entrance Examination, 5 May 23 This question paper has 4 printed sides. Part A has questions of 3 marks each. Part B has 7 questions
More informationFibonacci Heaps Priority Queues. John Ross Wallrabenstein
Fibonacci Heaps Priority Queues John Ross Wallrabenstein Updates Project 4 Grades Released Project 5 Questions? Review *This usually refers to the size of the structure Review What is a static data structure?
More informationWeek 10. Sorting. 1 Binary heaps. 2 Heapification. 3 Building a heap 4 HEAP-SORT. 5 Priority queues 6 QUICK-SORT. 7 Analysing QUICK-SORT.
Week 10 1 2 3 4 5 6 Sorting 7 8 General remarks We return to sorting, considering and. Reading from CLRS for week 7 1 Chapter 6, Sections 6.1-6.5. 2 Chapter 7, Sections 7.1, 7.2. Discover the properties
More information(Sequen)al) Sor)ng. Bubble Sort, Inser)on Sort. Merge Sort, Heap Sort, QuickSort. Op)mal Parallel Time complexity. O ( n 2 )
Parallel Sor)ng A jungle (Sequen)al) Sor)ng Bubble Sort, Inser)on Sort O ( n 2 ) Merge Sort, Heap Sort, QuickSort O ( n log n ) QuickSort best on average Op)mal Parallel Time complexity O ( n log n ) /
More informationAlgorithms, Spring 2014, CSE, OSU Lecture 2: Sorting
6331 - Algorithms, Spring 2014, CSE, OSU Lecture 2: Sorting Instructor: Anastasios Sidiropoulos January 10, 2014 Sorting Given an array of integers A[1... n], rearrange its elements so that A[1] A[2]...
More informationComparison Sorts. Chapter 9.4, 12.1, 12.2
Comparison Sorts Chapter 9.4, 12.1, 12.2 Sorting We have seen the advantage of sorted data representations for a number of applications Sparse vectors Maps Dictionaries Here we consider the problem of
More informationCOMP Parallel Computing. PRAM (2) PRAM algorithm design techniques
COMP 633 - Parallel Computing Lecture 3 Aug 29, 2017 PRAM algorithm design techniques Reading for next class (Thu Aug 31): PRAM handout secns 3.6, 4.1, skim section 5. Written assignment 1 is posted, due
More informationQuickSort and Others. Data Structures and Algorithms Andrei Bulatov
QuickSort and Others Data Structures and Algorithms Andrei Bulatov Algorithms Quicksort 5-2 Heap Property A heap is a nearly complete binary tree, satisfying an extra condition Let Parent(i) denote the
More informationReview implementation of Stable Matching Survey of common running times. Turn in completed problem sets. Jan 18, 2019 Sprenkle - CSCI211
Objectives Review implementation of Stable Matching Survey of common running times Turn in completed problem sets Jan 18, 2019 Sprenkle - CSCI211 1 Review: Asymptotic Analysis of Gale-Shapley Alg Not explicitly
More informationCS102 Binary Search Trees
CS102 Binary Search Trees Prof Tejada 1 To speed up insertion, removal and search, modify the idea of a Binary Tree to create a Binary Search Tree (BST) Binary Search Trees Binary Search Trees have one
More informationOperations on Heap Tree The major operations required to be performed on a heap tree are Insertion, Deletion, and Merging.
Priority Queue, Heap and Heap Sort In this time, we will study Priority queue, heap and heap sort. Heap is a data structure, which permits one to insert elements into a set and also to find the largest
More informationSpecial Topics on Algorithms Fall 2017 Dynamic Programming. Vangelis Markakis, Ioannis Milis and George Zois
Special Topics on Algorithms Fall 2017 Dynamic Programming Vangelis Markakis, Ioannis Milis and George Zois Basic Algorithmic Techniques Content Dynamic Programming Introduc
More informationLecture 12 TREES II CS2110 Spring 2018
TREES II Lecture CS0 Spring 08 Announcements Prelim is Tonight, bring your student ID 5:30PM EXAM OLH55: netids starting aa to dh OLH55: netids starting di to ji PHL0: netids starting jj to ks (Plus students
More informationSorted Arrays. Operation Access Search Selection Predecessor Successor Output (print) Insert Delete Extract-Min
Binary Search Trees FRIDAY ALGORITHMS Sorted Arrays Operation Access Search Selection Predecessor Successor Output (print) Insert Delete Extract-Min 6 10 11 17 2 0 6 Running Time O(1) O(lg n) O(1) O(1)
More informationWeek 10. Sorting. 1 Binary heaps. 2 Heapification. 3 Building a heap 4 HEAP-SORT. 5 Priority queues 6 QUICK-SORT. 7 Analysing QUICK-SORT.
Week 10 1 Binary s 2 3 4 5 6 Sorting Binary s 7 8 General remarks Binary s We return to sorting, considering and. Reading from CLRS for week 7 1 Chapter 6, Sections 6.1-6.5. 2 Chapter 7, Sections 7.1,
More informationMore PRAM Algorithms. Techniques Covered
More PRAM Algorithms Arvind Krishnamurthy Fall 24 Analysis technique: Brent s scheduling lemma Techniques Covered Parallel algorithm is simply characterized by W(n) and S(n) Parallel techniques: Scans
More information(D) There is a constant value n 0 1 such that B is faster than A for every input of size. n n 0.
Part : Multiple Choice Enter your answers on the Scantron sheet. We will not mark answers that have been entered on this sheet. Each multiple choice question is worth. marks. Note. when you are asked to
More informationAnalysis of Algorithms. Unit 4 - Analysis of well known Algorithms
Analysis of Algorithms Unit 4 - Analysis of well known Algorithms 1 Analysis of well known Algorithms Brute Force Algorithms Greedy Algorithms Divide and Conquer Algorithms Decrease and Conquer Algorithms
More informationVisualizing Data Structures. Dan Petrisko
Visualizing Data Structures Dan Petrisko What is an Algorithm? A method of completing a function by proceeding from some initial state and input, proceeding through a finite number of well defined steps,
More informationHeap Model. specialized queue required heap (priority queue) provides at least
Chapter 6 Heaps 2 Introduction some systems applications require that items be processed in specialized ways printing may not be best to place on a queue some jobs may be more small 1-page jobs should
More informationSelection, Bubble, Insertion, Merge, Heap, Quick Bucket, Radix
Spring 2010 Review Topics Big O Notation Heaps Sorting Selection, Bubble, Insertion, Merge, Heap, Quick Bucket, Radix Hashtables Tree Balancing: AVL trees and DSW algorithm Graphs: Basic terminology and
More informationPART IV. Given 2 sorted arrays, What is the time complexity of merging them together?
General Questions: PART IV Given 2 sorted arrays, What is the time complexity of merging them together? Array 1: Array 2: Sorted Array: Pointer to 1 st element of the 2 sorted arrays Pointer to the 1 st
More informationParallel Models RAM. Parallel RAM aka PRAM. Variants of CRCW PRAM. Advanced Algorithms
Parallel Models Advanced Algorithms Piyush Kumar (Lecture 10: Parallel Algorithms) An abstract description of a real world parallel machine. Attempts to capture essential features (and suppress details?)
More informationBinary Tree. Preview. Binary Tree. Binary Tree. Binary Search Tree 10/2/2017. Binary Tree
0/2/ Preview Binary Tree Tree Binary Tree Property functions In-order walk Pre-order walk Post-order walk Search Tree Insert an element to the Tree Delete an element form the Tree A binary tree is a tree
More informationCS 361 Data Structures & Algs Lecture 9. Prof. Tom Hayes University of New Mexico
CS 361 Data Structures & Algs Lecture 9 Prof. Tom Hayes University of New Mexico 09-21-2010 1 Today Orderings Searching Sorting Priority Queues & Heaps 2 Order Relation We say a binary relation R is an
More informationDivide and Conquer Sorting Algorithms and Noncomparison-based
Divide and Conquer Sorting Algorithms and Noncomparison-based Sorting Algorithms COMP1927 16x1 Sedgewick Chapters 7 and 8 Sedgewick Chapter 6.10, Chapter 10 DIVIDE AND CONQUER SORTING ALGORITHMS Step 1
More informationSystolic arrays Parallel SIMD machines. 10k++ processors. Vector/Pipeline units. Front End. Normal von Neuman Runs the application program
SIMD Single Instruction Multiple Data Lecture 12: SIMD-machines & data parallelism, dependency analysis for automatic vectorizing and parallelizing of serial program Part 1 Parallelism through simultaneous
More informationSorting (I) Hwansoo Han
Sorting (I) Hwansoo Han Sorting Algorithms Sorting for a short list Simple sort algorithms: O(n ) time Bubble sort, insertion sort, selection sort Popular sorting algorithm Quicksort: O(nlogn) time on
More informationCSci 231 Homework 7. Red Black Trees. CLRS Chapter 13 and 14
CSci 31 Homework 7 Red Black Trees CLRS Chapter 13 and 14 Choose 4 problems from the list below. 1. (CLRS 13.1-6) What is the largest possible number of internal nodes in a red-black tree with black-height
More informationSearching, Sorting. part 1
Searching, Sorting part 1 Week 3 Objectives Searching: binary search Comparison-based search: running time bound Sorting: bubble, selection, insertion, merge Sorting: Heapsort Comparison-based sorting
More informationBrute Force: Selection Sort
Brute Force: Intro Brute force means straightforward approach Usually based directly on problem s specs Force refers to computational power Usually not as efficient as elegant solutions Advantages: Applicable
More informationLecture #2. 1 Overview. 2 Worst-Case Analysis vs. Average Case Analysis. 3 Divide-and-Conquer Design Paradigm. 4 Quicksort. 4.
COMPSCI 330: Design and Analysis of Algorithms 8/28/2014 Lecturer: Debmalya Panigrahi Lecture #2 Scribe: Yilun Zhou 1 Overview This lecture presents two sorting algorithms, quicksort and mergesort, that
More informationCSCI2100B Data Structures Trees
CSCI2100B Data Structures Trees Irwin King king@cse.cuhk.edu.hk http://www.cse.cuhk.edu.hk/~king Department of Computer Science & Engineering The Chinese University of Hong Kong Introduction General Tree
More informationA set of nodes (or vertices) with a single starting point
Binary Search Trees Understand tree terminology Understand and implement tree traversals Define the binary search tree property Implement binary search trees Implement the TreeSort algorithm 2 A set of
More informationHeaps Outline and Required Reading: Heaps ( 7.3) COSC 2011, Fall 2003, Section A Instructor: N. Vlajic
1 Heaps Outline and Required Reading: Heaps (.3) COSC 2011, Fall 2003, Section A Instructor: N. Vlajic Heap ADT 2 Heap binary tree (T) that stores a collection of keys at its internal nodes and satisfies
More informationRandomized Algorithms
Randomized Algorithms Last time Network topologies Intro to MPI Matrix-matrix multiplication Today MPI I/O Randomized Algorithms Parallel k-select Graph coloring Assignment 2 Parallel I/O Goal of Parallel
More informationFinding the axis of symmetry, vertex, and roots of a parabola
Finding the axis of symmetry, vertex, and roots of a parabola 1) Find the Axis of Symmetry of y = x 2-4x + 3 (The AOS is the vertical line that splits the parabola in 2 equal parts) Axis of Symmetry Axis
More information