Oregon Institute of Technology

Computer Systems Engineering Technology


CST 407 Multiprogramming



James N. Long

Office:                      Purvine Hall #179

Office Phone:            885-1580


Jim's Schedule

Email:                       james.long@oit.edu - or - jlong@jnltech.com            

Web Page:                http://www.jnltech.com/main

Class: (3-3-4)


Section 1
M W 3:00 pm - 3:50 pm PV 213
Th 3:00 am - 5:50 pm PV 147 (???)


Multithreaded programming in a multicore environment requires more than just "spawning threads". Software engineers must be aware of multicore processor architecture, instruction pipelines and processor cache useage. In this course, approaches to analizing mulithreaded programs will be studied. The overall goal of the course is for students to gain an understanding of software issues realted to multiprocessing and cluster programming and the difference between hyprethreading, multicore, and monocore systems and behavior.


Course Description


This class will deal with the construction, benchmarking, and programming of a 20 node computing cluster.




  1. Processes/Threads
  2. Multicore Architecture
  3. Multiprocessing
  4. Threading Concepts

COURSE REQUIREMENTS Objectives/Outcomes that are expected of students entering this course.

  1. The student will have an understanding data structures.
  2. The student will have an understanding of assembly programming.
  3. The student will have an understanding of computer architecture.
  4. The student will have an understanding of programming concepts and good programming practices.



The course will revolve around the building, benchmarking, anb programming of a computing cluster. The course will be student driven where students will present cluster construction options, cluster benchmarking options, and programming scenarios. Assignments will be:

  1. Cluster Type: Students will propose a cluster type they wish to build in lab. This will require students to work together and present the different options to the class. Break out into two or three groups. Each group will propose to the class a cluster type.  The class will decide as a group what type fo computing cluster to set up. This must be complete by the end of week 2.
  2. Cluster Construction: Students will build a computing cluster with the atom based computers in lab. This must be complete by the end of week 2.
  3. Cluster Benchmarking: Students will again break into groups and research a standard method of benchmarkng the cluster. The method will be presented to the class. Benchmark results will also be presented and a comparison will be made against other computing clusters on the planet.
  4. Problem Proposals and Solutions: Students will research programming problems to solve with the computing cluster and implement the solutions. Both the problems and solutions will be presented.




Students are required to work on their assignments independently. Each assignment should reflect individual effort. Programs received that are determined to be duplicate will be consider to be copies. Do not leave copies of your work in the labs where they can be obtained. Each student is individually responsible for the well-being of their work.



Course Grading


To get a passing grade for the course, students must have created a working computing cluster and proven it is capable of solving a simple problem. After this is obtained additional score will be based in the fillowng set of deliverables:




Cluster Construction Presentation


Cluster Benchmarking Presentation


Cluster Programming


Topic Lecture 200
Total :


Participation is a variable point assignment by the instructor. The points are designed to reward students who 1) attend and participate in class and 2) contribute to group discussion.

The grade breakdown will be:

>= 90%                         A

>= 80%                         B

>= 70%                         C

>= 60%                         D

< 60%                           F


Any student with a disability who anticipates a need for accommodation is this course is encouraged to talk with the instructor about those needs as soon as possible.