CS 4230/6236:  Parallel and Distributed Simulation Systems

 

Prerequisites

A general background in operating systems (processes, concurrency issues, semaphores, etc.) is assumed.  An undergraduate course in operating systems should suffice.  Programming assignments and projects will require software development in C and/or C++.  No prior knowledge of simulation or parallel or distributed computing is assumed. 

Course Requirements

Required work includes (1) homework assignments (2) a course project, (3) three in-class exams and (4) a final examination. Each of the three in-class exams will count for 15% of the final grade, the final counts for 20%, the project will count for 25%, and the homework count for the remaining 10%.  A list of possible projects will be distributed, or you are free to come up with your own (which must be approved in advance).

 

Computer accounts will be needed to complete the homework assignments and project. You should have access to the CoC Cluster machines which provides access to Linux machines in States (CCB103), UPL(CCB107), Baird(CCB107A) and Enterprise Computing (CCB 153).

Undergraduate vs. Graduate Credit

You may take this course for undergraduate (CS 4230) or graduate (CS 6236) level credit.  Both versions of the course will have the same lectures.  The graduate version will require additional work on homework assignments and may include different examination questions.

 

Projects for graduate credit must be research oriented, and typically will require experimentation (requiring software development to create the experiments). Research projects are intended to emulate MS or PhD thesis work, and potentially could result in results that might be published in an academic conference.  All projects will require an oral presentation at the end of the semester.

Course Content

This course is concerned with the implementation of simulation systems on parallel or distributed computing systems for analytic or virtual environment applications.  The emphasis will be on discrete event simulations. After some introductory materials, the course is roughly divided into two parts.  The first is concerned with parallel and distributed execution of analytic simulations, e.g., for system evaluation.  The second is concerned with the execution of simulations on distributed computers to create virtual environments, e.g., for training or gaming applications.

 

Detailed Syllabus and Schedule

 

Back to CS 4230 / CS 6236 home page