CSC 766 Course Syllabus

CSC 766 – Code Optimization for Scalar and Parallel Programs

Spring 2018

3 Credit Hours

Course Description

With the increasing diversity and complexity of computers and their applications, the development of efficient, reliable software has become increasingly dependent on automatic support from compilers and other program analysis and translation tools. This course covers principal and emerging topics in understanding and transforming programs for efficiency, including data flow analysis, polyhedra analysis, optimizations for massively parallel programs (e.g., GPU) and distributed applications (e.g., data center programs), the reciprocity between code optimizations and machine learning, domain specific languages, and program synthesis.

Learning Outcomes

By the end of the course, students should be able to do the following.

Course Structure

The course will be primarily based on lectures and student presentations.

Instructors

Xipeng Shen (xshen5) - Instructor
Email: xshen5@ncsu.edu
Phone: 919-513-7577
Office Location: EBII 3276
Office Hours: 1:40-2:30pm Tuesday.

Course Meetings

Lecture

Days: MWF
Time: 11:45am - 1pm
Campus: Centennial
Location: EBII 01227
This meeting is required.

Course Materials

Reference Textbooks

Compilers: Principles, Techniques, and Tools - Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman
Edition: 2
Web Link: here
This textbook is optional.
Engineering a Compiler - Keith D. Cooper and Linda Torczon
Edition: 2
ISBN: 978-0120884780
Web Link: here
This textbook is optional.
Optimizing Compilers for Modern Architectures - Randy Allen and Ken Kennedy
Edition: 1
Web Link: here
This textbook is optional.

Expenses

None.

Materials

None.

Requisites and Restrictions

Prerequisites

CSC 451 or CSC 501 (Operating Systems). Helpful: CSC 253 (C and C++ for Java Programmers), CSC 224 (Applied Discrete Mathematics), CSC 234 (Computer Organization & Assembly Language), and MA 121 (Calculus), CSC 512 (Compiler Construction), CSC 548 (Parallel Systems).

Co-requisites

None.

Restrictions

None.

General Education Program (GEP) Information

GEP Category

This course does not fulfill a General Education Program category.

GEP Co-requisites

This course does not fulfill a General Education Program co-requisite.

Transportation

This course will not require students to provide their own transportation. Non-scheduled class time for field trips or out-of-class activities is NOT required for this class.

Safety & Risk Assumptions

None.

Grading

Grade Components

ComponentWeightDetails
Final Project 40%

The final project will be an individual programming project.

Assignments 20%

There will be about two or three written assignments.

Presentation 30%

Each student will give several presentations on some papers on emerging directions on code optimizations. One may choose to substitute (up to two) coding projects for (up to two) paper presentations.

Participation 10%

Students are required to attend the lectures and actively participate in class discussions.

Letter Grades

This Course uses the Following (Non-Standard) Letter Grading Scale:
97%A+100%
93%A<97%
87%A-<93%
85%B+<87%
80%B<85%
75%B-<80%
70%C+<75%
65%C<70%
60%C-<65%
56%D+<60%
50%D<56%
45%D-<50%
0%F<45%

Requirements for Credit-Only (S/U) Grading

Performance in research, seminar and independent study types of courses (6xx and 8xx) is evaluated as either "S" (Satisfactory) or "U" (Unsatisfactory), and these grades are not used in computing the grade point average. For credit only courses (S/U) the requirements necessary to obtain the grade of "S" must be clearly outlined.

Requirements for Auditors (AU)

Information about and requirements for auditing a course can be found at http://policies.ncsu.edu/regulation/reg-02-20-04.

Policies on Incomplete Grades

If an extended deadline is not authorized by the Graduate School, an unfinished incomplete grade will automatically change to an F after either (a) the end of the next regular semester in which the student is enrolled (not including summer sessions), or (b) by the end of 12 months if the student is not enrolled, whichever is shorter. Incompletes that change to F will count as an attempted course on transcripts. The burden of fulfilling an incomplete grade is the responsibility of the student. The university policy on incomplete grades is located at http://policies.ncsu.edu/regulation/reg-02-50-03. Additional information relative to incomplete grades for graduate students can be found in the Graduate Administrative Handbook in Section 3.18.F at http://www.fis.ncsu.edu/grad_publicns/handbook/

Late Assignments

No late assignments will be accepted. If an emergency (e.g., hospitalization) prevented an assignment from being submitted, its grade will be determined by averaging the completed assignments in the same category. Instructor may grant an extension if a student has some extenuating circumstances warranting it (which is very rare). Student must receive this extension by noon the day it is due. Note: requesting an extension is not the same as receiving it.

Attendance Policy

For complete attendance and excused absence policies, please see http://policies.ncsu.edu/regulation/reg-02-20-03

Attendance Policy

Students are expected to attend. Class periods will contain material that is not in the reading assignments that students are responsible for knowing. While every effort is made to provide critical information via electronic resources (web page, mailing list, etc.), some information may not show up outside class in a timely manner (or at all). Although this is accidental, students are nevertheless responsible for all information presented in class.


Absences Policy

None.

Makeup Work Policy

None.

Additional Excuses Policy

None.

Academic Integrity

Academic Integrity

Students are required to comply with the university policy on academic integrity found in the Code of Student Conduct found at http://policies.ncsu.edu/policy/pol-11-35-01

 

Students are expected to maintain high standards of academic integrity and honesty. University guidelines regarding academic integrity will be followed. Cheating will result in disciplinary actions, up to the full penalties specified in the guideline. A grade of zero will be given to the assignment in question for a minor offense. A major offense, including any violation on a test, could result in failure of the course. All suspected violations will be reported to the Office of Student Conduct, where a guilty outcome on a second offense can mean suspension from the university.

 

Please keep in mind that academic integrity in the classroom translates to professional integrity in the workplace. Moreover, awarding similar grades to students who have maintained academic integrity and to students who have cheated results in conferring equivalent degrees on them, and reduces the value of that degree in the workplace. It is the responsibility of every student as well as the instructor and TA to see that this is not allowed to happen.

 

Academic Honesty

See http://policies.ncsu.edu/policy/pol-11-35-01 for a detailed explanation of academic honesty.

None.

Honor Pledge

Your signature on any test or assignment indicates "I have neither given nor received unauthorized aid on this test or assignment."

Electronically-Hosted Course Components

Students may be required to disclose personally identifiable information to other students in the course, via electronic tools like email or web-postings, where relevant to the course. Examples include online discussions of class topics, and posting of student coursework. All students are expected to respect the privacy of each other by not sharing or using such information outside the course.

Electronically-hosted Components: online discussions of class topics

Accommodations for Disabilities

Reasonable accommodations will be made for students with verifiable disabilities. In order to take advantage of available accommodations, student must register with the Disability Services Office (http://www.ncsu.edu/dso), 919-515-7653. For more information on NC State's policy on working with students with disabilities, please see the Academic Accommodations for Students with Disabilities Regulation at http://policies.ncsu.edu/regulation/reg-02-20-01.

Non-Discrimination Policy

NC State University provides equality of opportunity in education and employment for all students and employees. Accordingly, NC State affirms its commitment to maintain a work environment for all employees and an academic environment for all students that is free from all forms of discrimination. Discrimination based on race, color, religion, creed, sex, national origin, age, disability, veteran status, or sexual orientation is a violation of state and federal law and/or NC State University policy and will not be tolerated. Harassment of any person (either in the form of quid pro quo or creation of a hostile environment) based on race, color, religion, creed, sex, national origin, age, disability, veteran status, or sexual orientation also is a violation of state and federal law and/or NC State University policy and will not be tolerated. Retaliation against any person who complains about discrimination is also prohibited. NC State's policies and regulations covering discrimination, harassment, and retaliation may be accessed at http://policies.ncsu.edu/policy/pol-04-25-05 or http://www.ncsu.edu/equal_op/. Any person who feels that he or she has been the subject of prohibited discrimination, harassment, or retaliation should contact the Office for Equal Opportunity (OEO) at 919-515-3148.

Course Schedule

NOTE: The course schedule is subject to change.

Lectures 01/11/2018 - 01/18/2018

Data flow analysis.

Lectures 01/23/2018 - 01/25/2018

Ployhedral analysis

Lectures 01/30/2018 - 02/08/2018

Optimizations with massive parallelism

Lectures 02/13/2018 - 02/22/2018

Optimizations for distributed computing

Lectures 02/27/2018 - 03/20/2018

Optimizations and machine learning

Lectures 03/22/2018 - 04/05/2018

Domain specific languages for optimizations

Lectures 04/10/2018 - 04/24/2018

Program synthesis for optimizations

Lectures 04/26/2018 - 04/26/2018

Summary