Thinking in Parallel – Domain Decomposition New Mexico Supercomputing Challenge in partnership with Intel Corp. and NM EPSCoR.

Slides:



Advertisements
Similar presentations
Shared-Memory Model and Threads Intel Software College Introduction to Parallel Programming – Part 2.
Advertisements

Copyright © 2014, 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with C++ Early Objects Eighth Edition by Tony Gaddis,
1copyright (c) Lynda Greene Complete the Square Copyright©2002 Lynda Greene 2copyright (c) Lynda Greene 2002.
TIME TO EXPLORE THE WORLD OF CULTURE So Much to do…..
Chapter 9: Searching, Sorting, and Algorithm Analysis
Thinking in Parallel – Task Decomposition New Mexico Supercomputing Challenge in partnership with Intel Corp. and NM EPSCoR.
Adapted from and Reproduced with permission from BESTEAMS Learning Styles In and Around Team Work: What’s Your Learning Pattern?
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Parallel Programming in C with MPI and OpenMP Michael J. Quinn.
INTEL CONFIDENTIAL OpenMP for Domain Decomposition Introduction to Parallel Programming – Part 5.
INTEL CONFIDENTIAL Confronting Race Conditions Introduction to Parallel Programming – Part 6.
INTEL CONFIDENTIAL OpenMP for Task Decomposition Introduction to Parallel Programming – Part 8.
Chapter 3: The Efficiency of Algorithms
Starting Out with C++: Early Objects 5/e © 2006 Pearson Education. All Rights Reserved Starting Out with C++: Early Objects 5 th Edition Chapter 9 Searching.
1 As Class Convenes u Pick up your team’s folder; remove disk & Course Activity Impact Matrix material; and sign attendance sheet u Get your notebook and.
INTEL CONFIDENTIAL Why Parallel? Why Now? Introduction to Parallel Programming – Part 1.
Thinking in Parallel – Pipelining New Mexico Supercomputing Challenge in partnership with Intel Corp. and NM EPSCoR.
INTEL CONFIDENTIAL Parallel Decomposition Methods Introduction to Parallel Programming – Part 2.
INTEL CONFIDENTIAL Finding Parallelism Introduction to Parallel Programming – Part 3.
Sequences Standard: A.F.IF.3 "Recognize that sequences are functions, sometimes defined recursively, whose domain is the subset of the integers."
D A J M School Darakhshan Lesson Plan Subject: Mathematics Topic: Decimals Date of delivery: Monday, 25 th July’2011 Class: V Prepared by: Miss Musarrat.
A Level Computing#BristolMet Session Objectives U2#S6 MUST identify different data types used in programming aka variable types SHOULD describe each data.
Chapter 15: Apportionment
+ Sunnyside District Day One Math Training Focus 2; Training for Teachers by Math Leaders; Fall 2014.
INTEL CONFIDENTIAL Predicting Parallel Performance Introduction to Parallel Programming – Part 10.
Chapter 3 Parallel Algorithm Design. Outline Task/channel model Task/channel model Algorithm design methodology Algorithm design methodology Case studies.
Math Games Compiled By: Joan Bartlett and Heather Bartlett.
Recognizing Potential Parallelism Introduction to Parallel Programming Part 1.
Copyright © 2006, Intel Corporation. All rights reserved. Intel® Teach Program Thinking with Technology Course © 2007 Intel Corporation. All rights reserved.
Copyright © 2009 Intel Corporation. All rights reserved. Intel, the Intel logo, Intel Education Initiative, and the Intel Teach Program are trademarks.
Julie Hebert Tuneful Tales: Jazz as the Soundtrack to Your Story.
Programs of the Intel® Education Initiative are funded by the Intel Foundation and Intel Corporation. Copyright © 2007 Intel Corporation. All rights reserved.
4-Oct Fall 2001: copyright ©T. Pearce, D. Hutchinson, L. Marshall Sept  direct mode: OK for static addresses  indirect register mode:
Group roles Group Leader You have been assigned the role of the group leader. This job is very important and crucial to the group. As the group leader,
1 How will execution time grow with SIZE? int array[SIZE]; int sum = 0; for (int i = 0 ; i < ; ++ i) { for (int j = 0 ; j < SIZE ; ++ j) { sum +=
Lecture 4 TTH 03:30AM-04:45PM Dr. Jianjun Hu CSCE569 Parallel Computing University of South Carolina Department of.
INTEL CONFIDENTIAL Shared Memory Considerations Introduction to Parallel Programming – Part 4.
Objectives At the end of the class, students are expected to be able to do the following: Understand the searching technique concept and the purpose of.
Developing Sales Forecasts. Sales Forecasts Objectives: Objectives: Determining sales force size. Determining sales force size. Designing territories.
Thinking in Parallel – Implementing In Code New Mexico Supercomputing Challenge in partnership with Intel Corp. and NM EPSCoR.
Entry Task: Add the an entry for 2.14 Mood and Tone (Wonka) in your spiral and add the following two words and definitions: Mood: the atmosphere or predominant.
© Janice Regan, CMPT 128, February CMPT 128: Introduction to Computing Science for Engineering Students Recursion.
Copyright © 2008, Intel Corporation. All rights reserved. Intel, the Intel logo, Intel Education Initiative, and Intel Teach Program are trademarks of.
Searching Topics Sequential Search Binary Search.
3/12/2013Computer Engg, IIT(BHU)1 CONCEPTS-1. Pipelining Pipelining is used to increase the speed of processing It uses temporal parallelism In pipelining,
 Wind Power TEAK – Traveling Engineering Activity Kits Partial support for the TEAK Project was provided by the National Science Foundation's Course,
Chapter I will be able to explain the challenges facing 21 st Century managers 2. I will be able to describe the characteristics and performance.
Thinking in Parallel - Introduction New Mexico Supercomputing Challenge in partnership with Intel Corp. and NM EPSCoR.
Science Fair Project Type your project title in place of the title Your name(s) Your teacher’s name(s) Your school.
Copyright © 2009 Intel Corporation. All rights reserved. Intel, the Intel logo, Intel Education Initiative, and the Intel Teach Program are trademarks.
Human Computer.
A game of precision, quick reaction and observation.
Parallel Programming By J. H. Wang May 2, 2017.
The Binary Number System
Discussion and Conclusion
Gifted Behaviors Rating Scale
Created by Katy Koenen © Microsoft Corporation
Nanotechnology & Society
People Who Did the Study Universities they are affiliated with
Title of session For Event Plus Presenters 12/5/2018.
Measures of Central Tendency
ე ვ ი ო Ш Е Т И О А С Д Ф К Ж З В Н М W Y U I O S D Z X C V B N M
Wednesday, January 13, 2016 Homework: None Your objective:
Parallel Programming in C with MPI and OpenMP
BLOW MINDS! TEACH PHYSICS
BLOW MINDS! TEACH MATH TEACHING: WORTH IT IN MORE WAYS THAN YOU MIGHT THINK... Most people underestimate teacher salaries by $10,000-$30,000 Most teaching.
BLOW MINDS! TEACH CHEMISTRY
This material is based upon work supported by the National Science Foundation under Grant #XXXXXX. Any opinions, findings, and conclusions or recommendations.
BLOW MINDS! TEACH SCIENCE
Serena Alderson Manager of School Partnerships Carnegie Learning, Inc
Presentation transcript:

Thinking in Parallel – Domain Decomposition New Mexico Supercomputing Challenge in partnership with Intel Corp. and NM EPSCoR

Copyrights and Acknowledgments Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States or other countries. New Mexico EPSCoR Program is funded in part by the National Science Foundation award # and the State of New Mexico. Any opinions, findings, conclusions, or recommendations expressed in the material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation. For questions about the Supercomputing Challenge, a 501(c)3 organization, contact us at: challenge.nm.org

Agenda Definition review of domain decomposition Steps involved in domain decomposition Conceptual example of domain decomposition Hands-on domain decomposition parallel activity

Methodology Domain decomposition – Used when the same operation is performed on a large number of similar data items. Task decomposition – Used when some different operations can be performed at the same time. Pipelining – Used when there are sequential operations on a large amount of data.

Domain Decomposition Decide how data items should be divided into groups. Assign each group to a processor. Determine how each processor will report results from its data group, and how those results will be combined.

Domain Decomposition Example Problem: Find the largest element of an array

Domain Decomposition Example Divide the data into groups

Domain Decomposition Example Assign each group to a processor

Domain Decomposition Example Each processor will send answer to central

Domain Decomposition Example Scan 1 st data element and record value

Domain Decomposition Example Scan 2 nd data element and record if higher

Domain Decomposition Example Scan 3 rd data element and record if higher

Domain Decomposition Example Scan 4 th data element and record if higher

Domain Decomposition Example Scan 5 th data element and record if higher

Domain Decomposition Example Scan 6 th data element and record if higher

Domain Decomposition Example CPU sends highest value to central

Domain Decomposition Example CPU sends highest value to central which keeps highest

Domain Decomposition Example CPU sends highest value to central which keeps highest

Domain Decomposition Example CPU sends highest value to central which keeps highest

Activity 1 – Addition with Race Conditions Teams will explore how to use domain decomposition to accomplish the job of adding a set of numbers together. Through this activity, team members will see what can happen when changes are made to shared memory in parallel without regard for possible conflicts. * See handout for detailed instructions

Activity 1 – Setup 1.Divide the numbered cards and 16 Shared Sum cards equally (or roughly so) among the 4 or 5 team members (processors). For example, with 4 processors, each processor will have 4 numbered cards and 4 Shared Sum cards. (The numbered cards should be face down in a pile.) 2.Give a pencil to each processor. 3.Write the number 0 on one of the Shared Sum cards, and place it in the middle of the table, visible to and within reach of all of the processors.

Activity 1 – Execution 1.After all of the processors are given the instructions, start timer. 2.Each processor should perform these steps as quickly as possible: a.Read the value of the current Shared Sum in the middle of the table. b.Turn over the numbered card on the top of the pile. c.Add the value shown on the numbered card to the value read from the Shared Sum card in step a, and write the result on a new Shared Sum card. d.Place the new Shared Sum card on the top of the pile forming in the middle of the table. (Don’t worry if others have placed new Shared Sum cards on the pile while you were processing.) e.Repeat steps a - d until you are out of index cards. 3.Stop timer.

Activity 1 – Debrief Is the Shared Sum (i.e. the value on the top card of the Shared Sum pile) equal to 46? If so, discuss reasons why. If not, discuss reasons why.

Activity 2 – Addition with a Critical Section Teams will explore how to improve accuracy by protecting the shared memory, so that one processor’s changes don’t overwrite those of other processors.

Activity 2 – Setup 1.Divide the numbered cards equally (or roughly so) among the 4 or 5 team members (processors). 2.Write the number 0 on a Shared Sum card, and place it in the middle of the table, visible to and within reach of all of the processors. 3.Place the marker next to the Shared Sum card; this will be the only writing instrument used in this activity.

Activity 2 – Execution 1.After all of the processors are given the instructions, start timer. 2.Each processor should perform these steps as quickly as possible: a.Pick up marker. (Obviously, only one processor can do this at a time.) b.Read the current value of the Shared Sum in the middle of the table. c.Turn over the numbered card on the top of your pile. d.Add the value shown on the numbered card to the value read from the Shared Sum card in step b, and write the result on the Shared Sum card, crossing out the previous value. e.Return the marker to the center of the table. f.Repeat steps a - e until all processors are out of index cards. 3.Stop timer.

Activity 2 – Debrief 1.Is the Shared Sum equal to 46? a.If so, discuss possible reasons for the improved accuracy. These could include: b.If not, discuss possible reasons. 2.Compare times required for processing in activities 1 and 2. Discuss reasons for any difference observed.

Activity 3 – Addition with Reduction Teams will explore how to improve the efficiency of addition by using subtotals.

Activity 3 – Setup 1.Divide the numbered cards equally (or roughly so) among the 4 or 5 team members (processors). 2.Give each processor a Local Memory card, with the number 0 written on it. 3.Give each processor a pencil. 4.Designate one processor as the Master Processor; give a Shared Sum card with the number 0 to this processor.

Activity 3 – Execution 1.After all of the processors are given the instructions, start timer. 2.Each processor should perform these steps as quickly as possible: a.Read the current value of the Local Memory card. b.Turn over the numbered card on the top of your pile. c.Add the value shown on the numbered card to the value read from the Local Memory card in step 1, and write the new result on the Local Memory card, crossing out the previous value. d.Repeat steps a - c until out of numbered cards. e.Hand Local Memory card to Master Processor. 3.Master Processor adds the values of the Local Memory cards to the Shared Sum card. 4.Stop timer.

Activity 3 – Debrief 1.Is the Shared Sum equal to 46? a.If so, discuss possible reasons. b.If not, discuss possible reasons. 2.Compare times required for processing in activities 2 and 3. Discuss reasons for any difference observed.

Activities Review 1.Describe a race condition. 2.What does a critical section do? 3.What is reduction?