Dr. Barry Wilkinson University of North Carolina Charlotte

Slides:



Advertisements
Similar presentations
ITCS 3181 Logic and Computer Systems
Advertisements

Today’s Agenda  Syllabus CS2336: Computer Science II.
ITCS 3181 Logic and Computer Systems
CS/CMPE 535 – Machine Learning Outline. CS Machine Learning (Wi ) - Asim LUMS2 Description A course on the fundamentals of machine.
Outline.1 Grid Computing Fall 2005 Tuesday/Thursday 11:00 am - 12:20 pm Instructors Dr. Barry Wilkinson University of North Carolina at Charlotte and Dr.
AssignPrelim1.1 © 2011 B. Wilkinson/Clayton Ferner. Modification date: Aug 22, 2011 Course Preliminaries.
CMSC 132: Object-Oriented Programming II
CS 331 / CMPE 334 – Intro to AI CS 531 / CMPE AI Course Outline.
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
AssignPrelim1.1 ITCS 4146/5146 Grid Computing, 2007, UNC-Charlotte, B. Wilkinson. Jan 13, 2007 Course Preliminaries.
CS 524 – High- Performance Computing Outline. CS High-Performance Computing (Wi 2003/2004) - Asim LUMS2 Description (1) Introduction to.
1 Workshop 20: Teaching a Hands-on Undergraduate Grid Computing Course SIGCSE The 41st ACM Technical Symposium on Computer Science Education Friday.
COMP 110 Introduction to Programming Mr. Joshua Stough August 22, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307.
Outline.1 Grid Computing Spring 2007 Tuesday/Thursday 11:00 am - 12:15 pm Instructors Dr. Barry Wilkinson University of North Carolina, Charlotte and Dr.
AssignPrelim1.1 © 2010 B. Wilkinson/Clayton Ferner. Modification date: Dec 20, 2009 Course Preliminaries.
Outline.1 Grid Computing Spring 2010 Tuesday/Thursday 11:00 am - 12:15 pm Instructors © 2010 B. Wilkinson/Clayton Ferner. Modification date: Dec 20, 2009.
ITCS 6/8010 CUDA Programming, UNC-Charlotte, B. Wilkinson, Jan 22, 2011assignprelim.1 Assignment Preliminaries ITCS 6010/8010 Spring 2011.
Computer Network Fundamentals CNT4007C
ITCS 4/5145 Parallel Programming, UNC-Charlotte, B. Wilkinson, 2012, Jan 18, 2012assignprelim.1 Assignment Preliminaries ITCS 4145/5145 Spring 2012.
(1) ECE 8823: GPU Architectures Sudhakar Yalamanchili School of Electrical and Computer Engineering Georgia Institute of Technology NVIDIA Keplar.
ITCS 4/5145 Cluster Computing, UNC-Charlotte, B. Wilkinson, 2006outline.1 ITCS 4145/5145 Parallel Programming (Cluster Computing) Fall 2006 Barry Wilkinson.
Course Introduction Software Engineering
ITCS 6/8010 CUDA Programming, UNC-Charlotte, B. Wilkinson, Jan 3, 2011outline.1 ITCS 6010/8010 Topics in Computer Science: GPU Programming for High Performance.
CS355 Advanced Computer Architecture Fatima Khan Prince Sultan University, College for Women.
CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009.
ITCS 4/5010 CUDA Programming, UNC-Charlotte, B. Wilkinson, Dec 28, 2012assignprelim.1 Assignment Preliminaries ITCS 4010/5010 Spring 2013.
CS 140 Computer Programming (I) Second semester (3 credits) Imam Mohammad bin Saud Islamic University College of Computer Science and Information.
CPS120: Introduction to Computer Science Winter 2002 Instructor: Paul J. Millis.
ITCS 4/5010 CUDA Programming, UNC-Charlotte, B. Wilkinson Dec 24, 2012outline.1 ITCS 4010/5010 Topics in Computer Science: GPU Programming for High Performance.
Outline.1 Grid Computing Fall 2008 Tuesday/Thursday 11:00 am - 12:15 pm Instructors Grid Computing, B. Wilkinson, 2008 Aug Dr. Clayton Ferner.
ICS202 Data Structures King Fahd University of Petroleum & Minerals College of Computer Science & Engineering Information & Computer Science Department.
January 16, 2007 COMS 4118 (Operating Systems I) Henning Schulzrinne Dept. of Computer Science Columbia University
Outline.1 Grid Computing Fall 2011 Tuesday/Thursday 9:30 am - 10:45 pm Instructors © 2011 B. Wilkinson/Clayton Ferner. Modification date: Aug 22, 2011.
ITCS 4/5145 Parallel Programming, UNC-Charlotte, B. Wilkinson, Dec 26, 2012outline.1 ITCS 4145/5145 Parallel Programming Spring 2013 Barry Wilkinson Department.
1 "Workshop 31: Developing a Hands-on Undergraduate Parallel Programming Course with Pattern Programming SIGCSE The 44 th ACM Technical Symposium.
1 Workshop 9: General purpose computing using GPUs: Developing a hands-on undergraduate course on CUDA programming SIGCSE The 42 nd ACM Technical.
Cheating The School of Network Computing, the Faculty of Information Technology and Monash as a whole regard cheating as a serious offence. Where assignments.
Introduction Computer Organization Spring 1436/37H (2015/16G) Dr. Mohammed Sinky Computer Architecture
Computer Networks CNT5106C
Operating Systems CMPSC 473 Introduction and Overview August 24, Lecture 1 Instructor: Bhuvan Urgaonkar.
Course Information CSE 2031 Fall Instructor U.T. Nguyen Office: CSE Home page:
Course Book Course Objective - The student will be able to describe various operating system concepts as they are applied to memory, process, file system.
Operating Systems (CS 340 D) Dr. Abeer Mahmoud Princess Nora University Faculty of Computer & Information Systems Computer science Department.
Assignprelim.1 Assignment Preliminaries © 2012 B. Wilkinson/Clayton Ferner. Modification date: Aug 10, 2012.
ITCS 4145 Parallel Computing Spring 2016
Computer Network Fundamentals CNT4007C
Introduction to Operating Systems
Computer Engineering Department Islamic University of Gaza
CS101 Computer Programming I
Computer Networks CNT5106C
Course Information Mark Stanovich Principles of Operating Systems
Constructing a system with multiple computers or processors
Assignment Preliminaries
Computer Science 102 Data Structures CSCI-UA
Computer Networks CNT5106C
Dr. Barry Wilkinson © B. Wilkinson Modification date: Jan 9a, 2014
Dr. Barry Wilkinson University of North Carolina Charlotte
CSC2310 Principles of Computer Programming
Constructing a system with multiple computers or processors
Constructing a system with multiple computers or processors
EE422C Software Design and Implementation II
Constructing a system with multiple computers or processors
Dr. Barry Wilkinson University of North Carolina Charlotte
Assignment Preliminaries
Accelerated Introduction to Computer Science
Computer Networks CNT5106C
EECE.4810/EECE.5730 Operating Systems
CS Problem Solving and Object Oriented Programming Spring 2019
Term Dr Abdelhafid Bouhraoua
CSC4005 – Distributed and Parallel Computing
Presentation transcript:

Parallel Programming Fall 2014 Tuesday/Thursday 2:00 pm - 3:15 pm Instructors Dr. Barry Wilkinson University of North Carolina Charlotte Dr. Clayton Ferner University of North Carolina Wilmington © 2014 B. Wilkinson/Clayton Ferner. Modification date: Aug 21, 2014 outline.1 1 1

Outline These slides constitute the course outline and include the course syllabus and course policies.

Parallel Computing The use of multiple processors or computers to solve problems at a greater computational speed than using a single computer/processor. Basic idea is simple – using N computers/ processors collectively on a problem should lead to a faster solution. Can tackle problems that could not be solved in a reasonable time otherwise. Also solve problems with higher precision and/or with more memory requirements.

Computer platforms for parallel computing Multiple interconnected computers - Cluster Computing, group of interconnected computers typically using Ethernet switch and physically all in one room. 2. A single computer system with multiple internal processors or cores - Usually shares a common main memory Computer system with attached graphic processing unit (GPU) - GPUs have large number of execution cores, now used for high performance computing as well as original graphics application Combination of above most likely.

UNCC cluster used in course ssh to user gateway cci-gridgw.uncc.edu Login coit-grid06 cci-grid07 cci-grid08 coit-grid01 coit-grid02 coit-grid03 coit-grid04 cci-grid09 C2050 GPU (448 core) C2050 GPU (448 core) K20 GPU (2496 core) cci-grid09: Dual AMD Opteron 6376 2.3 GHz 16-core each, with 16 GB main memory RAID1 disks, redundant power supplies, VM, web server, user gateway login, SSH, NAT, DHCP, DNS, and LDAP, etc. coit-grid01-4: Each two Xeon 3.4 Ghz processors, 8GB main memory coit-grid06: GPU server, with NVIDIA 2050 GPU cci-grid08: GPU server, E5-1650 3.2 GHz 6-core Xeon processor with NVIDIA K20 GPU, 32 GB main memory cci-grid07: GPU server, X5560 2.8GHz quad-core Xeon processor with NVIDIA 2050 GPU, 12GB main memory switch cci-grid05: Four quad-core 2.93Ghz Xeon processors 64GB main memory 1.2 TB disk (RAID 5) cci-grid05 All user’s home directories on cci-grid05 (NFS) Has all three types of platform. Note: Some names have been changed from coit- to cci-

UNCW cluster used in course

Your own computer Generally you will need your own computer (desktop or laptop, Windows, Mac, or Linux), as some programming will be done on a local computer in addition to being able to access the remote clusters. (You can use a lab computer although that might not be as convenient for you.) All the software will be provided for download as a VirtualBox Ubuntu virtual machine. You will need to install VirtualBox. Detailed instructions will be provided. Detailed instructions also be provided for a native installation on a Linux distribution if you wish to do that instead.

Course Prerequisites UNC-C Catalog prerequisites: ITCS 2214 (Data Structures), and ITCS 3181/3182 (Computer Architecture). Computer Architecture not strictly necessary so long as you know what a computer consists of (processors, memory and I/O) and how it operates. What is needed -- basic skills in C and Java.

Course Text Parallel Programming: Techniques and Application Using Networked Workstations and Parallel Computers, 2nd edition, by B. Wilkinson and M. Allen, Prentice Hall Inc., 2005, ISBN 0-13-140563-2. Not strictly necessary very detailed on-line notes provided, some derived from the course text – with updated materials since 2005

Home Page http://coit-grid01.uncc.edu/ITCS4145F14/ Password: rp19zb39 For course notes, assignments, announcements, etc.: http://coit-grid01.uncc.edu/ITCS4145F14/ Password protected: Username: pablo Password: rp19zb39 Backup location: cs.uncc.edu/~abw/ITCS4145F14/

Course Contents Parallel computers: architectural types, shared memory, message passing, interconnection networks, potential for increased speed. Parallel patterns for structured parallel programming, motives, advantages, introduction to various patterns, tools.

Course Contents (Continued) Message passing: MPI message passing APIs, send, receive, collective operations. Running MPI programs on a cluster, implement patterns with MPI. More computation patterns and their application, divide and conquer, pipeline, iterative synchronous all-to-all, stencil.

Course Contents (Continued) Programming with shared memory programming: Specifying parallelism, sharing data, critical sections, threads, OpenMP. Running threaded/ OpenMP programs on multi-core system, hybrid MPI/OpenMP programs. CPU-GPU systems: data parallel pattern, GPU architecture, programming in CUDA, issues for achieving high performance.

Course Contents (Continued) Algorithms and applications: Selection from: Sorting algorithms Searching algorithms Numerical algorithms Image processing algorithms

Course Grade Sites with +/- grading Sites without +/- grading Undergraduate Grade Scale A 93 - 100 A- 90 - 92.99 B+ 87 - 89.99 B 83 - 86.99 B- 80 - 82.99 C+ 77 - 79.99 C 73 - 76.99 C- 70 - 72.99 D+ 67 - 69.99 D 63 - 66.99 D- 60 - 62.99 F 0 - 59.99 Graduate Grade Scale A 93 - 100 A- 90 - 92.99 B+ 87 - 89.99 B 83 - 86.99 B- 80 - 82.99 C+ 77 - 79.99 C 73 - 76.99 C- 70 - 72.99 U 0 - 69.99 Undergraduate Grade Scale A 90 - 100 B 80 - 89.99 C 70 - 79.99 D 60 - 69.99 F 0 - 59.99 Graduate Grade Scale A 90 - 100 B 80 - 89.99 C 70 - 79.99 U 0 - 69.99

Computation of Grades Class quizzes (2) 25% Assignments (5-7) 50% Final exam 25% The assessment and percentages may be modified. Read small print

Graduate students There will be additional work in the assignments for graduate students, which will be extra credit for undergraduates.

Student Learning Outcomes (SLOs) The learning outcomes for the UNC-W undergraduate parallel computing course are: Students develop solutions and implement the solutions for scientific problems using multiple processors in a cluster. Students acquire knowledge in writing programs which require processes to synchronize and exchange data using Message Passing Interface (API). Students acquire knowledge in writing programs which require processes to spawn multiple treads that share memory on multiple core processors. Students learn to profile parallel programs by placing event probes and to log them for analysis and tuning of the program performance. The Estimate Curriculum Category Content (Semester hours) is: Area Core Advanced Algorithms 1.0 Software design 0.5 Data structures 0.25 Concepts of programming languages Computer organization and architecture

Code of Student Academic Integrity All submitted assignments must be your own work. Copied work or work done by more than one person (unless specifically instructed) will not be accepted - at the very minimum, zero credit - and may be subject to disciplinary action. The Code of Student Academic Integrity applies to both assignments and quizzes/tests. Required statement

Due dates for assignments Will be posted on home page with assignment. Assignments can be turned in late but with a penalty. Late Penalty < 24 hours 10% > 24 hours and < 48 hours 20% > 48 hours and < 72 hours 30% > 72 hours 100%

Attendance Attendance is expected. At UNC-C -- Attendance will be recorded. If you miss classes, it can have a deleterious effect on your grade: After 4 missed classes without good reason: 2 marks off overall accumulated marks (out of 100) for each additional class missed. If you must miss class, see the instructors beforehand to avoid losing marks.

Mid-Term Unsatisfactory Grades UNC-Charlotte requires midterm unsatisfactory grades to be submitted by the end of the 8th week of class. Mid term grades Undergraduates: Satisfactory or D or F Graduates: Satisfactory or C or U will be based upon all work graded by week 7, which probably will be two assignments and one class test.

Ask questions during class and participate in class discussion. Expectations Read all materials provided. Read slides before class. Take additional notes during class Ask questions during class and participate in class discussion. outline.23 23

NCREN facility (North Carolina Research and Education Network)‏ Each site provides microphones for individuals to speak. Please feel fee to speak at suitable times but remember NCREN needs recognize site and speaker, so first announce your institution and name. Most microphones are turned on all the time. Any sound will be heard across all sites, so avoid unnecessary sounds. Fans from a laptop can be especially disturbing, so move laptop away from a microphone. Turn cell phones off. outline.24 24

NCREN Video Class Recording The lectures are available on-line.   Details to be provided. outline.25 25

Skype (will be on during office hours, username abwilkinson) Instructors details UNC-Charlotte Barry Wilkinson Department of Computer Science University of North Carolina, Charlotte Home page: http://www.cs.uncc.edu/~abw Email: abw@uncc.edu Office Hours Tuesday/Thursday: 9:30 am to 10:30 am  Skype (will be on during office hours, username abwilkinson) or in person in office outline.26 26

UNC-Wilmington Clayton Ferner Department of Computer Science University of North Carolina Wilmington Home page: http://people.uncw.edu/cferner Email: cferner@uncw.edu Office Hours Tuesday/Thursday TBD outline.27 27

Office hours TBD, Woodward 208 Course Teaching Assistant Yasaman Hessary ykamyabh@uncc.edu Office hours TBD, Woodward 208 Contact TA on matters such as user accounts, UNC-C system not functioning, or assignment grades if graded by TA, or general assistance. If a UNC-C system issue, also copy email to abw@uncc.edu For issues with UNC-W system, contact Dr. Ferner. Contact instructors for matters such as course materials or assignment write-up. For issues with virtual machine, contact Dr. Wilkinson

Questions