This preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentThis preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
Unformatted text preview: The Sieve of Eratosthenes Rajendra V. Boppana Slides adapted from M.J. Quinn, Parallel Programming in C with MPI and OpenMP, McGraw Hill, 2004 Outline •Sequential algorithm •Sources of parallelism •Data decomposition options •Parallel algorithm development, analysis •MPI program enchmarking •Benchmarking •Optimizations CS6643 F'11 Lec12 2 Prime Numbers •A prime number is –Greater than 1 –Can be divided without a reminder by itself and 1 only •2 is the smallest and only even number prime •All numbers that are not prime are called composite numbers CS6643 F'11 Lec12 3 Sieve Algorithm to Find Primes 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 2 3 4 5 6 7 8 9 1 2 3 4 5 6 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 2 4 6 8 2 4 6 3 9 15 21 27 3 9 5 5 25 5 7 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 33 39 45 51 57 35 55 49 Complexity: Θ ( n lnln n ) Need to do this for each prime ≤ n 1/2 CS6643 F'11 Lec12 4 Pseudocode 1. Create list of unmarked natural numbers 2,3,…, n 2. k ← 2 3. Repeat (a) Mark all multiples of k between k 2 and n (b) k ← smallest unmarked number > k until k 2 > n . The unmarked numbers are primes 4. The unmarked numbers are primes CS6643 F'11 Lec12 5 Sources of Parallelism •Checking and marking numbers can be done in parallel •Use domain decomposition –Divide data into pieces –Associate computational steps with data •One primitive task per array element –Agglomerate primitive tasks to get a more practical taskchannel graph •Communication is given in step 3b of pseudo code CS6643 F'11 Lec12 6 Making 3(a) Parallel Mark all multiples of k between k 2 and n ⇒ for all j = k 2 ≤ j ≤ n with increment k do mark j // composite number Endfor Divide the numbers into approximately p equal parts Each task marks composites in its part CS6643 F'11 Lec12 7 Making 3(b) Parallel Find smallest unmarked number > k among the p processes ⇒ allreduce Minreduction (to find smallest unmarked number > k ) + Broadcast (to indicate this number to all tasks) CS6643 F'11 Lec12 8 Agglomeration Goals •Consolidate tasks •Reduce communication cost •Balance computations among processes CS6643 F'11 Lec12 9 Data Decomposition Options •Interleaved (cyclic) –Easy to determine “owner” of each index –Leads to load imbalance for this problem •Block –Balances loads –More complicated to determine owner if n not a multiple of p CS6643 F'11 Lec12 10 Block Decomposition Options •Want to balance workload when n not a multiple of p •Each process gets either n...
View
Full
Document
This note was uploaded on 01/29/2012 for the course CS 6643 taught by Professor Staff during the Fall '08 term at The University of Texas at San Antonio San Antonio.
 Fall '08
 STAFF

Click to edit the document details