Indice

Final project

The final SPM project is structured in 5 different alternatives. Students should agree which one they want to choose with the Professor before actually starting to implement the project.

Alternatives

Game of Life (GOL)

Game of Life has already been assigned as a kind of mid term homework to be implemented using low level threading mechanisms. The first alternative project consists in implementing a game of life application working on differently sized matrixes with one of the existing structured parallel programming frameworks discussed within the course (FastFlow or Skandium) and in comparing the results achieved with the thread and framework based versions in terms of performance.

StreamCluster (SC)

StreamCluster is an application computing a clustering algorithm over data coming from an input stream. Data clustering is used in a variety of different applications and basically consists in grouping the incoming data in such a way all belong to a given cluster (group of data) with a given centroid item.

We will consider here the application already provided in the parsec benchmark suite (see the Parsec web site). The application is provided as C source code. Different parallelisations of the code exist (e.g. using TBB in parsec, or OpenMP and Cuda in the Rodinia benchmark suite). The student must develop a parallel version of the application using FastFlow.

N-queens (NQ)

N-queens is the well known problem of placing n queens on an n by n chess board in such a way there is no pair of queens on the same column, on the same row or on the same diagonal. Two versions of the program must be developed:

micro-mdf (MDF)

Micro-mdf is a minimalist parallel programming framework supporting execution of macro data flow graphs. In particular, it must support the following features:

Free choice

Students are encourage to propose and discuss with the professor different alternatives, possibly individuated because of personal interests, subjects already tackled in other courses etc.

In order to be considered valid alternatives:

of the existing frameworks.

Problem/framework possibilities

We will take into account the following possibilities:

Problem FastFlow Skandium Threads (multicore) Processes (COW)
GOL yes yes yes yes
SC yes no no yes
NQ yes yes yes yes
MDF no no yes yes

Alternative implementation frameworks may be taken into account in some cases (including OpenMP, MPI, CUDA, OpenCL, scripting languages) depending on the student knowledge and to be agreed with the professor.

Workflow

A valid project is the result of the execution of an ordered set of steps:

  1. the student must agree the subject with the professor, and the pairing student-project has to be published on the project assignment table (agreement should go through an email to the professor with subject “SPM project”)
  2. the project design has to be completed and agreed again with the professor
  3. the project implementation has to be completed, debugged and validated
  4. the project (source code, sample input files and report describing what has been actually produced) has to be submitted by one of the exam terms via email to professor email account
  5. the project has be demonstrated (on a text terminal) and discussed with the professor

Project code

Project code should be delivered to the professor email account as a compressed archive (.zip or .tar.gz)

Project report

The project report is a PDF document of no more than 10 pages explaining:

More in detail:

Project validity

This project is valid for all the exam terms in A.Y. 2015/2016.