COP5570, Concurrent, Parallel, and Distributed Programming

Textbook abbreviation: UNP - Unix Network Programming and APUE - Advanced Programming in the UNIX Environment.


Syllabus


program examples

Lecture 1: Syllabus

Lecture 2: Miscellaneous UNIX/C concepts

Programming assignment No. 1: Poor Man's Parallel Program Launchpad, A package with sample executable for linprog4 and supporting files. Due date: May 29 (Friday). Project 1 demo schedule, Project 1 grading sheet

Lecture 3: Process management

Lecture 4: File operations and pipes

Lecture 5: File meta data and directories

Programming assignment No. 2: mymake , Project package (sample executable for linprog with partial implementation, sample testing files and instruction), Due June 12 (firm). Demo schedule, Project 2 grading sheet

Lecture 6: Signal and terminal I/O

Lecture 7: Job Control and Process Relationship

Midterm to be held on June 16, covering Lecture 1 to Lecture 8, and assignment 1 and assignment 2. You can bring a 8"x11" (A4) cheat sheet to the exam.

Lecture 8: Inter-process Communication

Lecture 9: Pthread

Lecture 10: Pthread (continue)

Lecture 11: OpenMP

Programming assignment No. 3: Multi-process, multi-thread, and OpenMP implementations of the Game of Life, the single-thread code, Sample executable (proj3_seq.c compiled with -O3), Program output and final world file for command './a.out 1000 1000'. Some hints, demo schedule, grading sheet, Due July 8.

Lecture 12: TCPIP Overview

Lecture 13: Basic TCP Socket API

Lecture 14: TCP Client and Server implementation

Term project, Due July 30/August 4. The test0 file is on c5570-1, c5570-2, c5570-3, c5570-4, c5570-5 as /home/cop5570a/test0. The corresponding output is on c5570-1 as /home/cop5570a/output_test0.txt. The test1 file is on c5570-6, c5570-7, c5570-8, c5570-9 as /home/cop5570a/test1. The corresponding output is on c5570-9 as /home/cop5570a/output_test1.txt. Current Top Performer, Term Project Presentation Schedule, Please email your sorting software to me on July 30 before class (including a readme file describing how to run your program, and your best time on test0 and test1). Term Project presentation grading sheet.

, Programming assignment No. 4: Online tic-tac-toe server, Due July 24. Sample servers are running on crux ports 5555, 6666,7777,8888,9999 (try 'telnet crux 5555' from linprog). Grading sheet, Project Demo Schedule.

Lecture 15: More server design options

Lecture 16: UDP

Lecture 17: Broadcast and Multicast and Socket options

Lecture 18: DNS and system information and

Lecture 19: Nonblocking IO and Signal driven IO

Term project presentations on July 30 and August 4. Here is the Term Project Presentation Schedule and Term Project presentation grading sheet.

Term project software due on July 30 before class. Please email your sorting program to me on July 30 before class (including a readme file describing how to run your program, and your best time on test0 and test1).

Term project report due August 4. The report length is expected to be 5 to 10 pages double space, 12 point font.

Final exam to be held on August 6 during the class time. The exam is comprehensive, but the materials before midterm will only account for about 10% of the points. The programming questions are related to Programming Assignments 3 and 4.

Term Project final times