Distributed and Cluster Computing

Instructor

  • Instructor: Linh B. Ngo
  • Office: Room 138, 25 University Avenue (UNA building)
  • Office Hours: TBD
  • Email: lngo AT wcupa DOT edu
  • Phone: 610-436-2595 (don’t call, email)

COVID-19 Statement

Part of West Chester University’s response to the COVID-19 pandemic was to switch the vast majority of instruction to remote. This decision was made out of an abundance of caution to protect the health of all members of the WCU community. Faculty have been asked to make every effort to adapt their courses to this novel situation while still meeting the critical learning outcomes of the course. Students are asked to discuss any problems with the new course format and schedule directly with their instructors. Patience and flexibility on everyone’s behalf are critical to our community’s navigation of this public health crisis.

Course Description

  • This course will investigate issues in modern distributed platforms by examining a number of important technologies in the areas of distributed computing in computational and data-intensive problems.

  • By the end of the course, each student should understand and be able to apply several specific tradeoffs for parallel application and algorithms development, performance, and management on a number of distributed platforms.

Learning Objectives

Course Level Student Learning Outcomes (SLO) CS/ABET Program Outcomes CS Program Objectives Assessment
1. Understand the overall concepts and impacts of large-scale distributed and parallel computing systems. 1. Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions (ABET 1). 1. Be able to apply theory, techniques, and methodologies to create and/or maintain high quality computing systems that function effectively and reliably in the emerging and future information infrastructure. Quiz, Exam
2. Be able to develop and test OpenMP programs using various directives. 2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline (ABET 2). Assignment, Quiz, Exam
3. Be able to develop and test MPI programs using various communication routines. Assignment, Quiz, Exam
4. Be able to interact with a national supercomputing center. 3. Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline (ABET 5). 2. Be able to work in teams, demonstrate ethical professionalism in their work, and grow professionally while engaging in life-long learning. Lab
5. Understand various critical components of a supercomputing infrastructure.

Course Topics:

  • Introduction to Parallel Programming
  • Cluster of Computers
  • Parallel and Distributed File Systems
  • High Performance and Data-Intensive Computing
  • Job Scheduling on Cluster of Computers
  • Complex Distributed Systems.

Artifacts used to demonstrate Student Learning Outcomes:

  • Assignments: In writing and running programs and analyzing execution performances, students will be assessed on SLO1 and SLO2.
    • Writing C codes that demonstrate understanding and the ability to:
      • develop and test OpenMP program using basic directives.
      • develop and test OpenMP programs using advanced directives.
      • prepare and submit batch jobs to remote supercomputing systems.
    • Writing C codes that demonstrate understanding and the ability to:
      • develop and test MPI programs using basic communication routines.
      • develop and test MPI programs using advanced communication routines.
      • prepare and submit batch jobs to remote supercomputing systems.
  • Lab: In design, implement, and deploy various components of high-performance computing infrastructures as part of a team, students will be assessed on SLO2 and SLO3.
  • Quizzes and Exams: Students will be assessed on their understanding of theoretical concepts necessary to support the tasks decribed in the assignments.

Prerequisites

  • Data structures and algorithms (CSC 241).
  • Basic knowledge of C/C++ and Linux.

Required Text (either print or e-book):

We will utilize the following textbooks in this course (freely available online via CC_BY license by the author):

Evaluation Policy:

Grade Distributions

Percentage Tasks
40% Homework Sets
10% Labs
20% Quizzes
5% Participtation
15% Midterm
10% Final Exam

Grade Scale:

Numeric Letter
100-93 A
92-90 A-
89-87 B+
86-83 B
82-80 B-
79-77 C+
76-73 C
72-70 C-
69-67 D+
66-63 D
62-60 D-
<= 59 F

Lateness Policy:

Without prior approval from the instructors, late homework assignments will not be accepted but will be assigned a grade of zero.

Policy

University Sanctioned Events Policy:

Students participating in participating in University sanctioned events such as, but not limited to, the Marching Band, musical ensembles, theatre group, athletic events, forensics competition, etc., will be granted an excused absence for class periods missed. Students will be granted the privilege of taking, at an alternative time to be determined by the professor, scheduled examinations or quizzes that will be missed. I will designate such times prior to the event and reserve the right to provide a fair alternative to taking the examination or quiz that will be missed. Students must submit original documentation on University letterhead signed by the activity director, coach, or adviser detailing the specifics of the event in advance. Specific requirements include:

  1. Responsibility for meeting academic requirements rests with the student.
  2. Students are expected to notify their professors as soon as they know they will be missing class due to a University sanctioned event.
  3. Students are expected to complete the work requirement for each class and turn in assignments due on days of the event prior to their due dates unless other arrangements are made with myself.
  4. If a scheduled event is postponed or canceled, the student is expected to go to class.
  5. Students are not excused from classes for practice on nonevent days.

The following are specifics for the student athlete:

  1. The student athlete is expected, where possible, to schedule classes on days and at hours that do not conflict with athletic schedules.
  2. Athletes are not excused from classes for practice or training-room treatment on nongame days.

Email Policy:

It is expected that faculty, staff, and students activate and maintain regular access to University provided e-mail accounts. Official university communications, including those from your instructor, will be sent through your university e-mail account. You are responsible for accessing that mail to be sure to obtain official University communications. Failure to access will not exempt individuals from the responsibilities associated with this course.

Please abide by the following email etiquette policies to ensure clear communication:

  • Subject Line: Please include a descriptive and specific subject heading for all of your emails, including course and section number (e.g. “CSC 050-23: Question about lab 1”).
  • Greeting: Please make a clear and appropriate greeting; I will not answer emails addressed to “hey” or “yo”. Please address me as Dr. Ngo, or “Professor”.
  • Tone & Style: Always use a tone and language that is appropriate to an academic setting; I will not respond to emails that are written in short-hand or without proper punctuation and grammar. Your emails should not resemble a text message.
  • Sign and Proofread: Always sign your full name, especially if you are writing from your smart phone. Always proofread your emails before sending.
  • Email Account: I do not care which email account you send email from, as long as it is clearly addressed and signed so that I know who you are. But please be advised to appropriately link the email that you wish to use with myWCU and D2L; I will be using those services to send out emails to the entire class. It is your responsibility to make sure this is configured correctly so that you receive my emails.

Computer Science Department Dishonesty Policy:

The Computer Science Committee has adopted the following policies in regard to academic dishonesty in Computer Science classes:

  1. A student found to be academically dishonest in an assignment will receive zero for that assignment if it is his/her first offense in that class [the course, not the class period], but an F for the course if it is for his/her second offense in that class [the course].
  2. A student found to be academically dishonest in a test will receive the grade of F in that class [the course].
  3. For the purposes of this document on academic dishonesty, every form or method of evaluation in a class will be considered as being of one of two types: an assignment or a test. Assignments include homework assignments, and short quizzes [and labs]. Tests include final exams and major exams. An instructor has, subject to these guidelines, the discretion to determine the type of any other form of evaluation, such as a project, in his/her class.
  4. A student who has received the grade of F in a course because of academic dishonesty and who wants or is required to repeat that course may re-take that course only as a regularly scheduled course that is open to the student community in general. In exceptional circumstances, this condition may be revoked, but only by an explicit action to that effect by the full Computer Science Committee, and only then on a case by case basis.
  5. The term academic dishonesty is used throughout in the sense provided by the rules and regulations of West Chester University. The following is taken from The Ram’s Eye View of 1997-1998: “Academic dishonesty as it applies to students includes but is not limited to academic cheating; plagiarism; the sale, purchase, or exchange of term papers or research papers; falsification of information which includes any form of providing false or misleading information, written, electronic, or oral; or of altering or falsifying official institutional records. Plagiarism is defined as copying another’s work or portion thereof and/or using ideas and concepts of another and presenting them as one’s own without giving proper credit to the source.”

No-Grade, Violation of Academic Integrity, and Violation of Student Code of Conduct Policy:

For questions regarding Academic Dishonesty, the No-Grade policy, Sexual Harassment, or the Student Code of Conduct, students are encouraged to refer to their major department’s handbook, the Undergraduate Course Catalogue, the Rams Eye View, or the University Web Site. Please understand that improper conduct in any of these areas will not be tolerated and may result in immediate ejections from the class.

ADA Policy:

If you have a disability that requires accommodations under the Americans with Disabilities Act (ADA), please present your letter of accommodations and meet with me as soon as possible so that I can support your success in an informed manner. Accommodations cannot be granted retroactively. If you would like to know more about West Chester University’s Services for Students with Disabilities (OSSD), please contact the OSSD which is located at 223 Lawrence Center. The OSSD hours of Operation are Monday – Friday 8:30 a.m. – 4:30 p.m. Their phone number is 610-436-2564, fax number is 610-436-2600, and their email address is ossd@wcupa.edu. More information can be found at the OSSD website.

Title IX Statement:

West Chester University and its faculty are committed to assuring a safe and productive educational environment for all students. In order to comply with the requirements of Title IX of the Education Amendments of 1972 and the University’s commitment to offering supportive measures in accordance with the new regulations issued under Title IX, the University requires faculty members to report incidents of sexual violence shared by students to the University’s Title IX Coordinator. The only exceptions to the faculty member’s reporting obligation are when incidents of sexual violence are communicated by a student during a classroom discussion, in a writing assignment for a class, or as part of a University-approved research project. Faculty members are obligated to report sexual violence or any other abuse of a student who was, or is, a child (a person under 18 years of age) when the abuse allegedly occurred to the person designated in the University Protection of Minors Policy. Information regarding the reporting of sexual violence and the resources that are available to victims of sexual violence is set forth at: [https://www.wcupa.edu/_admin/diversityEquityInclusion/sexualMisconduct/default.aspx].

Emergency Contact:

All students are encouraged to sign up for the University’s free WCU ALERT service, which delivers official WCU emergency text messages directly to your cell phone. For more information, visit www.wcupa.edu/wcualert. To report an emergency, call the Department of Public Safety at 610-436-3311.

Course Outline

Topic

Description

Setup Preparing for the course
1. The demand for computational speed Why do we need faster computing platforms?
2. Introduction to paralel and distributed computing What is parallel computing?
3. Introduction to OpenMP What is the OpenMP model?
4. Introduction to XSEDE What is XSEDE?
5. OpenMP: parallel regions and loop parallelism Do we have to manually do everything?
6. OpenMP: Work sharing and controlling thread data How do OpenMP threads implicitly and explicitly share work among themsleves?
How do data are managed?
7. Introduction to MPI
8. MPI: point-to-point, data types, and communicators How can processes pass messages directly to one another (point-to-point)
9. MPI: Functional parallelism and collectives How do multiple processes communicate as a group at the same time?
10. MPI: pleasantly parallel and workload allocation
11. Introduction to CloudLab
12. Deploying compute nodes for a supercomputer How do we deploy compute nodes and relevant software programmatically?
13. Distributed File Systems How to arrange read/write accesses with processes running on computers that are part of a computing cluster?
14. Schedulers for cluster of computers What does it mean to schedule jobs on a supercomputer?
15. Data intensive computing
16. High throughput computing
17. Introduction to IOT
Finish

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.