Intro to Parallel Computing
Topic 0: Course Introduction
COSC 407: Intro to Parallel Computing
Topic 0: Introduction COSC 407: Intro to Parallel Computing
The Instructor
Professor:
Office Location
Office Phone
On course outline
Credit Hours
Presentation format
Lecture 3 hrs/wk, Lab 2 hrs/wk,
Prerequisite:
Either (a) COSC 111 or (b) APSC 177. (Third-year standing is required.)
Course website:
Canvas– Check frequently
Topic 0: Introduction COSC 407: Intro to Parallel Computing
The Course
§ Description:
– Designandimplementationofparallelprogramsincluding
theoretical computer models, parallel architectures (distributed, multicore, GPU), and standard parallel libraries
§ Topics include
– Basicsofparallelcomputing
– PosixThreads
– OpenMP(sharedmemory,multicore,threads) – CUDA(GPUprogramming)
– MPI(inter-processcommunication)
Prerequisite
– 3rdyearstandingandeitherCOSC-111orAPSC-177
Topic 0: Introduction COSC 407: Intro to Parallel Computing
COSC 407 Assessment
§ In-class/Canvas Quizzes § Lab Assignments
§ Two Midterm Exams
§ Final Exam
10% (using iClicker Cloud/Canvas) 20%
20% – 40% (in-class)
30% – 50% (cumulative)
Clickers: Full mark for correctly answer 80% of all questions.
Midterms are used to improve your mark, not to penalize.
They will help prepare for the final exam. There is 70% of the course grade for all exams.
The exams mark is calculated based on the best of the following options:
§ You must get a combined grade of 50% on all exams and labs to pass the course
Topic 0: Introduction COSC 407: Intro to Parallel Computing
COSC 507 Assessment
§ In-class Quizzes 10% (using clickers)
§ Lab Assignments 10%
§ Project 10%
§ Two Midterm Exams 20% – 40% (in-class)
§ Final Exam 30% – 50% (cumulative) Notes:
Clickers: Full mark for correctly answer 80% of all questions.
Midterms are used to improve your mark, not to penalize.
They will help prepare for the final exam. There is 70% of the course grade for all exams.
The exams mark is calculated based on the best of the following options:
§ You must get a combined grade of 50% on all exams and labs to pass the course
Topic 0: Introduction COSC 407: Intro to Parallel Computing
§ Lab assignments are critical to learning the material and are designed to prepare you for the exams.
§ The lab component is worth 20% of the total grade (different for grad students).
§ In each lab you will work on assignments with a TA available to provide you with guidance and support.
§ The assignments must be done INDIVIDUALLY (no group work).
§ Focus on programming to help to re-enforce the concepts – Notnecessarilylongprogramsbuttheyrequirethought
about how to implement
Topic 0: Introduction COSC 407: Intro to Parallel Computing
Assignments
§ Assignments are due after one or two weeks from the lab time (dates are indicated in lab assignments)
– Planworkloadahead
§ Except for extreme situations (e.g., illness, childbirth, or bereavement supported by a written proof such as a doctor’s note), late assignments will not be accepted
Topic 0: Introduction COSC 407: Intro to Parallel Computing
Only for COSC 507 students
§ Grad Students enrolled in COSC 507 are required to work on a small project in groups
§ their results live as part of the last lecture on Dec 7th
§ Details will be shared with graduate students regarding projects
Topic 0: Introduction COSC 407: Intro to Parallel Computing
Missed Exams /Clickers
§ Without acceptable excuse
– …accordingtheUBCOkanagan’spolicyonexcusedabsences
from examinations – gradeis0.
§ With acceptable excuse: – Midterms:
• Weight shifted to the final exam. – Final:
• Must contact the Dean’s office to arrange for an out-of-time exam.
§ Missed clickers:
– noanswerswillbeacceptedexceptthoseprovidedduring
the lecture time using your own clicker account.
Topic 0: Introduction COSC 407: Intro to Parallel Computing
Course Format
§ Lecture (see the schedule in the syllabus) – 1Synchronous(livestream)lecture
• Thursdays
• May include clicker questions
– Need iClicker Cloud account. – 1Asynchronouslecture
• Tuesdays
• Pre-recorded video
– Gradedcanvasquizthatmustbesolvedbeforethenextlive
lecture (there is a due date) based on materials. § Labs
– InPerson § Exams
– AllasCanvasQuizzes
§ See the syllabus for more details
Topic 0: Introduction
COSC 407: Intro to Parallel Computing
Required Equipment
§ For exams:
– Acomputerwithreliableinternet+microphone+webcam
– aquietroom
§ For livestream meetings
– Acomputerwithreliableinternet+microphone(ifyou
intend to ask questions)
– Webcamrecommended
– iClickerCloudaccount.
• You don’t have to use your real name, email, or student ID.
• But you MUST link your clicker account to your Canvas account.
• Instructions: https://lthub.ubc.ca/guides/iclicker-cloud-student- guide
§ Check here for more info: https://keeplearning.ubc.ca/setting-up.
Topic 0: Introduction COSC 407: Intro to Parallel Computing
Textbook/Reference Materials
§ Course website and Canvas
– Discussion forum, lecture notes, posted links
§ Recommended readings (available online through library)
– Pacheco, P. S. An introduction to Parallel Programming, MK, 2011
– Kirk, D. B. & Hwu, W.-m. W. Programming Massively Parallel Processors: A
Hands-on Approach, MK., 2010 § Additional references:
– Rauber, T. & Rünger, G. Parallel Programming: for Multicore and Cluster Systems, Springer, 2010
– Eijkhout, V. Intro to High-Performance Scientific Computing, available online at lulu.com, 2010.
– Sanders, J. & Kandrot, E. CUDA by Example: An Introduction to General-Purpose GPU Programming, Addison- , 2010
– Burden, R. L. & Faires, J. D. Numerical Analysis, Brooks/Cole, 9th ed, 201
Topic 0: Introduction COSC 407: Intro to Parallel Computing
§ My Goals for this course:
– Haveyoubesuccessfulinthecoursebylearningand
understanding the materials
– Summarizeanddocumenttheinformationinasimple, concise, and effective way for learning.
– Presenttheinformationinaninterestingmannerto encourage learning.
– Beavailableforquestionsduringclasstime,officehours, and at other times as needed.
§ This material is challenging; to be successful, you must prepare to put enough effort and planning
Topic 0: Introduction COSC 407: Intro to Parallel Computing
How to Pass the Course
The most important things to do to pass this course:
– Attend class/review lectures ahead of time (important!)
– Practice on class materials as soon as possible (critical!)
– Attend labs
– Participate!
– Take notes
– Ask questions (chat, email, interrupt me)
– Do the assignments early as they are designed to help re-
enforce the lecture materials
– Keep up with reading and review
– Plan to spend at least 6 hours/week of out-of-class activities
Topic 0: Introduction COSC 407: Intro to Parallel Computing
Academic Integrity
§ Cheating in all its forms is strictly prohibited and will be taken very seriously bytheinstructor. NOGROUPWORKisallowed!
§ Examples of what constitutes cheating: – Assignments
• Working in groups to solve questions and/or comparing answers to questions once they have been solved (except for group assignments).
• Discussing HOW to solve a particular question instead of WHAT the question involves.
§ Academic dishonesty may result in
– an “F” for the assignment or course
– all instances are recorded in the Dean’s office.
– more serious consequences.
§ More info here:
– http://okanagan.students.ubc.ca/calendar/index.cfm?tree=3,54,111,0 – https://science.ok.ubc.ca/student-resources/academic-integrity
Topic 0: Introduction COSC 407: Intro to Parallel Computing
The Course Syllabus
§ Please read the course syllabus on Canvas as it contains important details
Topic 0: Introduction COSC 407: Intro to Parallel Computing
What We’ll Be Doing
§ Learning to write programs that are explicitly parallel (or at least contain some parallel aspects…..)
– Different types of parallelism
§ Using the C language
§ Examining different extensions to C.
– POSIXthreads(pThreads)
– Message-PassingInterface(MPI)
§ If time allowWs: – JavaThreads
Topic 0: Introduction
COSC 407: Intro to Parallel Computing
Thoughts on Parallel Computing
§ If one ox could not do the job they did not try to grow a bigger ox, but used two oxen. When we need greater computer power, the answer is not to get a bigger computer, but . . .to build systems of computers and operate them in parallel.
Topic 0: Introduction COSC 407: Intro to Parallel Computing
Thoughts on Parallel Computing
§ If you were plowing a field, which would you rather use? Two strong oxen or 1024 chickens?
Topic 0: Introduction
[on Comparing the power of supercomputers versus parallel computing.]
COSC 407: Intro to Parallel Computing
Acknowledgement
§ Course material are based on:
– MaterialfrompriorcoursesandCUDAresearchprojects
(database and ciphering)
– Dr.YvesLucet’s&Dr.AbdallahMohamed’smaterial
• Previous course instructors
– Textbooks
– Severalonlineresources
Topic 0: Introduction COSC 407: Intro to Parallel Computing