Hello, if you have any need, please feel free to consult us, this is my wechat: wx91due
CSE 6230 Syllabus - Georgia Institute of Technology
High Performance Parallel Computing: Tools and Applications
Credits: 3.000
Tu/Th 5:00-6:15 pm @ Ford Environmental Sci & Tech L1255
Instructor information:
Instructor:
Professor Helen Xu
Email: [email protected]
Office: Coda S1315
Weekly office hours (online in the same zoom room as the classroom): Thursday 2-3 PM
Teaching assistants:
Kaan Sancak
Email: [email protected]
Weekly office hours (online in the same zoom room as the classroom): Wednesday 1:30 - 2:30 PM
Abhishek Kalokhe
Email: [email protected]
Weekly office hours in person in KACB 3121: Monday 2:30 - 3:30 PM
General information
Description
Achieving the full potential of modern computing platforms at all scales from cell phones and laptops up to supercomputers is imperative for meeting the ever-growing demand for computational power. Unfortunately, the computational power of modern machines comes with a great deal of complexity, such that exploiting even a fraction of a computing platform’s potential requires a deep understanding of all layers of the underlying platform as well as the application at hand. Learning and taking complete advantage of modern machines is necessary to develop high-performance codes that can process greater volumes of data orders of magnitude more efficiently, which will become increasingly important as data and problem sizes continue to grow.
This course teaches hands-on practical performance engineering on high-performance computer systems, starting with single-processor multicore platforms up to large-scale distributed systems. Topics include cache-friendly algorithm analysis and implementation, parallel programming, concurrent data structures, tools for effective performance engineering, and modern high-performance computing (HPC) applications.
Pre- &/or Co-Requisites
● Proficiency in C/C++ programming.
● Algorithms and data structures.
○ Preferred courses:
■ Algorithms (one of CS 6550 / CSE 6140 / CSE 6220)
■ Data structures (e.g., CS 1332)
● Operating systems basics (optional but preferred)
Course Goals and Learning Outcomes
After completing this course, students should have the following capabilities:
● Design high-performance code. Good design requires not only good algorithms for the problem at hand but also good understanding of the underlying computer system via performance models. This course will discuss practical performance modeling of current architectures, including multi-core, coprocessor (e.g., GPUs) and many-core designs.
● Implement fast code for shared-memory machines, distributed-memory machines, and GPUs.
● Become familiar with a variety of use cases for high-performance computing from different domains.
● Present and write up their proposed work and results clearly.
Course requirements & grading:
Assignment Distribution and Grading Scale
Assignment |
Due date |
Weight (%) |
Survey |
Jan 12 |
1 |
Pre-proposal |
Jan 18 |
2 |
Homework 1: Cache-friendly programming |
Jan 22 |
5 |
Homework 2: Shared-memory programming |
Feb 6 |
5 |
Homework 3: Data-level parallelism |
Feb 15 |
5 |
Homework 4: MPI |
Feb 27 |
5 |
Homework 5: Cuda |
Mar 7 |
5 |
Project proposal writeup |
Mar 12 |
9 |
Project proposal presentation |
Mar 12 |
9 |
Project midpoint report |
Apr 5 |
6 |
Final project writeup |
May 2 |
18 |
Final project presentation |
Apr 16 |
18 |
Guest lecture summaries |
One week after the respective lecture |
12 (6 summaries @ 2% each) |
Total |
|
100 |
Extra credit |
May 2 |
Up to 4 |
All assignments are due at 4:55pm on their due date.
Grading Scale
Grades will be earned according to the standard scale:
A 90-100%
B 80-89%
C 70-79%
D 60-69%
F 0-59%
● Passing grades for Pass/Fail students are C or better.
● Auditing students are welcome to come to office hours to discuss exercises and projects; they may also submit code components of homework for automatic evaluation (e.g., we will put their submissions into the queue for benchmarking scripts). They will not, however, receive graded feedback.
Description of Graded Components
Survey
The pre-course survey (link here) will help me to understand students’ background knowledge and interests to help guide the course pace and topics. There are no right or wrong answers. The questions are also intended to help serve as a check for students to make sure they have the necessary prerequisite knowledge about the foundations of the course (e.g., C programming, algorithm analysis, etc.).
Pre-proposal
The pre-proposal is a warm-up exercise to practice reading and understanding state-of-the-art work in high-performance computing. The high-level goal is to read one paper on a modern parallel application, summarize it, and assess its strengths and weaknesses. The summaries may help students choose final projects. Further guidelines will be posted on Canvas.
Programming homework
The course will have 5 programming homeworks to reinforce the topics covered with hands-on implementations. They will include exercises in coding as well as exercises in using performance engineering tools. They will be as follows:
● Cache-friendly programming (HW1)
● Shared-memory programming (HW2)
● Data-level parallelism / vectorization (HW3)
● MPI (HW4)
● Cuda (HW5)
Project proposal writeup & presentation
The first step in the final project is to gather a group of 3 students and propose a project. The proposed project must
● be relevant to the topics discussed in class,
● require significant programming effort from all team members,
● be unique (i.e., two groups cannot pick the same idea), and
● be approved by the instructor.
The course staff will provide sample project topics, or you are free to choose your own.
There will be two deliverables at this stage: a writeup and an in-person presentation. The write-up should include
● the problem statement,
● approach,
● an evaluation plan, and
● a weekly timeline of expected milestones.
The presentation should cover all of these aforementioned points.
Project midpoint report
About halfway through the project timeline, each group will submit a midpoint report on
● their progress so far,
● a breakdown of the contribution among group members so far,
● any obstacles they encountered,
● changes to the proposed tasks / approach (if any), and
● a schedule of the remaining work to be done.
The midpoint report is intended to make sure everyone is making progress and to catch any major issues early (rather than right before the final project deadline).
Final project writeup & presentation
At the end of the semester, each group will produce a research-paper-like report on their final project. These will include sections such as:
● Introduction
● Background
● Project contribution
● Results / evaluation
● Conclusion
● References
In addition to these sections, the writeup should include a breakdown of the contributions for each member in the group.
Just as in the proposal stage, there will be two deliverables: a writeup and an in-person presentation.
You are required to cite all sources you use in your paper. This includes both direct quotations and cases where you use someone else’s ideas. “Sources” include papers, journals, conversations, anything found on the internet, and so on. Basically, if the thought did not originate from you, you should provide a source.
Guest lecture summaries
After spring break, we will have guest lectures (the presenters will be over zoom, but I will be in the classroom to run them in hybrid mode).
For each guest lecture after the break, every student will turn in a summary of the lecture (similar in format and content to the pre-proposal). The corresponding report will be due one week after that lecture. For example, for the lecture on Tuesday, March 26, the corresponding report will be due Tuesday, April 2 (at 4:55 PM).
Extra Credit Opportunities
For extra credit, you may choose UP TO TWO papers from a list that I will provide (or choose your own paper(s)) and write reviews of the paper(s).
Each review can be up to 2% of the final grade (equal to the pre-proposal and guest lecture reports), for a total of 4% extra credit.
These extra credit assignments may be submitted at any time until the end of the semester (same deadline as the final project).
Submitting Assignments - How, Where, and When
We will use Canvas for submitting and managing assignments.
For the coding homeworks, students will submit their code via Canvas.
For the final project, students will host their code on Github as well as submitting it on Canvas. We will provide materials on how to use Github during the semester.
All assignments are due by 4:55pm on their corresponding deadline dates. The late policy can be found below in “Course Policies, Expectations, and Guidelines.”
Course Materials
Course Text
There is no required textbook. Any required reading will be available free to GT students.
Additional Materials / Resources
We will provide links throughout the semester to additional reading to review foundational concepts as well as more advanced treatment of the topics.
Other great resources include:
Previous versions of this course:
Related/similar courses:
● Performance Engineering Of Software Systems (MIT 6.172)
● Algorithm Engineering (MIT 6.506)
● Applications of Parallel Computers (UC Berkeley, CS267)
For a comprehensive background in algorithm analysis, algorithms, and data structures, see “Introduction to Algorithms” by Cormen, Leiserson, Rivest, and Stein.
For a textbook-like resource on parallel algorithms, see “Introduction to Parallel Algorithms” by Blelloch, Dhulipala, and Sun.
Course Classroom Management
We will use Canvas to deliver course materials, announcements, and manage the discussion board. All course materials will be hosted on Canvas.
Course policies, expectations & guidelines
Plagiarism & Academic Integrity
Georgia Tech aims to cultivate a community based on trust, academic integrity, and honor. Students are expected to act according to the highest ethical standards. For more information on the Honor Code, please visit the OSI website.
Any student suspected of cheating or plagiarizing on a quiz, exam, or assignment will be reported to the Office of Student Integrity, which will investigate the incident and identify the appropriate penalty for violations.
Accommodations for Individuals with Disabilities
If you are a student with learning needs that require special accommodation, contact the Office of Disability Services at (404) 894-2563 or http://disabilityservices.gatech.edu/, as soon as possible, to make an appointment to discuss your special needs and to obtain an accommodations letter. Please also email me as soon as possible in order to set up a time to discuss your learning needs.
Attendance Policy
This is a hybrid course with some in-person lectures and some over Zoom/Teams. All of the classes will be recorded. The remote lectures will be projected in the classroom. We request that students turn off their mic and video if joining remotely. We will send the online Zoom/Teams link to all registered students (please send the course staff an email if you didn’t get it).
Attendance is not required but expected. The lectures are a chance to directly interact with your instructor and classmates.
Collaboration & Group Work
For all programming assignments, the pre-proposal, and guest lecture summaries, students may collaborate through online or in-person discussion, but all coding and writing should be done by each individual student. Students who submit unattributed material will be found in violation of the Honor code (see Academic Integrity above).
For the final project components (proposal writeup & presentation, midpoint report, final report & presentation), students may work with their project groups.
Late Policy
All assignments are due by 4:55pm on their corresponding deadline dates.
For the following assignment types, two days extension for a 20% penalty can be provided if you notify the TAs at least one day before the deadline (can only be applied once per assignment):
● Programming homeworks
● Guest lecture reports
● Pre-proposal
The late policy does not apply to the following assignments, for which late submissions will not be considered:
● Pre-course survey
● Final project components (proposal writeup & presentation, midpoint report, final report & presentation)
Student-Faculty Expectations Agreement
At Georgia Tech we believe that it is important to continually strive for an atmosphere of mutual respect, acknowledgement, and responsibility between faculty members and the student body. See https://catalog.gatech.edu/rules/21/ for an articulation of some basic expectations – that you can have of me, and that I have of you. In the end, simple respect for knowledge, hard work, and cordial interactions will help build the environment we seek. In other words, I encourage you to remain committed to the ideals of Georgia Tech, while in this class.
Student Use of Mobile Devices in the Classroom
As research on learning shows, unexpected noises and movement automatically divert and capture people's attention, which means you are affecting everyone’s learning experience if your cell phone, pager, laptop, etc. makes noise or is visually distracting during class.
For this reason, I ask you to turn off your mobile devices and close your laptops during class.
Subject to Change Statement
The syllabus and course schedule may be subject to change. Changes will be communicated via the Canvas announcement tool. It is the responsibility of students to stay current.
Use of Artificial Intelligence Statement
We treat AI-based assistance, such as ChatGPT and Copilot, the same way we treat collaboration with other people: you are welcome to talk about your ideas and work with other people, both inside and outside the class, as well as with AI-based assistants.
However, all work you submit must be your own. You should never include in your assignment anything that was not written directly by you without proper citation (including quotation marks and in-line citation for direct quotes).
Including anything you did not write in your assignment without proper citation will be treated as an academic misconduct case. If you are unsure where the line is between collaborating with AI and copying AI, we recommend the following heuristics:
● Heuristic 1: Never hit “Copy” within your conversation with an AI assistant. You can copy your own work into your own conversation, but do not copy anything from the conversation back into your assignment.
○ Instead, use your interaction with the AI assistant as a learning experience, then let your assignment reflect your improved understanding.
● Heuristic 2: Do not have your assignment and the AI agent open at the same time. Similar to the above, use your conversation with the AI as a learning experience, then close the interaction down, open your assignment, and let your assignment reflect your revised knowledge.
○ This heuristic includes avoiding using AI directly integrated into your composition environment: just as you should not let a classmate write content or code directly into your submission, so also you should avoid using tools that directly add content to your submission.
Deviating from these heuristics does not automatically qualify as academic misconduct; however, following these heuristics essentially guarantees your collaboration will not cross the line into misconduct.
Campus Resources for Students
Success at Tech is a website that links to many student resources including the LGBTQIA Center, OMED, Women’s Resource Center), study supports (Tutoring and Academic Support, the Communication Center), mental health resources (CARE), food banks and food security resources (STAR), resources for veterans, service members, and their families, and others.