Spring Syllabus for: CSCI 6360: Parallel Computing CSCI 4320: Parallel Programming. 1 Course Description and Textbook Information

Similar documents
Computer Architecture CSC

CALCULUS I Math mclauh/classes/calculusi/ SYLLABUS Fall, 2003

Syllabus for CHEM 4660 Introduction to Computational Chemistry Spring 2010

BUS Computer Concepts and Applications for Business Fall 2012

EECS 571 PRINCIPLES OF REAL-TIME COMPUTING Fall 10. Instructor: Kang G. Shin, 4605 CSE, ;

ECON492 Senior Capstone Seminar: Cost-Benefit and Local Economic Policy Analysis Fall 2017 Instructor: Dr. Anita Alves Pena

I. PREREQUISITE For information regarding prerequisites for this course, please refer to the Academic Course Catalog.

I. PREREQUISITE For information regarding prerequisites for this course, please refer to the Academic Course Catalog.

COURSE DESCRIPTION PREREQUISITE COURSE PURPOSE

Syllabus - ESET 369 Embedded Systems Software, Fall 2016

COMS 622 Course Syllabus. Note:

Coding II: Server side web development, databases and analytics ACAD 276 (4 Units)

EECS 700: Computer Modeling, Simulation, and Visualization Fall 2014

State University of New York at Buffalo INTRODUCTION TO STATISTICS PSC 408 Fall 2015 M,W,F 1-1:50 NSC 210

Psychology 102- Understanding Human Behavior Fall 2011 MWF am 105 Chambliss

PHY2048 Syllabus - Physics with Calculus 1 Fall 2014

Course Syllabus for Math

CS Course Missive

Office Hours: Mon & Fri 10:00-12:00. Course Description

IST 440, Section 004: Technology Integration and Problem-Solving Spring 2017 Mon, Wed, & Fri 12:20-1:10pm Room IST 202

Computer Organization I (Tietokoneen toiminta)

CS 100: Principles of Computing

CIS 121 INTRODUCTION TO COMPUTER INFORMATION SYSTEMS - SYLLABUS

General Chemistry II, CHEM Blinn College Bryan Campus Course Syllabus Fall 2011

MGMT 479 (Hybrid) Strategic Management

Data Structures and Algorithms

MATH 205: Mathematics for K 8 Teachers: Number and Operations Western Kentucky University Spring 2017

Instructor: Khaled Kassem (Mr. K) Classroom: C Use the message tool within UNM LEARN, or

COURSE WEBSITE:

Class Meeting Time and Place: Section 3: MTWF10:00-10:50 TILT 221

AGN 331 Soil Science Lecture & Laboratory Face to Face Version, Spring, 2012 Syllabus

Business Analytics and Information Tech COURSE NUMBER: 33:136:494 COURSE TITLE: Data Mining and Business Intelligence

ENGLISH 298: Intensive Writing

FINANCE 3320 Financial Management Syllabus May-Term 2016 *

Advanced Multiprocessor Programming

COURSE INFORMATION. Course Number SER 216. Course Title Software Enterprise II: Testing and Quality. Credits 3. Prerequisites SER 215

SYLLABUS. EC 322 Intermediate Macroeconomics Fall 2012

BIODIVERSITY: CAUSES, CONSEQUENCES, AND CONSERVATION

Accounting 380K.6 Accounting and Control in Nonprofit Organizations (#02705) Spring 2013 Professors Michael H. Granof and Gretchen Charrier

Syllabus CHEM 2230L (Organic Chemistry I Laboratory) Fall Semester 2017, 1 semester hour (revised August 24, 2017)

ACCT 100 Introduction to Accounting Course Syllabus Course # on T Th 12:30 1:45 Spring, 2016: Debra L. Schmidt-Johnson, CPA

BIOL Nutrition and Diet Therapy Blinn College-Bryan Campus Course Syllabus Spring 2011

Prerequisite: General Biology 107 (UE) and 107L (UE) with a grade of C- or better. Chemistry 118 (UE) and 118L (UE) or permission of instructor.

AGN 331 Soil Science. Lecture & Laboratory. Face to Face Version, Spring, Syllabus

CS 1103 Computer Science I Honors. Fall Instructor Muller. Syllabus

ENEE 302h: Digital Electronics, Fall 2005 Prof. Bruce Jacob

Syllabus ENGR 190 Introductory Calculus (QR)

Chemistry 106 Chemistry for Health Professions Online Fall 2015

Instructor Dr. Kimberly D. Schurmeier

Language Arts Methods

ebusiness Technologies Spring 2000 Syllabus

GEOG 473/573: Intermediate Geographic Information Systems Department of Geography Minnesota State University, Mankato

I. PREREQUISITE For information regarding prerequisites for this course, please refer to the Academic Course Catalog.

CIS Introduction to Digital Forensics 12:30pm--1:50pm, Tuesday/Thursday, SERC 206, Fall 2015

Spring 2015 Natural Science I: Quarks to Cosmos CORE-UA 209. SYLLABUS and COURSE INFORMATION.

Foothill College Summer 2016

QUEEN ELIZABETH S SCHOOL

General Physics I Class Syllabus

PSYCHOLOGY 353: SOCIAL AND PERSONALITY DEVELOPMENT IN CHILDREN SPRING 2006

Economics 201 Principles of Microeconomics Fall 2010 MWF 10:00 10:50am 160 Bryan Building

General Microbiology (BIOL ) Course Syllabus

MGMT 4750: Strategic Management

Phys4051: Methods of Experimental Physics I

Social Media Journalism J336F Unique ID CMA Fall 2012

SYLLABUS: RURAL SOCIOLOGY 1500 INTRODUCTION TO RURAL SOCIOLOGY SPRING 2017

The Heart of Philosophy, Jacob Needleman, ISBN#: LTCC Bookstore:

POLSC& 203 International Relations Spring 2012

CS 3516: Computer Networks

MGMT 5303 Corporate and Business Strategy Spring 2016

SYLLABUS- ACCOUNTING 5250: Advanced Auditing (SPRING 2017)

U : Survey of Astronomy

Strategy and Design of ICT Services

Physics XL 6B Reg# # Units: 5. Office Hour: Tuesday 5 pm to 7:30 pm; Wednesday 5 pm to 6:15 pm

Strategic Management (MBA 800-AE) Fall 2010

Computer Science 141: Computing Hardware Course Information Fall 2012

ASTRONOMY 2801A: Stars, Galaxies & Cosmology : Fall term

Accounting 312: Fundamentals of Managerial Accounting Syllabus Spring Brown

SOUTHERN MAINE COMMUNITY COLLEGE South Portland, Maine 04106

Ryerson University Sociology SOC 483: Advanced Research and Statistics

HCI 440: Introduction to User-Centered Design Winter Instructor Ugochi Acholonu, Ph.D. College of Computing & Digital Media, DePaul University

*In Ancient Greek: *In English: micro = small macro = large economia = management of the household or family

STA2023 Introduction to Statistics (Hybrid) Spring 2013

Class Mondays & Wednesdays 11:00 am - 12:15 pm Rowe 161. Office Mondays 9:30 am - 10:30 am, Friday 352-B (3 rd floor) or by appointment

Class Tuesdays & Thursdays 12:30-1:45 pm Friday 107. Office Tuesdays 9:30 am - 10:30 am, Friday 352-B (3 rd floor) or by appointment

CHEM 6487: Problem Seminar in Inorganic Chemistry Spring 2010

MAE Flight Simulation for Aircraft Safety

Math 96: Intermediate Algebra in Context

Android App Development for Beginners

Course Policies and Syllabus BUL3130 The Legal, Ethical, and Social Aspects of Business Syllabus Spring A 2017 ONLINE

Office Hours: Day Time Location TR 12:00pm - 2:00pm Main Campus Carl DeSantis Building 5136

U : Second Semester French

BIOL 2421 Microbiology Course Syllabus:

Course Content Concepts

MATH 1A: Calculus I Sec 01 Winter 2017 Room E31 MTWThF 8:30-9:20AM

ACCOUNTING FOR MANAGERS BU-5190-OL Syllabus

Advanced Multiprocessor Programming

FINN FINANCIAL MANAGEMENT Spring 2014

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

I. PREREQUISITE For information regarding prerequisites for this course, please refer to the Academic Course Catalog.

Course Syllabus Chem 482: Chemistry Seminar

Transcription:

Spring Syllabus for: CSCI 6360: Parallel Computing CSCI 4320: Parallel Programming Prof. Christopher D. Carothers Department of Computer Science Rensselaer Polytechnic Institute 110 8th Street Troy, New York 12180 e-mail: chrisc@cs.rpi.edu course website: www.cs.rpi.edu/ chrisc/courses/parallel/spring-2017/index.html phone: (518) 276-2930 fax: (518) 276-4108 Office Hours: MRC 309a, Tuesday and Friday, 2 to 3:30 p.m. and by appointment. Class Time and Location: DCC 330, Tuesdays and Fridays, Noon to 1:30 p.m. January 23, 2017 1 Course Description and Textbook Information This course is an introduction to parallel computing and programming. Topics include, but are not exclusively limited to: Introduction and Motivation: Amdahl s Law, and review of uni-processor memory and CPU organization. Parallel architectures: Message passing, shared-memory system, vector/simd and communications networks. Parallel Programming: Message Passing Interface (MPI), Pthreads, OpenMP, CUDA. Parallel Filesystems: MPI File interface. Performance Analysis Tools: Tau. Partitioned Global Address Languages: UPC and ZPL. Other Parallel Programming Paradigms: MapReduce, Transactional Memory. Fault Tolerance Applications: Computational Fluid Dynamics, Mesh Adaptivity and Parallel Discrete-Event Simulation, Electronic Design Automation. 1

1.1 Prerequisite The principle prerequisite for this class is CSCI 2500, Computer Organization. However, I understand that many of you come from fields of study that are outside of Computer Science. So below I have listed some prerequisites and course assumptions: Some programming experience in Fortran, C, C++. Java is great but not for HPC. You will have a choice to do your assignment in C, C++ or Fortran subject to the language support of the programming paradigm. This course assumes you have never touched a parallel or distributed computer. However, we do assume you have touched a computer and have some knowledge of Linux/Unix as all of our parallel computing systems only use the Linux OS. You should possess a strong desire and love to write software. While both theory and practice are presented in lecture, the class assignments and group project is focused on getting real programs to execute in parallel such that performance improvement is demonstrated. 1.2 Optional Textbooks Introduction to Parallel Computing, by Grama, Gupta, Karypis and Kumar. Make sure you have the 2nd edition. This book is available online atamazon.com. An Introduction to Parallel Programming, by Peter S. Pancheo, 2011. 2 Performance Expectations As a professor, student adviser and course instructor, I get asked, Is Parallel Computing/Programming Hard?. If you like writing software and you enjoy the challenging task of debugging programs that have a non-deterministic execution order when not properly made to execute in parallel, this is the course for you. Also, if you are a performance junky and like to tweak programs to make them run as fast as possible, this course is for you. If you are a weak programmer or you do not really enjoy writing software, then I would say this course is probably not your cup of tea. If you find yourself getting deadlocked (pun intended) on an assignment and you are unable to make progress, please contact Prof. Carothers and/or the TA(s) early. Do not wait until the last minute. Also, do not try to stay up all night in a marathon debugging session. Try to work smarter by asking questions and getting help from the instructor and our class TA(s). 3 Graduate Teaching Assistants We have the following 2 Graduate TAs assigned to our class. 1. Konstantin Kuzmin. Email: kmkuzmin@gmail.com. Office hours: Mondays, 2 pm - 4 pm in Amos Eaton 127. 2

2. Daniel Park. Email: parkd5@rpi.edu. Office hours: Wednesdays, 2 pm - 4 pm in Amos Eaton 127. 4 Course Format and Schedule of Topics This course is largely a lecture format where class readings will come from the conference, journal articles and technical reports. The anticipated order of topics is: Introduction and Motivation: Amdahl s Law, and review of uni-processor memory and CPU organization. Parallel architectures: Message passing, shared-memory system, vector/simd and communications networks. Parallel Programming: Message Passing Interface (MPI), Pthreads, CUDA. Parallel Filesystems: MPI File interface. Performance Analysis Tools: Tau. Partitioned Global Address Languages: UPC and ZPL. Other Parallel Programming Paradigms: MapReduce, Transactional Memory. Fault Tolerance Applications: Computational Fluid Dynamics, Mesh Adaptivity and Parallel Discrete-Event simulation, Neuromorphic Computing. 5 Schedule of Homeworks and Quizzes and NO CLASS days The approximate schedule of class assignments is as follows: Assignment 1 assigned on Friday, January 20th, due on Tuesday, January 31st. Assignment 2 assigned on Tuesday, January 31st, due on Tuesday, February 13th. Assignment 3 assigned on Tuesday, February 13th, due on Tuesday, February 27th. Assignment 4 assigned on Tuesday, February 27th, due on Tuesday, March 13th. (Note: online submission possible because of Spring break). Assignment 5 assigned on Friday, March 10th, due on Friday, March 24th. Assignment 6 assigned on Friday, March 24th, due on Friday, April 7th. Project assigned on Friday, March 24th, due on Tuesday, May 2nd. 3

NOTE: The CCI has bi-weekly maintenance on Tuesdays where no jobs will be run from 9 a.m. til 5 p.m. First maintenance session of the semester is Tuesday, January 17th. Also, all assignments will be turned in on the class Linux server, kratos.cs.rpi.edu. Accounts for this system will be given out in class on Friday, January 20th. The NO CLASS days are as follows: Tuesday, February 21th President s Day Holiday, follow Monday Schedule. Tuesday, March 14th SPRING BREAK. Friday, March 17th SPRING BREAK. Note that Tuesday, May 2nd is the last day of class. 6 Grading and Other Class Policies 48%: 6 programming assignments worth 8 pts each. Some maybe group assignments. 22%: 22 reading/lecture summaries (across approx. 25 lectures) each counts 1pt. 30%: Group project. Attendance Policy: Attendance at lectures is not required, but it will be very hard to write the summary without having attended lecture. Late Assignments Policy: Late assignments and summaries will not be graded. You will get a zero for that assignment, except under extenuating circumstances, such as illness, family death etc. If you are ill, please be prepared to provide a note from the health center or your own family physician. Grade Modifiers Policy: Grade modifiers will be used in this class. Nominally, for example, you expect to earn a B- if your score is greater than 79.5 and less than 83.0, B if your score is greater than 83 and less than 86, B+ if your score is greater than 86 and less than 89.5. The similar modifier points occur for the A, C and D ranges except that there is no A+ nor is a D- allowed under the RPI Grade Modifier Policy. Assignment Grading Criteria: Programming assignments are graded as follows: 15% for proper comments (e.g., each function should indicate what it does) and 85% for a correct working implementation. We typically divide the correctness points over key functions working. For example, file reading - worth 10 points, file writing worth 10 points, and then doing the calculation correctly worth 65 points. Note that programs that either don t compile or generate a core dump typically get no more than 20 points of the 85. Thus, your max score for a properly commented program that fails in some fundamental way is only 35 points even if you spent 100 hours of time on it. Non-programming assignments/homeworks are graded on a per-problems basis. Typically 5 problems will be given and each is worth 20 points. 4

7 Academic Integrity While I strongly encourage you to form study groups and work together in learning this material, the programming assignments are to be done individually unless otherwise noted by the assignment/project specification. What this means is that you should do whatever is necessary to ensure your work remains your work. For example, in doing programming assignments you might want to prepend variable names with your initials. If during the grading process, it is determined that students shared or duplicated work, those students will automatically take a zero for the offense plus a 5 point total average deduction. For a second offense, the student or students involved will fail this course and a report will be sent to the Dean of Students office which could result in additional disciplinary action. 8 Learning Outcomes By the end of this course, you will be able to: 1. Apply the concept of the Amdahl s Law to the estimation of the fraction of a program that can be serialized and still yield a good speedup / program performance improvement. 2. Apply the concepts of a Parallel Computer Architecture by creating a parallel program that will maximize the performance of the parallel program when executed on that class of parallel computing systems. 3. Apply the concepts of Message Passing to the creation of a program that executes efficiently on this class of parallel computer architecture. 4. Apply the concepts of Threads to the creation of a program that executes efficiently on this class of parallel computer architecture. 5. Apply the concepts of CUDA to the creation of a program that executes efficiently on this class of parallel computer architecture. 6. Apply the concepts of Parallel File I/O to the creation of a parallel program that efficiently reads and writes data to disk. 7. Apply the concepts of Fault Tolerance to the creation of a parallel program that will checkpoint its state and enable the ability to be re-started at some point in its execution cycle near to when it failed. 8. Apply the concepts of Performance to the analysis of computer performance problems. 9. Apply the concepts of Performance Counters to the analysis of parallel program performance. 5