Openmosix e Beowulf: introduzione e confronto

Documenti analoghi
Architettura di un sistema operativo

Linux nel calcolo distribuito

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Approccio stratificato

Il clustering HA con Linux: Kimberlite

IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito)

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Pronto Esecuzione Attesa Terminazione

SISTEMI E RETI. Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB.

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Comunicazione tra Processi

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Introduzione alla Virtualizzazione

Dispensa di Informatica I.1

Il Sistema Operativo

Online Help StruxureWare Data Center Expert

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

istraffic Sistema di monitoraggio Traffico

Gestione della memoria centrale

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

IBM SPSS Statistics per Mac OS - Istruzioni di installazione (Licenza per sito)

Sistemi Operativi. Lez. 13: primitive per la concorrenza monitor e messaggi

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

SPSS Statistics per Windows - Istruzioni di installazione per (Licenza per utenti singoli)

Piano Nazionale di Formazione degli Insegnanti sulle Tecnologie dell'informazione e della Comunicazione. Percorso Formativo C1.

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

SISTEMI OPERATIVI DISTRIBUITI

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

HBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque?

Installare MDaemon su un cluster Microsoft

Sistemi Operativi. Introduzione UNICAL. Facoltà di Ingegneria. Domenico Talia A.A

La Gestione delle risorse Renato Agati

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Sistemi Operativi. Conclusioni e nuove frontiere

Il sistema operativo TinyOS

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Architetture Applicative

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

VMware. Gestione dello shutdown con UPS MetaSystem

IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per utenti singoli)

MDaemon GroupWare Per offrire agli utenti le funzionalità di condivisione calendario, rubrica e gli altri oggetti di OutLook

Le Infrastrutture Software ed il Sistema Operativo

IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per sito)

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Corso di Sistemi di Elaborazione delle informazioni

Architetture Informatiche. Dal Mainframe al Personal Computer

Architetture Informatiche. Dal Mainframe al Personal Computer

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Introduzione alla Progettazione per Componenti

Versione 2.0. Manuale d uso. Software per la gestione. degli applicativi Bticino. TiManager 03/07-01 PC

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

PkBox Client Smart API

Guida Rapida di Syncronize Backup

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

MODULO 02. Iniziamo a usare il computer

Organizzazione Monolitica

RETI E SISTEMI INFORMATIVI

3. Introduzione all'internetworking

Sistemi operativi e reti A.A Lezione 2

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Virtualizzazione e Macchine Virtuali

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

Introduzione alle applicazioni di rete

MDaemon GroupWare Per offrire agli utenti le funzionalità di condivisione calendario, rubrica e gli altri oggetti di MS Outlook

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica

FileMaker Pro 13. Utilizzo di una Connessione Desktop Remota con FileMaker Pro13

Introduzione al linguaggio Java

InitZero s.r.l. Via P. Calamandrei, Arezzo

VIRTUALIZZAZIONE LUG - CREMONA. Linux Day - 25 Ottobre 2008

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

CPU. Maurizio Palesi

Struttura del calcolatore

IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per utenti singoli)

Il Software. Il software del PC. Il BIOS

Manuale Terminal Manager 2.0

Sistema operativo: Gestione della memoria

GESTIONE DEI PROCESSI

Transcript:

Openmosix e Beowulf: introduzione e confronto Giovanni Perbellini Cluster Introduzione Cluster ESD Openmosix Comandi principali Beowulf (PVM) Comandi principali Libreria PVM API Agenda 1

Introduzione - Cluster In informatica, un cluster è un insieme di computer connessi tramite una rete telematica (Wikipedia) Lo scopo di un cluster è quello di distribuire una computazione molto complessa tra i vari computer che compongono il cluster In sostanza un problema che richiede molte elaborazioni per essere risolto viene scomposto in sottoproblemi separati i quali vengono risolti in parallelo Requisiti cluster Sistema operativo e.g., Linux con OpenMosix Hardware di rete Un algoritmo il cui calcolo può essere eseguito in parallelo 2

Tipi di cluster Failover Monitoraggio dei servizi e migrazione in caso di caduta dei servizi Load-balancing Bilanciamento dei processi con migrazione in caso di saturazione delle risorse Esempio: Openmosix High Performance Computing (HPC) I processi vengono sparsi sui nodi del cluster Esempio: Beowulf Cluster ESD ant1 ant2 ant3 ant4 ant5 edalab-cluster ant6 ant7 ant8 ant9 ant10 3

Openmosix - Introduzione Modifiche al kernel Linux per abilitare la migrazione dei processi Web Link: http://openmosix.sourceforge.net 2 componenti principali: Patch per il Kernel del O.S. Licenza GPL User-space tools Licenza GPL Funzioni per la comunicazione tra i nodi e interfaccia per le funzioni kernel Openmosix - Obiettivo Migrazione automatica dei processi tra i nodi del cluster in modo da bilanciare il carico I nodi del cluster notificano agli altri nodi circa il loro stato Esempio: numero di processi eseguiti, uso del processore e della memoria Se un nodo del cluster determina che un altro nodo ha più risorse per gestire un processo, il processo viene migrato su un altro nodo Controllo centralizzato di tipo master/slave 4

Openmosix Vantaggi (I) Adattabile: Non è necessario utilizzare nodi identici, ma possono essere usate varie tipologie di CPU Economico: Non è necessario usare HW dedicato Scalabile: per aumentare le prestazioni è sufficiente aumentare il numero dei nodi (max 65536) Openmosix Vantaggi (II) Trasparente: Una volta in esecuzione, sarà il sistema stesso a bilanciare il carico di lavoro e a ripartire i processi sui vari nodi. Nessun cambiamento al codice da parallelizzare (nessuna libreria richiesta). Flessibile: E' possibile aggiungere o togliere un nodo senza dover bloccare tutto il cluster 5

Openmosix - Svantaggi Esecuzione lenta per i processi che fanno molti I/O runs Tutti gli I/O hanno bisogno di essere comunicati tra i nodi sorgente e destinazione del cluster Dispendiosa l esecuzione di processi paralleli (e.g., applicazioni scientifiche) che hanno bisogno di accedere a grossi file di dati Soluzione: MOPI (MOSIX Parallel I/O) Divisione del file di dati tra i nodi del cluster e quando un processo ha bisogno di accedere a certe porzioni del file viene migrato sull appropriato nodo Openmosix Esempi OK Programmi che eseguono fork per creare processi figli Programmi che creano più istanze dello stesso programma Esempi: MatLab 5 MJPEG tools (gestione di file audio/video) 6

Openmosix Esempi NO Programmi che fanno uso di memoria condivisa Esempi: Oracle Postgres Esistono alcune patch per eliminare il problema Openmosix user-space tools mosmon (openmosix monitor) permette di vedere lo stato di tutti i nodi incluso l'utilizzo della cpu, la memoria installata, memoria usata, etc. mtop versione potenziata di top che mostra su quale nodo viene eseguito un processo 7

mps Openmosix user-space tools versione potenziata di ps mostra anche il numero dei nodi mosctl whois mosctl whois nodenumber è possibile vedere l'ip o l'hostname di nodenumber Beowulf Insieme di SW e librerie per emulare un architettura concorrente Obiettivo: permettere all insieme di macchine di cooperare per eseguire un calcolo parallelo Modalità: Permette al programmatore di dividere i compiti da svolgere su un gruppo di computer collegati in rete e di riunire i risultati dei singoli processi per ottenere la soluzione del problema trattato 8

Beowulf Le più famose PVM (Parallel Virtual Machine) MPI (Message Passing Interface) PVM Principi base Applicazione è suddivisa in task, responsabile di una parte di computazione dell intera applicazione Task (processo) Unità di lavoro che viene eseguita in parallelo in PVM Processo sequenziale e indipendente che alterna tra computazione e comunicazione I task dell applicazione eseguono su un insieme di macchine che sono selezionate dall utente Nodi selezionati per una determinata esecuzione Aggiunta/rimozione nodi a run-time 9

PVM Principi base Modello message-passing Invio e ricezione di messaggi tra la collezione di task Supporto dell eterogenietà PVM supporta eterogeneità in termini di nodi (macchine), rete e applicazioni PVM - Componenti Composto da due parti Demone pvmd3 Risiede sul nodo che fa da macchina virtuale Libreria di routine PVM Insieme di primitive utili per la cooperazione tra i task di un applicazione Mesage passing, spawning processi, coordinazione dei task, etc. 10

PVM - Parallelismo Functional parallelism L applicazione è suddivisa in funzioni che vengono attribuite a diversi task Esempio: input, output, setup, solution, display Data parallelism I task sono tutti uguali ma ognuno risolve solo una parte dei dati SPMD (Single Program Multiple Data) PVM può supportare entrambi i metodi nella stessa esecuzione PVM task Ogni task è identificato da un TID (Task Identification) Unico su tutto il cluster Forniti dal demone pvmd Non possono essere scelti dall utente PVM contiene diverse funzioni che ritornano il TID per identificare i task 11

PVM Funzioni di libreria (I) pvm_spawn() per generare dei task (che verranno "allocati" automaticamente sulle macchine del cluster). pvm_pack() è una famiglia di funzioni, una per ogni tipo di dato; converte i dati in un formato standard (per permettere lo scambio dei dati tra architetture eterogenee) e li copia nel buffer di invio. pvm_unpack() è la simmetrica della pvm_pack, per la riconversione dei dati dopo la ricezione. pvm_send() invia dei dati ad un task. pvm_mcast() invia dei dati a più task (multicast). pvm_recv() riceve dei dati da un task specifico (o da qualunque task). PVM Funzioni di libreria (II) pvm_trecv() riceve dei dati, entro un certo tempo max, altrimenti ritorna. pvm_nrecv() riceve dei dati se sono già presenti, altrimenti esce (receive non bloccante). pvm_joingroup() aggiunge il task chiamante al gruppo specificato (se non esiste, lo crea). pvm_lvgroup() lascia un gruppo. pvm_bcast() manda un messaggio a tutti i task del gruppo. pvm_barrier() ferma l'esecuzione del task, finchè tutti i membri del gruppo chiamano pvm_barrier() (per la sincronizzazione). 12

PVM Linguaggi: C, C++, Fortran Web link http://www.netlib.org/pvm3/index.html ftp://ftp.netlib.org/pvm3 Librerie C/C++: libpvm3.a e libgpvm3.a Demone % pvm Per accedere al prompt dei comandi di PVM % xpvm PVM con interfaccia grafica PVM Comandi (I) pvm> add hostname Aggiunta di hostname alla macchina virtuale pvm> delete hostname Rimozione di hostname dalla macchina virtuale I processi in esecuzione su hostname vengono persi pvm > conf Configurazione della macchina virtuale (hostname presenti sulla macchina virtuale, task ID, tipo di architetture, etc.) 13

PVM Comandi (II) pvm> ps -a Elenco di tutti i processi in esecuzione sulla macchina virtuale, i loro task ID, etc. pvm> quit Uscita dal prompt dei comandi, lasciando in esecuzione i demoni e tutti i processi PVM in esecuzione pvm> halt Uscita dal prompt dei comandi, con terminazione di tutti i processi PVM e di tutti i demoni pvm> spawn PVM Comandi (III) Inizia l esecuzione di un applicazione Opzioni: count Numero di task (default = 1) host Esecuzione su un determinato host (default = any)? Abilita il debug > file Redirezione dell output del task su file 14