CSc 422: Introduction to Parallel and Distributed Programming, Spring 2022

Description of Course

Concepts and applications of parallel and distributed programs. Process interaction using shared variables and message passing; parallel computing; development of correct programs; general problem solving techniques; scientific computing; distributed systems. Programming assignments on multiple processor machines. Topics include:
  • Writing parallel programs
  • Shared-memory synchronization mechanisms: critical sections, locks, semaphores, monitors, barriers
  • Distributed-memory synchronization/communication mechanisms: message passing, rendezvous
  • Shared- and distributed-memory programming paradigms
  • Applications, such as peer-to-peer computing, map/reduce, data parallel computing, and languages and libraries for parallel computing.

CSc 422 Spring 2022 D2L site (includes video recordings, class calendar)

Course Objectives

The course will cover how to write concurrent and parallel programs, how to ensure correct concurrent program behavior through synchronization, and various parallel and distributed computing application areas.

Expected Learning Outcomes

At the end of the course, the student will master multithreaded, parallel, and distributed programming and related concepts such as synchronization and communication.

Course Prerequisites

CSc 252, 345, and 352.

Instructor and Contact Information

Instructor: David Lowenthal
Office: 708 Gould-Simpson
(520) 626 8282 tel
(520) 621 4632 dept
Email : dkl is my username, the cs domain at UA is the rest; you can figure it out from there.
Lectures: MW 8:00-9:15am, Gould Simpson 701
Final Exam : Wednesday, May 11th, 8:00am-10:00am
Office Hours via Zoom (Lowenthal) : M 10:30-11:30am, T 9-10am
TAs: Yangzi Lu (Email: yangzilu@email), Branden Knuth (Email: brandenknuth@email)
Office Hours via Zoom: Th 10-11, F 10-11 (Lu); W 2-3 (Knuth)

Absence and Class Participation Policy

The UA's policy concerning Class Attendance, Participation, and Administrative Drops is available at this link.

The UA policy regarding absences for any sincerely held religious belief, observance or practice will be accommodated where reasonable. See the policy here.

Absences preapproved by the UA Dean of Students (or dean's designee) will be honored. See the policy here.

Lectures

Attendance at lectures is optional. You are, however, responsible for all material covered in lectures. We will sometimes be discussing material different from the textbook. I will do my best to make lectures interesting. I believe that you won't just be able to read the notes and succeed.

You should come to lecture prepared. This means you have read the assigned material in advance.

During lecture, please do not hesitate to ask questions; you might think your question is dumb, but more likely, many people are wondering about the same thing.

All lectures will be recorded and placed on D2L as soon as possible following each class. Please note that FERPA rules allow students watching the recording to see/hear other students in the class, so long as I only post the recordings to D2L. You may not modify content or re-use content for any purpose other than personal educational reasons. You also may not share the content with anyone, including re-posting the content anywhere. All recordings are subject to government and university regulation. Therefore, accessing unauthorized recordings or using them in a manner inconsistent with UArizona values and educational policies are subject to suspension or civil action.

Please see the lectures and examples here.

Course Communications

Class discussions and notes/clarifications from the TAs and me will go out via Piazza, so you are responsible for signing up for and checking there. If you have something personal to ask/tell me, send it directly to me by email. I will be using D2L for keeping track of grades, posting video recordings, posting the syllabus, and providing due dates on the D2L calendar.

Reading List

Reading Materials

The required textbook for the course is Foundations of Multithreaded, Parallel, and Distributed Programming by Andrews. The book's web site has useful material. You will be expected to read any assigned material; reading assignments will be posted on the D2L calendar. We will not be able to cover all assigned reading in lecture. Please note, however, that you are responsible for any assigned material. Specifically, exam questions covering reading material are fair game.

Important Dates

Final Examination

As mentioned above, the final exam is Wednesday, May 11th, 8am-10am. Please see the Final Exam Regulations and the Final Exam Schedule.

All assignments are due precisely at 8:00am on the due date.  Please note: if your assignment is even one second late, it's late, without exception.  You will have to turn the assignment in before the time it is due.  I will not allow "you missed by 1 minute, so it's ok." In addition, any missed exam will result in a grade of zero.

Makeup Policy for Students Who Register Late

If you register late for the course, you will not be allowed to gain credit for any written assignments, programs, or exams whose due date has already passed.

Grading Scale and Policies

Grades will be assigned on the usual A-E basis. Grading will be absolute; there will be no "curve". Achieving a 90% will guarantee an "A", 80% a "B", and so on. However, when the final grades are given, it could be the case, for example, that an 85% gets an "A". Do not confuse this with a curve, however. If everyone does A work (as I hope), everyone will get an A. If everyone does C work, everyone will get a C. So that you know your grade at all times, four fictitious students will be given grades for each assignment and exam. These students will be named "Minimum A", "Minimum B", etc., indicating the minimum score for each grade.

Grading will be divided as follows:

Grading Timeliness

I take deadlines seriously and expect you to turn everything in on time. In return, I will adhere to the following grading return policies.

Regrades for Programming Assignments

If you lose points due to your program failing test cases, I will regrade using the following policy.

Incompletes and Withdrawals

Requests for incomplete (I) or withdrawal (W) must be made in accordance with University policies, which are available here and here, respectively.

Important Note on Grading

Your grade will be the one you earn. Under no circumstances will your graduation or visa status affect your grade. This includes situations such as: (1) your parents are coming for graduation, (2) your relatives are flying in from halfway around the world for your graduation,  (3) you have a job lined up and have to start immediately, (4) you got all A's up to this point, and you have never received a grade below an A, and/or (5) you will have to leave the country if you do not achieve a certain grade.

Scheduled Topics/Activities

Illnesses and Emergencies

Statement on compliance with COVID-19 mitigation guidelines

As we enter the Spring semester, our health and safety remain the university's highest priority. To protect the health of everyone in this class, students are required to follow the university guidelines on COVID-19 mitigation. Please visit UA COVID-19 guidelines for details.

Obtaining Help

Dept. of Computer Science Code of Conduct

The Department of Computer Science is committed to providing and maintaining a supportive educational environment for all. We strive to be welcoming and inclusive, respect privacy and confidentiality, behave respectfully and courteously, and practice intellectual honesty. Disruptive behaviors (such as physical or emotional harassment, dismissive attitudes, and abuse of department resources) will not be tolerated. The complete Code of Conduct is available on our department web site. We expect that you will adhere to this code, as well as the UA Student Code of Conduct, while you are a member of this class.

You can find the code of conduct here .

Classroom Behavior Policy

To foster a positive learning environment, students and instructors have a shared responsibility. We want a safe, welcoming, and inclusive environment where all of us feel comfortable with each other and where we can challenge ourselves to succeed. To that end, our focus is on the tasks at hand and not on extraneous activities (e.g., texting, chatting, reading a newspaper, making phone calls, web surfing, etc.).

Students are asked to refrain from disruptive conversations with people sitting around them during lecture. Students observed engaging in disruptive activity will be asked to cease this behavior. Those who continue to disrupt the class will be asked to leave lecture or discussion and may be reported to the Dean of Students.

Please refrain from using personal electronics, such as laptops and iPads, except for taking notes.

Threatening Behavior Policy

The UA Threatening Behavior by Students Policy prohibits threats of physical harm to any member of the University community, including to oneself. See here.

UA Nondiscrimination and Anti-Harassment Policy

The University is committed to creating and maintaining an environment free of discrimination; see the policy here.

Malware

Do not turn in "malware" as a prank. ("Malware" is software that intentionally does harm to a computer, computer data, computer networks, etc.) Malware is a federal crime (see here for more information). If you turn in malware, I will refer the situation to the proper law enforcement authorities, as well as recommend a harsh punishment.

Accessibility and Accommodations

At the University of Arizona, we strive to make learning experiences as accessible as possible. If you anticipate or experience barriers based on disability or pregnancy, please contact the Disability Resource Center (520-621-3268) to establish reasonable accommodations.

Crisis Contacts

Located in Tucson? Call the Community-Wide Crisis Line 24 hours a day, 7 days a week at 520-622-6000.

Are you a University of Arizona student? If it is not an emergency and you are a UA student, call or walk-in to Counseling and Psych Services at 520-621-3334 Monday - Friday. Walk-in triage is available between 9 am and 4 pm Monday - Friday.

Are you a concerned friend? Concerned friends can find out more about helping a friend who might be experiencing problems through our Friend 2 Friend website.

Resources for sexual assault, relationship violence, and stalking.

24-Hour Hotlines:

The National Suicide Prevention Lifeline is a 24-hour, toll-free, confidential suicide prevention hotline available to anyone in suicidal crisis or emotional distress. By dialing 1-800-273-TALK (8255), the call is routed to the nearest crisis center in our national network of more than 150 crisis centers. The Lifeline’s national network of local crisis centers provides crisis counseling and mental health referrals day and night.

Crisis Text Line: Text HOME to 741741 from anywhere in the United States, anytime, about any type of crisis. A live, trained Crisis Counselor receives the text and responds, all from a secure online platform. Find out more about how it works at crisistextline.org.

Suicide Prevention for LGBTQ Youth through the Trevor Project:

Veterans' Suicide Prevention Lifeline: 1-800-273-TALK (1-800-273-8255)

SAMHSA Treatment Referral Hotline (Substance Abuse): 1-800-662-HELP (1-800-662-4357)   

National Sexual Assault Hotline: 1-800-656-HOPE (1-800-656-4673)

Loveisrespect (National Dating Abuse Helpline): Call 1-866-331-9474 (TTY: 1-866-331-8453). Text LOVEIS to 22522 - you'll receive a response from a peer advocate prompting you for your question. Go ahead and text your comment or question and we will reply.

Code of Academic Integrity

Students are encouraged to share intellectual views and discuss freely the principles and applications of course materials. However, graded work/exercises must be the product of independent effort unless otherwise instructed. Students are expected to adhere to the UA Code of Academic Integrity as described in the UA General Catalog. See the policy here.

Uploading material (including your assignments and programs) from this course to a website other than D2L (or the class piazza) is strictly prohibited and will be considered a violation of the course policy and a violation of the code of academic integrity. Obtaining material (again, including assignments and programs) associated with this course (or previous offerings of this course) on a site other than D2L (or the class piazza), such as Chegg, Course Hero, etc. or accessing these sites during a quiz or exam is a violation of the code of academic integrity. Any student determined to have uploaded or accessed material in an unauthorized manner will be reported to the Dean of Students for a Code of Academic Integrity violation, with a recommended sanction of a failing grade in the course.

If you violate the code of academic integrity in any other way (besides the instance listed above), the typical punishment will be a loss of credit on the work submitted and a full letter grade reduction of the final grade.

Additional Resources for Students

UA Academic policies and procedures are available at this link.

Student Assistance and Advocacy information is available at this link.

Subject to Change Statement

Information contained in the course syllabus, other than the grade and absence policy, may be subject to change with advance notice, as deemed appropriate by the instructor.