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 .
102 Adams Hall
Hempstead, NY 11549
Office Phone: (516 463) 5559
(<- click to send me mail)
Official Office Hours: MTuW 1:30-2:30pm or by appointment.
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
- Simple example with threads in Ada,
C and .Net.
- Ada program illustrating entry/accept and select.
- Concurrent Banker version 1
- Concurrent Banker version 2. Asynchronous withdraw
- Mutex with select-when-accept
- Multi-task synchronization (turn broker).
- Mutex with protected type object
- Multi-task turn broker
Java thread programs
- basic scheme for creating threads
- barrier.java with important comments.
sample usage with plain gui (enhanced with better getinput method).
- mutexes and turnbrokers
- Parallel matrix multiplication
- Callback functions example
- whatsthis.java. Java program emphasizing
the difference between threads and synchronization objects.
- Example of producer-consumer
Java RMI programs
- Distributed Mutex:
- dmutex.java (interface),
- dmuteximpl.java (implementation and server),
- dmclient.java (sample client),
- server.policy (no longer needed),
- client.policy (no longer needed),
- RMI version of producer-consumer: interface,
server, clients (producer and consumer),
- Distributed stack (linked list) example: Serializable class, RMI interface, server, client
- Distributed synchronization without a central server. (interface).
- Map/Reduce Research Paper (Required Reading)
- Apache Hadoop homepage. Download version 2.6.2
- Tutorial Walkthrough. Required Reading
- site with prime numbers
- Sample programs/videos available on blackboard
- MPICH homepage. Read the first parts of the installation guide and the userguide.
- INSTALLATION INSTRUCTIONS
- MPI Tutorial. (REQUIRED READING
- MPI COMMAND REFERENCE
- Sample MPI Program (matrix multiplication) using synchronized communication
- Matrix multiplication with more advanced (asynchronous) forms of communication
- Another MPI sample program illustrating various forms of
- 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:
(THIS IS WHAT YOU HAVE TO CHANGE))
Some old video lectures on thread pools are available on blackboard