Esercitazione dell'8 Novembre

  • Farm con autoscheduling
    Si realizzi un programma in cui un processo deve calcolare n task (di tipo Integer, il calcolo consiste semplicemente nell'incremento dell'Integer e nell'attesa di un tempo casuale compreso fra 0 e 1 secondo) utilizzando k processi worker.
    Ogni processo worker e' in grado di calcolare un task. I task vengono distribuiti dal processo master ai soli worker che ne fanno richiesta. Quindi il generico processo worker eseguira' un ciclo in cui: Il master quindi lavora accettando richieste di k worker e rispondendo con task da calcolare.
    Attenzione : la terminazione dei processi worker non puo' essere basata solo su parametri n e k, dato che in generale non e' possibile prevedere quale sarà la distribuzione dei task ottenuta a tempo di esecuzione. Si assuma che se non arrivano task per un tempo ragionevolmente lungo, i task siano finiti, e quindi i worker possano terminare.