Please Reload Every Time You Read This Page!

CSC 125/259: Concurrent and Parallel Programming, Fall 2015

Dr. Chuck C. Liang
Professor of Computer Science, Hofstra University .

Office Address:
102 Adams Hall
Hofstra University
Hempstead, NY 11549
Office Phone: (516 463) 5559

Email: cscccl@hofstra.edu (<- click to send me mail)

Official Office Hours: MTuW 1:30-2:30pm or by appointment.


Course Syllabus

Online Resources:

Ada Language Mechanics:
Basic Ada Program
Objects (bank accounts) in Ada: bank.ads (the header/interface file), bank.adb (the implementation of bank.ads), ootest.adb (tests the "bank" package)
Save them to the same directory and compile with "gnatmake ootest".
More Ada mechanics

Sample Concurrent Ada Programs

  1. Simple example with threads in Ada, Java, C and .Net.
    Ada
  2. Ada program illustrating entry/accept and select.
  3. Concurrent Banker version 1
  4. Concurrent Banker version 2. Asynchronous withdraw
  5. Mutex with select-when-accept
  6. Multi-task synchronization (turn broker).
  7. Mutex with protected type object
  8. Multi-task turn broker

Java thread programs

  1. basic scheme for creating threads
  2. barrier.java with important comments. sample usage with plain gui (enhanced with better getinput method).
  3. mutexes and turnbrokers
  4. Parallel matrix multiplication
  5. Callback functions example
  6. whatsthis.java. Java program emphasizing the difference between threads and synchronization objects.
  7. Example of producer-consumer

Java RMI programs

  1. Distributed Mutex:
    1. dmutex.java (interface),
    2. dmuteximpl.java (implementation and server),
    3. dmclient.java (sample client),
    4. server.policy (no longer needed),
    5. client.policy (no longer needed),
    6. instructions
  2. RMI version of producer-consumer: interface, server, clients (producer and consumer),
  3. Distributed stack (linked list) example: Serializable class, RMI interface, server, client
  4. Distributed synchronization without a central server. (interface).

Hadoop materials

  1. Map/Reduce Research Paper (Required Reading)
  2. Apache Hadoop homepage. Download version 2.6.2
  3. Tutorial Walkthrough. Required Reading
  4. site with prime numbers
  5. Sample programs/videos available on blackboard

MPI materials

  1. MPICH homepage. Read the first parts of the installation guide and the userguide.
  2. INSTALLATION INSTRUCTIONS
  3. MPI Tutorial. (REQUIRED READING
  4. MPI COMMAND REFERENCE
  5. Sample MPI Program (matrix multiplication) using synchronized communication
  6. Matrix multiplication with more advanced (asynchronous) forms of communication
  7. Another MPI sample program illustrating various forms of communication
  8. Various advanced techniques


Ada Programming Assignment 0.
Ada Programming Assignment 1.
Java programming assignment 1, with base program.

Thread pool assignment interface, simple test program.
Thread Pool part 2: parallelizing quicksort
conventional, non-recursive quicksort implementation

Distributed Horse Race RMI Assignment:

Distributed Horse Race Part II

Hadoop assignment 1
Hadoop assignment 2, and associated class file

Network Logging program for use with hadoop.
CAT counter example (directory)
First MPI assignment

Final MPI assignment and associated files:
mesh.h
meshsocket.c
meshskeleton.c (THIS IS WHAT YOU HAVE TO CHANGE))
boxworld.java
meshdisplay.java



Announcements:

Some old video lectures on thread pools are available on blackboard