Autonomic Farm Pattern

Tech Stack: C++, FastFlow

This is the final project of the course “Parallel and Distributed Systems: Paradigms and Models” at the University of Pisa.



The goal is to provide a farm pattern ensuring (best effort) a given service time leveraging on dynamic variation of the parallelism degree. The farm is instantiated and run by providing:

  • A collection of input tasks to be computed (of type Tin)
  • A function<Tout(Tin)> computing the single task
  • An expected service time TSgoal
  • An initial parallelism degree nw

During farm execution, autonomic farm management should increase or decrease the parallelism degree in such a way its service time is as close as possible to the expected service time TSgoal. The pattern should be tested providing a collection of tasks such that the tasks in the initial, central and final part all require a different average time to be computed (e.g. 4L in the first part, L in the second part and 8L in the third part) and the task collection execution time is considerably longer than the time needed to reconfigure the farm.

Luca Corbucci
Luca Corbucci
Computer Science Student

My name is Luca Corbucci, I was born on 12th August 1995 in Viterbo. I’m currently enrolled in the Master Degree in Computer Science at the University of Pisa.