Final Exam Information: Time: May 1 (Thursday) 3:00-5:00pm --- Format: same as the midterm Short answer questions (50 points) and 3 long answer questions (50 points). Two long answer questions are from on Assignments 3 and 4. All questions are related to the materials after midterm; some may touch the subjects before midterm. There is at least one candidate question (which may or may not be in the exam) for the subjects in each lecture after midterm. 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). There is a speedup question (Amdahl's law and Gustafson's Law) in the exam. ---- Lecture 1 to Lecture 8 (see midterm information) Lecture 9: TCPIP overview - Basic TCPIP protocol concepts - IP addresses and byte orders issue Lecture 10: Basic TCP Socket API - socket, bind, listen, connect, accept, close, read, write - Subtleties in these system calls Lecture 11: TCP Client/Server implementation - Concurrent and multiplexed server - Select system call - Server control flow structures and examples Lecture 12: TCP Client/Server implemention 2 - Preforked, threaded, and prethread servers - Server control flow structures and examples Lecture 13: UDP - UDP API - Reliable communication over UDP Lecture 14: Introduction to parallel programming - Some concepts: parallel computers, parallel programming, concurrent programming, dependency, speedup and scalability - Amdahl's law and Gustafson'slaw Lecture 15 Pthread - pthread .vs. process - pthread creation, termination, join, detach, Lecture 16: Thread synchornization - Mutex: creation, destroying, lock, and unlock - Condition variables: wait and signal - Need to be able to use them in threaded programs Lecture 17: OpenMP - OpenMP programming model, data model, directives, environment variables, runtime library - Need to be able to parallelize loops with OpenMP Lecture 18: MPI - MPI overview - simple MPI: MPI_Init, MPI_Finalize, MPI_Comm_size, MPI_Comm_rank, MPI_Send, MPI_Recv Lecture 19: MPI 2 - Nonblocking MPI P2P routines - MPI collective communication - Developing MPI program by domain decomposition Lecture 20: MPI implementation (not in the exam) Lecture 21: Socket options, Broadcast and Multicast - General, TCP, and IP socket options - getsockopt, setsockopt - Using getsocketopt and setsockopt to get/set socket options - What are they and how they work? - Send and receive broadcast and multicast packets in program Lecture 22: Nonblocking and signal driven IO (not in the exam) - What are they and how they work? - Different among different IO mechanisms - How to do it in program