Indice
Final project page : SPM 09-10
Project text
The project texts can be found in the Slides presented during lessons.
Project types
For Academic Year 2009-2010, several distinct classes of projects have been proposed:
- RTS: implementation of a small run time/compiler tool for structured programming paradigms/models
- APPL: parallelization of small, known applications with a structured programming framework
- COMP: comparison of two different structured programming frameworks
- LESS: lesson illustrating a structured programming framework (with sample code and installation hints)
Target architecture
The project code can be developed using any system, but eventually the code must run on the computer facilities of Aula H/I/M at the Polo Fibonacci, with machines booted with Linux (not Windows).
Languages & tools
The following programming languages are accepted as the implementation languages of the projects:
- C, C++, Java, Perl
The following list of programming environments/tools is accepted for the projects requiring some coding:
Kind | Tools |
---|---|
Threads | OpenMP, PThread |
Communication libraries | MPI, POSIX/TCP, RCP/RMI |
Skeleton frameworks | |
Java based | Muskel, Calcium |
C/C++ based | Muesli, eSkel, SkeTo |
Other | OcamlP3L |
You can download a stable version of muskel here. The other skeleton frameworks are available for download at their web sites.
Project assignments accepted (so far)
Those students that wish to try to pass the exam in the winter term (January or February 2010) should agree ASAP an assignment with the professor, sending him an email with subject SPM Final Project and with the following information:
- name of the student (students, max 2) doing the project
- project chosen (class, type)
- implementation tools to be used
- major unspecified details fixed (e.g. APPL.x : kind of application chosen)
Students that want to try to pass the exam in a later session should agree the project assignment with the processor (same email procedure) before actually start working. E.g. if they start to prepare the exam/project in may, before making actual work, they should send the professor a message “SPM Final Project” and wait for professor's ACK message.
The already agreed assignments are reported to the assignment page.
Tools
This section contains some hints on the tools you can use to develop project code.
rdist
rdist is a Unix command that can be used to distribute files across a network. Have a look at the man rdist Basically, you can write a distfile file such as:
HOSTS = (fujim1 fujim2 fujim3 fujim4 fujim5) MPICH = (/tmp/mpich/bin /tmp/mpich/lib) mpi: ${MPICH} -> ${HOSTS} install;
and by typing the command
rdist mpi
you'll clone the directories /tmp/mpich/bin and /tmp/mpich/lib of the local machine to the machines listed in HOSTS. This command could be suitably used to install “on the fly” some software on the machines of the computer rooms that do not provide that software by default. As an example, to use mpich, you can follow these steps:
- download mpich code, ./configure and make –install-dir=/tmp
- prepare a proper distfile
- make a tar.gz of the /tmp installation (inlcuding the distfile) and save it to your home
Once you have done the initial configuration, you can install on the fly mpich on the machines in the HOST variable of the distfile as follows:
- copy the .tar.gz file to /tmp and tar -xf it
- rdist distfile
and that's it (Don't forget to include /tmp/mpich/bin in the PATH !!!)