Please Reload Every Time You Read This Page!

CSC 145/290: Concurrent and Parallel Computation, Spring 2006

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

Office Address:
201A Adams Hall
Hofstra University
Hempstead, NY 11550
Office Phone: (516 463) 5559

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

Official Office Hours: MW 5:30-6:30pm, F 1-2pm 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 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 (from 2/14 class, but with some additions)
  5. Mutex with select-when-accept
  6. Mutex with protected type object
  7. Multi-task turn broker

  8. Java
    barrier.java with important comments. sample usage with plain gui (enhanced with better getinput method).
  9. mutexes and turnbrokers
  10. Callback functions example
  11. whatsthis.java. Java program emphasizing the difference between threads and synchronization objects.
  12. Java version of events
  13. message box synchronization (requires jdk1.5)
  14. RMI Distributed Mutex:
    1. dmutex.java (interface),
    2. dmuteximpl.java (implementation and server),
    3. dmclient.java (sample client),
    4. server.policy,
    5. client.policy,
    6. instructions
  15. Bounded buffer program (non-distributed),
  16. RMI version of bounded buffer: interface, server, producer, consumer.
  17. Distributed synchronization without a central server. (interface).

  18. MPI/C
    Multi-dimensional arrays in C
  19. Sample MPI program with various forms of message passing.
  20. Parallel matrix multiplication in MPI. Also contains important theoretical notes in comments. slightly modified
  21. Gravity simulation with simple 3D graphics built on top of the MPE extensions.
  22. More advanced MPI


Programming Assignment 1. due Thursday 2/23
Programming Assignment 2.
Assignment 2 part B. UPDATED. due Thursday 3/2.
Assignment 3 (java). parts 1,2,3 due Thursday 3/16, part 2b (your own thread pools) is due the following week.

Files for distributed horserace assignment:

download all files into same directory, javac *.java, rmic hrserver, and run rmiregistry, then start hrserver and hrclients. You may want to edit "main" in hrserver and "init" in hrclient to change how to interpret the command-line arguments.

dhrclient.java: Version of horserace program that does not use a central synchronization server. Modified interface and raceinfo, and server.policy. Other files are same as before.

Beowulf setup instructions. Follow with care.
MPI Assignment 1

MPI Final Assignment
Mesh version: mesh.h, meshskl.c
Slice version: slice.h, sliceskl.c
MPE-based simple 3D graphics: threed.c



Announcements:

I've installed the necessary libraries so that mpe programs can now be compiled from all machines. Please log into different machines (10.1.0.8,9,12) to balance the load. (you still must use one processor when running graphics, however).

We will also meet Tuesday during regular class time to work on the final assignment. The final assignment is due at regular class time Thursday.

Final assignment posted. Have fun.

Please note my new Friday office hour is now 1-2pm.