Final Exam Information: Time: May 2 (Thursday) 3:00-5:00pm --- Format: same as the midterm Short answer questions (60 points) and long answer questions (40 points). One 20-point long answer question on Assignment 3. All questions are related to the materials after midterm; some may touch the subjects before midterm. There is at least one candidate question for the subjects in each lecture. Most questions are coding questions: writing code segments to achieve certain tasks or predicting the output of a code segment (concepts are embedded in such questions). ---- Lecture 1 to Lecture 8 (see midterm information) Lecture 9: Pthread - pthread .vs. process - pthread creation, termination, join, detach, Lecture 10: Thread synchornization - Mutex: creation, destroying, lock, and unlock - Condition variables: wait and signal - How to use them in threaded programs Lecture 11: OpenMP - OpenMP programming model, data model, directives, environment variables, runtime library - Parallelize loops with OpenMP Lecture 12: TCPIP overview - Basic TCPIP protocol concepts - IP addresses and byte orders issue Lecture 13: Basic TCP Socket API - socket, bind, listen, connect, accept, close, read, write - Subtleties in these system calls Lecture 14: TCP Client/Server implementation - Concurrent and multiplexed server - Select system call - Server control flow structures and examples Lecture 15: TCP Client/Server implemention 2 - Preforked, threaded, and prethread servers - Server control flow structures and examples Lecture 16: UDP - UDP API - Reliable communication over UDP Lecture 17: MPI - MPI overview - simple MPI: MPI_Init, MPI_Finalize, MPI_Comm_size, MPI_Comm_rank, MPI_Send, MPI_Recv Lecture 18: MPI 2 - Nonblocking MPI P2P routines - MPI collective communication - Develop MPI programs by domain decomposition Lecture 19: Socket options - General, TCP, and IP socket options - getsockopt, setsockopt - Use getsocketopt and setsockopt to get/set socket options Lecture 20: Broadcast and Multicast - What are they and how they work? - Send and receive broadcast and multicast packets in program Lecture 21: Nonblocking and signal driven IO - What are they and how they work? - Differences among different IO mechanisms - How to do it in program