CS 343 - Concurrent and Parallel Programming

Assignments

All assignments must be done individually, unless the assignment is explicitly designated as a group assignment. All members of a group receive the same grade (no exceptions). Only one member of a group submits the assignment. The instructors/staff do not arbitrate group disputes; group members must handle any and all problems. A group assignment may be done individually, but it must be understood that the amount of work is significantly greater and no extra marks are given for this additional work.

Please review these guidelines before starting each assignment. You will lose marks if these guidelines are not followed.

  1. Assignment Guidelines
  2. C++ Coding Guidelines
  3. Testing/Documentation Guidelines
# % Topics (tentative) Assignment Material Due Date
1 7 exceptions, semi-coroutines assignment, Makefile, q1 code, q2 code, q3 code, q3 executable
2 7 semi/full-coroutines, tasks assignment, Makefile, q1 code, q1 executable, q2 code q2 executable, q3 code
Family Day, Feb 20
Reading Week Feb 21-24 (Tue-Fri)
3 7 synchronization, mutual exclusion, simple locks assignment, Makefile, q1 code, q2 code, q2 executables (TYPE=char MIMPL=CFOR, TYPE=int MIMPL=ACTOR, TYPE=int MIMPL=TASK), BargingCheck.h, q3 code, q3 executables (BIMPL=NOBUSY BCHECK=NOBARGINGCHECK, BIMPL=BUSY BCHECK=NOBARGINGCHECK)
Note that the testing script relies upon the presence of files q2mergesort.h and q3buffer.h and will fail if they are not present!
4 7 complex locks assignment, Makefile, q1 code, q2 code, BargingCheck.h, q3 code, q3 executables (VIMPL=MC, VIMPL=SEM, VIMPL=BAR)
Note that the testing script relies upon the presence of the file q3tallyVotes.h and will fail if it is not present!
5 7 monitors, tasks assignment, BargingCheck.h, q1 code, q1 executables (VIMPL=EXT, VIMPL=INT, VIMPL=INTB, VIMPL=AUTO, VIMPL=TASK)
Note that the testing script relies upon the presence of the file q1tallyVotes.h and will fail if it is not present!
6 15 administrator, future (groups of 2) assignment, README, lrt starter code, parse configuration file (config.h, config.o), sample lrt.config, PImpl starter code ZIP, lrt executable.

Download

To download files for an assignment use the following command, where D is an assignment number 1-6:

wget -m -np -nd -R 'index.html*' -P D https://student.cs.uwaterloo.ca/~cs343/assignments/D/

Submissions

Assignment submission is electronic. Use the submit command to electronically copy assignment files to the course account:

submit cs343 N directory # N is assignment number 1..6, directory contains the assignment, e.g., a1

Submission Information

Read the output from submit carefully, as error messages may appear at the top. Verify files submitted against expected files. Check time stamps and sizes to be sure you have submitted the correct versions.

Current assignment number: 1

Compilation Request

After submitting an assignment, you can verify if your Makefile is correctly formed. Select the assignment number and press the button to start the request.

Current assignment number: 1

This facility checks you have:

  1. submitted a makefile or Makefile
  2. submitted all required pieces of code
  3. makefile works properly with GNU make
  4. no compilation errors

Tests are run and results emailed to the specified userid every 5 minutes. Delays can occur if email is backlogged or if the system is heavily loaded.

Lates

Marking

MOSS

MOSS (Measure of Software Similarities) is used to compare student assignments to ensure academic integrity.

Discipline cases involving any automated or partially automated marking system such as Marmoset and MarkUs include, but are not limited to, printing or returning values in order to match expected test results rather than making an actual reasonable attempt to solve the problem as required in the assignment question specification.

Returning and Remarking

Work Environment

Assignments must compile and run on one of the linux.student.cs computers. See CPU/Applications Hosts for a complete list of server computers.