McMaster University

CAS 766 Concurrent Programming
Emil Sekerinski

Term 2, 2020-2021

Outline

  • First class is on Monday, January 11, 2:00 pm. It is essential that everyone attends and introduces themselves.
  • This page is static. All announcements are on Teams, not Avenue

Location & Times

  • All classes are online on Teams; there will be a mixture of pre-recorded and live classes. The scheduled time slots are Mondays 2:00 pm - 3:20 pm and Wednesdays 10:30 am - 11:50 am.
  • You can chat with me on Teams, I am online almost always in the afternoon. If I don't reply right away, I will call back.

Prerequisites

    Familiarity with an imperative programming language and knowledge of object-oriented program design, program verification, and formal logic is required. Those who don't have the background are expected to make that up on their own. The course is suitable for those who have and don't have experience with concurrent programming.

Course Objectives

    Concurrency manifests itself in numerous form, historically first with operating systems, then with distributed and parallel systems, more recently with multi-core processors and heterogenous processors (where programs are being executed on a combination of CPU’s, GPU’s, and FPGA’s). Besides the practical aspects of efficiency, there exists also a rich theory of concurrency, including models of concurrency and verification. This course is on the principles, methods, and implementations, with focus on multi-core and heterogeneous processors; these promise to increase computational performance while lowering power consumption, an essential issue for small mobile devices up to large server farms.

Essential Reading

Further Reading

Topics

    Topics will be selected among the following:

  • Basics: Processes and Synchronization, Atomicity, Mutual Exclusion, Locks and Barriers, Semaphores, Classes, Monitors, Message Passing, Distributed Algorithms
  • Theory: Linearizability, Correctness Proofs, Consensus
  • Patterns: Map, Reduce, Fork/Join, Pipeline, Scatter, Gather, Master/Worker
  • Efficiency: Transactional Memory, Lock-free Algorithms
  • Implementations: Parallel Programming, Multi-core Processors, GPU's and FPGA's
  • Applications: Scientific Computing, Sorting, Compression, Encryption, etc.

Format and Attendance

  • The course has two overlapping parts: it starts with pre-recorded and live lectures covering standard topics in concurrency. The assignments cover this part. For those who are already familiar, an alternative evaluation is possible.
  • The second part are individual projects with presentations on advanced topics. The topics will be assigned, but can be adjusted based on interest. Presentations will be online, 20 min in length, and similar to conference presentations.
  • You are expected to attend all live lectures and project presentations. If you miss one without explanation, you will be asked to withdraw from the course.

Evaluation

  • 6 Assignments, 10% each, the top 5 count; if you MSAF an assignment, the other 5 count, so MSAF-ing an assignment does not have any effect.
  • Project with presentation 50%; details will be announced later.

Bibliographies

Academic Dishonesty

  • Assignments are to be completed individually; they must constitute your own work and references to all used resources must be given. Details are announced with each assignment.
  • Academic dishonesty consists of misrepresentation of deception or by other fraudulent means and can result in serious consequences, e.g. the grade of zero on all assignments, loss of credit with a notation on the transcript (notation reads: "Grade of F is assigned for academic dishonesty"), and/or suspension or expulsion from the university.
  • It is your responsibility to understand what constitutes academic dishonesty. For information on the various kinds of academic dishonesty please refer to the Academic Integrity Policy, specifically Appendix 3. The following illustrates only three forms of academic dishonesty:
    • Submission of work that is fully or partly copied from someone else, or making your work available for copying to others.
    • Submission of work that has been fully or partly obtained from other sources like the Internet.
    • Copying or using unauthorized aids in tests and examinations.
  • All submitted assignments are always checked for similarities.

Conduct Expectations

  • As a McMaster graduate student, you have the right to experience, and the responsibility to demonstrate, respectful and dignified interactions within all of our living, learning and working communities. These expectations are described in the Code of Student Rights & Responsibilities (the “Code”). All students share the responsibility of maintaining a positive environment for the academic and personal growth of all McMaster community members, whether in person or online.
  • It is essential that students be mindful of their interactions online, as the Code remains in effect in virtual learning environments. The Code applies to any interactions that adversely affect, disrupt, or interfere with reasonable participation in University activities. Student disruptions or behaviours that interfere with university functions on online platforms (e.g. use of Avenue 2 Learn, WebEx or Zoom for delivery), will be taken very seriously and will be investigated. Outcomes may include restriction or removal of the involved students’ access to these platforms.

Academic Accomodation of Students with Disabilities

Academic Accomodation for Religious, Indigienous, or Spiritual Observances (RISO)

    Students requiring academic accommodation based on religious, indigenous or spiritual observances should follow the procedures set out in the RISO policy. Students should submit their request to their Faculty Office normally within 10 working days of the beginning of term in which they anticipate a need for accommodation or to the Registrar's Office prior to their examinations. Students should also contact their instructors as soon as possible to make alternative arrangements for classes, assignments, and tests.

Copyright and Recording

  • Students are advised that lectures, demonstrations, performances, and any other course material provided by an instructor include copyright protected works. The Copyright Act and copyright law protect every original literary, dramatic, musical and artistic work, including lectures by University instructors
  • The recording of lectures, tutorials, or other methods of instruction may occur during a course. Recording may be done by either the instructor for the purpose of authorized distribution, or by a student for the purpose of personal study. Students should be aware that their voice and/or image may be recorded by others during the class. Please speak with the instructor if this is a concern for you.

Extreme Circumstances

    The University reserves the right to change the dates and deadlines for any or all courses in extreme circumstances (e.g., severe weather, labour disruptions, etc.). Changes will be communicated through regular McMaster communication channels, such as McMaster Daily News, A2L and/or McMaster email.