Linux nel calcolo distribuito

Похожие документы
Linux nel calcolo distribuito

I THREAD O PROCESSI LEGGERI

CVserver. CVserver. Micky Del Favero BLUG - Belluno Linux User Group Linux Day Feltre 25 ottobre Un cluster di VServer

Lezione 1. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.

Sistemi a processori multipli

Tecnologie di virtualizzazione

Sistemi Operativi: Concetti Introduttivi

Dal sistema operativo all' hardware

Laboratorio software. A.A C. Brandolese

Lezione 2 Chiamate di procedura e risposta alle interruzioni

Sistema operativo & file system 1

Modelli di programmazione parallela

Introduzione al Calcolo Parallelo Algoritmi e Calcolo Parallelo. Daniele Loiacono

I sistemi operativi (prima parte) Agostino Lorenzi I sistemi operativi - Atlas

Sicurezza del File System

Openmosix e Beowulf: introduzione e confronto

5 Thread. 5 Thread. 5 Thread. Ad un generico processo, sono associati, in maniera univoca, i seguenti dati e le seguenti informazioni:

Architettura dei calcolatori e Software di sistema

Sistema operativo. Avere un architettura multi-core è un vantaggio

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Lezione4: MIPS e Istruzioni (1 Parte)

CdL MAGISTRALE in INFORMATICA A.A corso di Sistemi Distribuiti. 8. Le architetture (prima parte) Prof. S.Pizzutilo

SISD - Single Instruction Single Data. MISD- Multiple Instructions Single Data. SIMD Single Instruction Multiple Data. Architetture di processori

Macchina di von Neumann/Turing

Sistema Operativo (Software di base)

INTRODUZIONE ALL INFORMATICA

Sistemi Operativi UNICAL. Facoltà di Ingegneria. Domenico Talia A.A Sistemi Operativi. D. Talia - UNICAL

Che cos e l Informatica. Informatica generale. Caratteristiche fondamentali degli algoritmi. Esempi di algoritmi. Introduzione

Architetture di rete. 4. Le applicazioni di rete

Livelli del sottosistema di I/O

File: definizione. Il file è la più piccola unità logica manipolabie Un file è caratterizzato principalmente da:

Транскрипт:

openmosix Linux nel calcolo distribuito Dino Del Favero, Micky Del Favero dino@delfavero.it, micky@delfavero.it BLUG - Belluno Linux User Group Linux Day 2004 - Belluno 27 novembre openmosix p. 1

Cos è openmosix openmosix è una patch per il kernel di Linux per trasformare un gruppo di computer in un cluster. openmosix p. 2

Cos è openmosix openmosix è una patch per il kernel di Linux per trasformare un gruppo di computer in un cluster. Un cluster è un gruppo di computer interconnessi al fine di permettere l esecuzione di uno o più processi migliorando le prestazioni ottenibili facendo girare gli stessi processi sui singoli nodi componenti il cluster. openmosix p. 2

Tipi di cluster Fail Over (HA): due o più macchine connesse tra di loro con più link hearbeat, se una macchina si guasta l altra ne prende automaticamente il posto garantendo la continuità del servizio. openmosix p. 3

Tipi di cluster Fail Over (HA): due o più macchine connesse tra di loro con più link hearbeat, se una macchina si guasta l altra ne prende automaticamente il posto garantendo la continuità del servizio. Load Balancing: due o più macchine connesse ad un apparato che dirige le richieste in modo da rendere il carico uniforme su tutte le macchine del cluster. openmosix p. 3

Tipi di cluster Fail Over (HA): due o più macchine connesse tra di loro con più link hearbeat, se una macchina si guasta l altra ne prende automaticamente il posto garantendo la continuità del servizio. Load Balancing: due o più macchine connesse ad un apparato che dirige le richieste in modo da rendere il carico uniforme su tutte le macchine del cluster. High Performance Computing (HPC): due o più macchine connesse tra di loro al fine di ottenere una singola unità logica ottimizzata per il calcolo, a questa categoria appartengono Beowulf e openmosix. openmosix p. 3

openmosix vs Beowulf (1) openmosix Nodi anche di potenze diverse openmosix p. 4

openmosix vs Beowulf (1) openmosix Nodi anche di potenze diverse Software standard openmosix p. 4

openmosix vs Beowulf (1) openmosix Nodi anche di potenze diverse Software standard Scalabilità openmosix p. 4

openmosix vs Beowulf (1) openmosix Nodi anche di potenze diverse Software standard Scalabilità Un processo, un processore openmosix p. 4

openmosix vs Beowulf (1) openmosix Nodi anche di potenze diverse Software standard Scalabilità Un processo, un processore Solo Linux/x86 openmosix p. 4

openmosix vs Beowulf (2) Beowulf Nodi della stessa potenza openmosix p. 5

openmosix vs Beowulf (2) Beowulf Nodi della stessa potenza Software sviluppato ad hoc openmosix p. 5

openmosix vs Beowulf (2) Beowulf Nodi della stessa potenza Software sviluppato ad hoc Un processo tutti i processori openmosix p. 5

openmosix vs Beowulf (2) Beowulf Nodi della stessa potenza Software sviluppato ad hoc Un processo tutti i processori Non limitato a x86 openmosix p. 5

Caratteristiche principali di openmosix Economico openmosix p. 6

Caratteristiche principali di openmosix Economico Non è necessario hardware dedicato; normali PC connessi in rete possono essere trasformati in cluster. openmosix p. 6

Caratteristiche principali di openmosix Economico Scalabile openmosix p. 6

Caratteristiche principali di openmosix Economico Scalabile Per migliorare le prestazioni è, spesso, sufficiente aggiungere nodi al cluster. openmosix p. 6

Caratteristiche principali di openmosix Economico Scalabile Trasparente openmosix p. 6

Caratteristiche principali di openmosix Economico Scalabile Trasparente Una volta in esecuzione sarà il sistema operativo stesso a bilanciare il carico sui vari nodi. openmosix p. 6

Caratteristiche principali di openmosix Economico Scalabile Trasparente Adattabile openmosix p. 6

Caratteristiche principali di openmosix Economico Scalabile Trasparente Adattabile Non sono necessari nodi identici. L unico limite imposto da openmosix, attualmente, è che ogni macchina appartenga all architettura x86. Un altro limite è che l hardware sia supportato da GNU/Linux. openmosix p. 6

Caratteristiche principali di openmosix Economico Scalabile Trasparente Adattabile Flessibile openmosix p. 6

Caratteristiche principali di openmosix Economico Scalabile Trasparente Adattabile Flessibile E possibile aggiungere o togliere nodi senza dover fermare il cluster. openmosix p. 6

Come funziona openmosix (1) openmosix rende possibile far migrare i processi in esecuzione tra i nodi componenti il cluster. openmosix p. 7

Come funziona openmosix (1) openmosix rende possibile far migrare i processi in esecuzione tra i nodi componenti il cluster. La tecnologia openmosix è costituita da due parti: 1. Un meccanismo di Preempitive Process Migration (PPM). 2. Un insieme di algoritmi per la condivisione adattativa delle risorse. openmosix p. 7

Come funziona openmosix (1) openmosix rende possibile far migrare i processi in esecuzione tra i nodi componenti il cluster. La tecnologia openmosix è costituita da due parti: 1. Un meccanismo di Preempitive Process Migration (PPM). 2. Un insieme di algoritmi per la condivisione adattativa delle risorse. Gli algoritmi di condivisione forniscono al PPM le informazioni necessarie per decidere quale processo deve essere migrato verso quale dei nodi componenti il cluster. openmosix p. 7

Come funziona openmosix (2) Ogni processo ha un Unique Home-Node (UHN): il nodo su cui il processo è stato generato. openmosix p. 8

Come funziona openmosix (2) Ogni processo ha un Unique Home-Node (UHN): il nodo su cui il processo è stato generato. Il modello SSI (Single System Image) di openmosix è un Cache Coerent Cluster in cui ogni processo sembra girare sul proprio UHN e dove ogni processo di una singola sessione utente condivide l ambiente di esecuzione dell UHN. openmosix p. 8

Come funziona openmosix (2) Ogni processo ha un Unique Home-Node (UHN): il nodo su cui il processo è stato generato. Il modello SSI (Single System Image) di openmosix è un Cache Coerent Cluster in cui ogni processo sembra girare sul proprio UHN e dove ogni processo di una singola sessione utente condivide l ambiente di esecuzione dell UHN. I processi migrati verso nodi remoti useranno le risorse locali (del nodo remoto) fintantoché ciò è possibile, ma interagiranno con l ambiente utente attaverso l UHN. openmosix p. 8

Quando migrano i processi Un processo migra quando il carico del nodo (cpu, ram, ecc.) che esegue il processo supera una certa soglia. openmosix p. 9

Quando migrano i processi Un processo migra quando il carico del nodo (cpu, ram, ecc.) che esegue il processo supera una certa soglia. I processi in esecuzione vengono quindi assegnati dinamicamente ai nodi del cluster in modo da massimizzare lo sfruttamento delle risorse disponibili mantenendo il carico medio di ogni singolo nodo sotto una certa soglia critica. openmosix p. 9

Come migrano i processi (1) Per implementare la PPM il processo da migrare è diviso in due contesti: user context che può migrare e system context che è dipendente dall UHN. openmosix p. 10

Come migrano i processi (1) Per implementare la PPM il processo da migrare è diviso in due contesti: user context che può migrare e system context che è dipendente dall UHN. Lo user context, detto remote, contiene text, data, stack, memory maps, register del processo. Il remote incaplusa il processo quando questo gira a livello user. openmosix p. 10

Come migrano i processi (1) Per implementare la PPM il processo da migrare è diviso in due contesti: user context che può migrare e system context che è dipendente dall UHN. Lo user context, detto remote, contiene text, data, stack, memory maps, register del processo. Il remote incaplusa il processo quando questo gira a livello user. Il system context, detto deputy, contiene una descrizione delle risorse a cui il processo è attaccato e un kernel-stack per l esecuzione del codice a livello kernel. Il deputy incapsula il processo quando questo gira nel kernel, a lui appartiene la parte dipendente dal nodo del processo e quindi non può migrare. openmosix p. 10

Come migrano i processi (2) L interfaccia di comunicazione fra user e system context è ben definita e può essere intercettata, ogni interazione fra i due contesti e inviata attraverso la rete a nodi diversi. openmosix p. 11

Come migrano i processi (2) L interfaccia di comunicazione fra user e system context è ben definita e può essere intercettata, ogni interazione fra i due contesti e inviata attraverso la rete a nodi diversi. Il tempo necessario alla migrazione ha una componente fissa necessaria ad istanziare un nuovo process frame nel nodo remoto e una lineare al numero di pagine di memoria che devono essere trasferite. Per minimizzare l overhead solo la tabella delle pagine e le pagine usate sono trasferite. openmosix p. 11

Come migrano i processi (2) L interfaccia di comunicazione fra user e system context è ben definita e può essere intercettata, ogni interazione fra i due contesti e inviata attraverso la rete a nodi diversi. Il tempo necessario alla migrazione ha una componente fissa necessaria ad istanziare un nuovo process frame nel nodo remoto e una lineare al numero di pagine di memoria che devono essere trasferite. Per minimizzare l overhead solo la tabella delle pagine e le pagine usate sono trasferite. Durante l esecuzione di un processo la trasparenza al nodo viene garantita inviando le chiamate a sistema dipendenti dal nodo al deputy presso l UHN, mentre quelle indipendenti dal nodo vengono eseguite localmente. openmosix p. 11

Il nostro cluster (1) Il cluster dimostrativo che abbiamo portato è composto da 4 macchine di cui 2 diskless, su tutte le macchine gira Debian GNU/Linux Sarge e in particolare sono stati installati: bysybox initscripts net-tools debianutils bash coreutils modutils ifupdown sysvinit findutils udhcpc openmosix-tools openmosix p. 12

Il nostro cluster (2) Sul cluster gireranno più istanze dello script di test tratto dall openmosix HOWTO reperibile presso http://howto.ipng.be/openmosix-howto/ for i in $(seq 1 10); do awk BEGIN { for(i=0;i<10000;i++) for(j=0;j<10000;j++); } & done openmosix p. 13

openmosix Una demo. openmosix p. 14

openmosix Domande? openmosix p. 14

openmosix Grazie per l attenzione. openmosix p. 14