COMP 425/CENG 425 (3) – Distributed Programming

 

Course Description:  Developing multi-tier and peer-to-peer software for large scale and high-performance environments. Dynamic Link Libraries, component-based programming, sockets, remote procedure calls, client-server architectures, transaction monitors, object request brokers, multi-threading and current industry tools.

Prerequisites:  311 and 345

 

Prerequisites by topic: Socket Programming, TCP-IP Network Layers, Inheritance, Polymorphism, Interfaces

 

Text:  Parallel Programming in C with MPI and Open MP, by: Michael J Quinn

 

Course Objectives:    At the completion of the course students will be able to write programs in a variety of programming languages to take advantage of multiple threads, distributed processing and parallel processing. The students will be able to identify the types to problems that each paradigm addresses and the advantages and disadvantages of each.  Specifically, students will know how to:

 

Coordinators:  Steil & Baber

 

Grades:

10 Homework/Quiz                400

Parallel Research Project         200

2 Exams                                  200

Final Exam                              200

 

Extra Credit:

You will receive one tenth of one percentage point on your final average for each time you attend the weekly departmental seminar, which is at 7:00 am on Fridays in Sci 100.  The first seminar will be in 2-3 weeks.  There will be 15-20 seminars, thus there is a total of 1.5% -2% extra credit possible in this manner

 

Attendance and Tardiness:

Attendance will be taken daily.  You are expected to be here.    If you feel that your absence should be excused send me an e-mail stating why.  I will let you know if the reason given was not acceptable.  You are responsible for any assignments given during your absence, check with the instructor or a reliable student to find out what was missed.  Any assignment submitted late because of an unexcused absence is still considered late.

 

If you are late, please do not disrupt the class as you enter.

If you are absent or tardy on a regular basis you will be asked to drop the course.

 

Late Assignments:

10% per day (max of 50%) will be deducted. Late assignments will be accepted until the first day of the last week of regular class meeting.   

 

Food & Drink:

Please do not bring any food to class.  Drinks are allowed in non-computer-lab rooms (be very careful with them).

 

Integrity Expectations:

Each student is expected to do his/her own work.  Copying of others assignments and/or exams is not permitted.  It is very easy to copy a programming solution (and also very easy to determine when this has occurred).  Those who copy another's work and/or allow their work to be copied will be dropped from the class with a failing grade.  The Harding University Code of Conduct will be enforced.

 

Students with Disabilities:  It is the policy for Harding University to accommodate students with disabilities, pursuant to federal and state law.  Therefore, any student with a documented disability condition (e.g. physical, learning, psychological, vision, hearing, etc.) who needs to arrange reasonable accommodations, must contact the instructor and TRIO Student Support Services at the beginning of each semester.  (If the diagnosis of the disability occurs during the academic year, the student must self-identify with the Disabilities Director as soon as possible in order to get academic accommodations in place for the remainder of the semester.)  The TRIO Student Support Services office is located in Room 109 of the Lee Academic Center, telephone,  (501) 279-4028.

 

Tentative Calendar:

Date

Topic

Instructor(s)

08/22

08/24

History of Distributed Computing and Parallel Processing   

Steil

Operating Systems Review (Processes, Threads, Race Conditions & Deadlocks)

Baber

08/29

08/31

Networking Review (TCP/IP Layers (Focus on Network Layer), Sockets)

Baber

Inter-process Communication (Java and or C# Sockets, Paradigms)

Steil

09/05

09/07

Remote Procedure Calls in C

Steil

Marshaling Objects in C++

Steil

09/12

09/14

Remote Method Invocation in Java

Steil

Remote Method Invocation in C#

Steil

09/19

09/21

In Class Exam

 

Threading (Concepts, P-threads)

Baber

09/26

09/28

Threading in higher level languages  Java, C#

Steil

Distributed Computer Paradigms / Assign parallel projects

Baber

10/03

10/05

Parallel Architectures

Steil

Parallel Algorithm Design

Baber

10/10

10/12

Message-Passing Programming

Steil

MPI

Baber & Steil

10/17

10/19

MPI

Baber & Steil

OpenMP

Baber & Steil

10/24

10/26

OpenMP

 

Turn in Take Home Exam 2

 

10/31

11/02

Parallel Example 1

Steil

Parallel Example 2

Baber

11/07

11/09

Parallel Example 3

Steil

Parallel Example 4

Baber

11/14

11/16

Student Presentations

 

Student Presentations

 

11/21

11/23

Thanksgiving Recess

 

11/28

11/30

Student Presentations

 

Student Presentations

 

12/05

12/07

Student Presentations

 

Exam Review

 

12/13

Comprehensive Final Wednesday 10:30-12:20