COP5570 Concurrent, Parallel, and Distributed Programming (Spring 2025)

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: A Global File Organizer, Files provided for the assignment including a self-grading sheet. Due date: January 24, 2024 (Friday).

The basic README header that must be included in the README file for every assignment.

Lecture 3: Process management

Lecture 4: File operations and pipes

Lecture 5: File meta data and directories

Lecture 6: Signal and terminal I/O

Lecture 7: Job Control and Process Relationship

Programming assignment 2: FSU Shell , Self Grading sheet. Due Feburary 21, 11:59pm.

Lecture 8: Inter-process Communication

Midterm to be held on March 4, covering Lecture 1 to Lecture 8, and assignment 1 and assignment 2. You can bring a 8"x11" (A4) cheat sheet to the exam. Some more information about midterm

Lecture 9: Intro. to Networking and TCPIP Overview

Lecture 10: Basic TCP Socket API

Lecture 11: TCP Client and Server implementation

Term project information, due dates: March 18, 25, April 1, April 15, 22/24, April 24.

Programming assignment No. 3: Internet Gomoku server, Due March 27. Sample servers are running on linprog6 ports 55555, 56666,57777, 58888,59999 (connect by 'telnet linprog6 55555' from linprog). Self grading sheet. Note: If you run your server on linprog, use ports from 50000 to 60000 as instructed by the systems group. You can then connect to your server from within the department (not visible out of the department).

Lecture 12: TCP Client and Server implementation (continue)

Lecture 13: UDP (Video to be posted)

Lecture 14: Introduction to Parallel Programming

Lecture 15: Pthread

Lecture 16: Pthread (continue)

Lecture 17: OpenMP

Programming Assignment No. 4: Pthread, OpenMP and MPI implementations of the Game of Life, Due April 14, 11:59pm. Sequential code for the Game of Life. Self grading sheet

Lecture 18: Message Passing Interface 1

Lecture 19: Message Passing Interface 2

Lecture 20: Message Passing Interface 3 - MPI implementation

Lecture 21: Socket options and Broadcast and Multicast

Lecture 22: Nonblocking and Signal Driven IO and