13) In cosa consiste in particolare il load sharing?

Consiste nell’utilizzo delle risorse in modo che nessun processore sia idle, cioè nell’implementare soluzioni per un’ottimale distribuzione del carico. Occorre determinare quali processi, quando e dove muoverli.

Le implementazioni distribuite realizzano la ricerca di processori liberi in grado di essere utilizzati.

Organizzazioni possibili (rispetto all’interconnessione)

Ring logico (interconnessione di tipo statico)

È una struttura logica per la ricerca con un token in un anello

Si invia un broadcast iniziale della richiesta di esecuzione e si distribuisce il carico secondo le risposte

Gerarchia logica MICROS (interconnessione di tipo dinamico)

Obiettivi

L'architettura è gerarchica ma logica: non ci sono connessioni dirette

Il worker (slave) ha funzioni di calcolo ed I/O

Il manager (master) ha funzioni di gestione

Il numero di livelli dipende dal numero di worker

In caso di guasti:

master: si prevede la presenza di più nodi master

slave: il master deve poter comandare altri slave ai livelli sottostanti

realizzazione con:

allocazione statica: si allocano un numero di processori worker adatti ed i relativi manager

allocazione dinamica: si possono richiedere altri nodi di elaborazione nella gerarchia; al limite si possono chiedere nuove risorse al livello sovrastante

Worm (interconnessione di tipo dinamico)

approccio innovativo:

il Worm (verme) è fatto di uno o più segmenti, cioè processi, che possono comunicare tra loro

Un verme si incarica di cercare i nodi liberi attraverso clonazione su nodi liberi, a seguito di probe mandati dai segmenti che vogliono espandersi

È una metodologia decentralizzata: non si conosce lo stato del verme globalmente.

 

Il Load sharing può essere fatto a priori o durante l'esecuzione, ma senza muovere gli elementi una volta che li abbiamo allocati.

Load Balncing

Le politiche di allocazione si realizzano:

assumendo la conoscenza dei processi (caso statico) o meno (caso dinamico)

ottimizzando globalmente (caso statico - costi elevati) o meno (costi accettabili dinamici)

lavorando in modo esatto (costi a volta inaccettabili) o approssimato ed euristico. In particolare, i costi sono fondamentali per i casi più complessi in quanto:

le risorse di esecuzione dipendono dal singolo processo

le risorse di comunicazione dipendenza dalla allocazione di coppie di processi (non linearità)

Nel caso statico si possono usare algoritmi anche complessi per calcolare un’allocazione, ma spesso queste strategie non sono applicabili durante la esecuzione, in quanto hanno costo elevato e l’obiettivo è sempre la riduzione dell’overhead.

la riallocazione o riconfigurazione in sistemi eterogenei deve tenere conto delle diverse forme di rappresentazione per ogni passaggio

 

 


Back
Index
Next