Introduzione Le macchine parallele commerciali utilizzano file system paralleli ma questi ultimi non si sono dimostrati adatti per i Linux cluster poichè

Slides:



Advertisements
Presentazioni simili
STRUTTURA DEL SISTEMA OPERATIVO
Advertisements

Gestione della Memoria
1 Introduzione ai calcolatori Parte II Software di base.
Gestione della memoria centrale
Unità D2 Archivi e file.
POSIX Access Control Lists Seminario di Sistemi Operativi mod.B Giacomo Basso 566/538.
Gestione del processore
File system Casi di studio (3).
1 System Call per Comunicazione tra Processi Pipe.
Cluster openMosix Linux Day ’04 Caserta Ing. Diego Bovenzi.
Giuseppe Fabio Fortugno.
Realizzazione del file system
Realizzazione del file system
Come programmare servizi di rete?
1 9: Progettazione Architetturale Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Introduzione allinformatica. Cosè linformatica ? Scienza della rappresentazione e dellelaborazione dellinformazione ovvero Studio degli algoritmi che.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Corso di Informatica (Programmazione)
Windows 2000 supporta i seguenti file system:
Remote file access sulla grid e metodi di interconnesione di rete M. Donatelli, A.Ghiselli e G.Mirabelli Infn-Grid network 24 maggio 2001.
Disco magnetico (2) Ciascuna traccia è divisa in settori
Gestione di Progetti Software 2 (A.A. 2004/2005) - Lezione 2 1 JAVA: obiettivi di progetto del linguaggio Nota storica: Il linguaggio JAVA (inizialmente.
Struttura dei sistemi operativi (panoramica)
Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 13 1 La Manipolazione Diretta Sensazione di interagire con un mondo di oggetti piuttosto.
Riunione CRESCO Infrastruttura HPC Cresco Analisi Preliminare.
CAPITOLO 2 INTRODUZIONE AL LINGUAGGIO JAVA E ALL'AMBIENTE HOTJAVA.
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
RETI E INTERNET.
Organizzazione della Memoria (Unix) Text contiene le istruzioni in linguaggio macchina del codice eseguibile, può essere condiviso in caso di processi.
Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
Progetto Di Uninfrastruttura Che Permetta La Modifica Di Dati Condivisi Distribuiti Su Più Nodi Reti di calcolatori L-S Gozzi Daniele
CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.
M.A.E.A.I. Mobile Agent and Enterprise Architecture Integration Il gestore delle politiche Valerio Siri Reti di Calcolatori LS Docente: Antonio Corradi.
Progetto di una architettura per lesecuzione distribuita e coordinata di azioni Progetto per lesame di Reti di Calcolatori L-S Prof. Antonio Corradi Finistauri.
Reti di Calcolatori L-S Un Sistema Decentrato di Allocazione del Carico per Applicazioni di Calcolo Distribuito Mauro Bampo.
Distributed File System Service Dario Agostinone.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
1 Installazione da rete Introduzione Configurazione del server NFS Cosa serve sul client Configurazione kickstart.
Modulo 2 – U.D. 1 – Lez. 2 Ernesto Damiani – Sistemi di elaborazione dell'informazione.
U N INFRASTRUTTURA DI SUPPORTO PER SERVIZI DI FILE HOSTING Matteo Corvaro Matricola Corso di Reti di Calcolatori LS – Prof. A. Corradi A.A.
Il linguaggio di programmazione C; Il Sistema Operativo Linux installato, con relativo utilizzo della shell bash attraverso i principali comandi standard.
Il Sistema Operativo (1)
Servizi Grid ed agenti mobili : un ambiente di sviluppo e delivering
Architettura di storage ad alta affidabilita e bilanciamento di carico per volumi centrali e di esperimento A.Brunengo, M.Corosu INFN Sezione di Genova.
Reti di calcolatori LS Manni Tiziano  IT e nuovi scenari applicativi …  … portabilità dei dati …  … condivisione dati …  … disponibilità.
L’architettura a strati
Il supercalcolo fai-da-te
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
Introduzione Cos’è un sistema operativo ?. Hardware Sistema Operativo Applicazioni È il livello di SW con cui interagisce l’utente e comprende programmi.
MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni Reti di Calcolatori L.S. 2005/2006.
1 Sommario degli argomenti  Sistemi operativi: DOS, Unix/Linux,Windows  Word processors: Word  Fogli elettronici: Excel  Reti: TCP/IP, Internet, ftp,
Supporto per la replicazione attiva di servizi Progetto per il corso di Reti di Calcolatori LS Montanari Mirko Matr:
Sistema operativo Il Sistema Operativo gestisce le risorse hw e sw del sistema di elaborazione Facilita l'interazione tra utente e sistema Esistono diversi.
1 Migrazione dei processi: Mosix. 2 Cosa è Mosix/OpenMOSIX ? OpenMOSIX è un è una patch del kernel di Linux che aggiunge funzionalit à avanzate di clustering.
1 Alcuni esempi di dispositivi Disco rigido, RAID, video.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
SnippetSearch Database di snippet bilanciato e replicato di Gianluigi Salvi Reti di calcolatori LS – Prof. A.Corradi.
Informatica Lezione 6 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
I Sistemi Operativi. Definizione Per Sistemi Operativi (di seguito SO) si intendono quei pacchetti software, a loro volta costituiti da più sottoprogrammi.
Le basi di dati.
CNAF 6 Novembre Layout del testbed  wn a OS SL5.0 8 GB RAM kernel xen_3.1.0 SMP  wn a OS SL5.0 8 GB RAM kernel.
Implementazioni di un analizzatore di protocollo Esistono quattro fondamentali tradeoff per la realizzazione di un analizzatore di protocollo:  Analisi.
CCR - Frascati 29 settembre 2008 Gruppo storage CCR Status Report Alessandro Brunengo.
Alessandro Tirel - Sezione di Trieste Storage servers & TCP Tuning Proposta di studio delle problematiche connesse alla fornitura di servizi di storage.
Prof.ssa Rossella Petreschi Lezione del 17 /10/2014 del Corso di Algoritmica Lezione n°5.
Transcript della presentazione:

Introduzione Le macchine parallele commerciali utilizzano file system paralleli ma questi ultimi non si sono dimostrati adatti per i Linux cluster poichè non permettono alle applicazioni di effettuare operazioni di I/O intensivo. Per riempire tale vuoto nasce il Parallel Virtual File System (PVFS). e

Introduzione Per essere precisi bisogna fare una breve panoramica sui file system paralleli e distribuiti. Essi possono essere divisi in tre gruppi: 1.File System paralleli commerciali, come PFS,PIOFS,XFS e HFS, prevedono alte performance per applicazioni di I/0 intensivo ma sono solo disponibili su piattaforme specifiche su cui il costruttore le ha definite. (SGI, tuttavia, ha recentemente liberato XFS su Linux e CXFS per Linux cluster non ancora disponibile). 2.File System distribuiti, come NFS, AFS e GFS, non sono progettati per scritture e letture a grande larghezza di banda necessarie per le applicazioni parallele. 3.File System paralleli, come PPFS e PIOVS, sono ancora in fase di ricerca.

Obiettivi del PVFS Lobiettivo primario del PVFS, come in generale di tutti i File System Paralleli, è quello di fornire laccesso ad alta velocità ai file per le applicazioni parallele. In più permette il controllo e luso dello striping dei dati attraverso i dischi differenti.

Obiettivi del PVFS Per essere precisi : 1.Deve fornire operazioni lettura e scrittura concorrenti su una grande larghezza di banda per processi e thread multipli su file comuni. 2.Deve supportare APIs multiple: le APIs PVFS native, le APIs di I/O di UNIX/POSIX, le APIs MPI-IO. 3.Deve supportare i comuni comandi di shell (ls, cp, rm) per lavorare sui file PVFS. 4.Deve essere robusto e scalabile. 5.Deve essere facile da usare e da istallare.

Architettura del sistema PVFS Larchitettura del PVFS è client-server. I server sono multipli e sono chiamati demoni di I/O e lavorano tipicamente su nodi separati chiamati nodi di I/O. Ogni nodo di I/O ha un proprio disco attaccato.

Il Manager del PVFS Il PVFS ha un solo processo manager che è responsabile della memorizzazione e dellaccesso dei metadati dei file PVFS. I metadati descrivono le caratteristiche di un file, quali i permessi e, più importanti, la distribuzione fisica dei dati del file. In tal caso bisogna memorizzare la posizione del file su uno specifico disco e la posizione del disco nel cluster. Diverso da un file system tradizionale in cui i dati sono memorizzati su di un singolo disco. In questo caso i file sono striped in modo ordinato su un insieme di nodi per facilitare laccesso parallelo. La figura mostra un nodo in cui cè il demone manager.

Streping Proviamo a fare un esempio di streped: Il file originario è diviso in tre partizioni e ognuna di esse ha tre stripe di dimensione di bytes. Ogni partizione è memorizzata in un disco. Si osservi che non sono stati utilizzati tutti i dischi e tramite unimplementazione reale proviamo a spiegarne il motivo.

I metadati I metadati, come già detto, sono gestiti dal manager! I metedati per la distribuzione sono descritti tramite tre parametri: 1.base:il primo disco su cui è effettuato lo striped 2.Pcount :il numero di dischi su cui è effettuato lo striped 3.Ssize: dimensione dello stripe. Questi parametri insieme alla caratteristica dello streped ordinato permettono che la distribuzione dei file sia completamente specificata.

Metadata example Inode base2 pcount3 ssize65536 In corrispondenza dellesempio precedente i metadati saranno quelli riportata nella seguente tabella: Il primo disco in cui inizia la memorizzazione è il secondo ( base=2) ed effettuando un immagazzinamento sequenziale dei dischi i successivi saranno 3, 4 e 5 (pcount=3). La memorizzazione è fatta dai demoni di I/O: ognuno memorizza la sua porzione del file PVFS su un file system locale del nodo I/O.

Client & Demone di I/O I processi di applicazione interagiscono con il PVFS attraverso una libreria del client. Il processo client comunica inizialmente con il manager per verificare i permessi e aggiornare, eventualmente, i metadati. Il manager invia delle richieste al demone di I/O per far iniziare la comunicazione tra il client ed il demone di I/O: il client da questo momento invia e riceve direttamente le informazioni dal demone di I/O. Questultimo accede direttamente al disco: esegue le operazioni di lettura e scrittura sul disco. Con la spiegazione delle APIs forniremo una spiegazione più dettagliata per laccesso al file da parte del demone di I/O in corrispondenza di una richiesta de l client

Le APIs Le APIs utilizzate dal PVFS sono: le native API, le API UNIX/POSIX e le MPI-IO. Tutte le API rendono trasparente la comunicazione con i demoni di I/O e il manager. Le native API per PVFS hanno funzioni analoghe a quelle del UNIX/POSIX per le lettura e le scritture contigue. Esse includono anche le interfacce per i file partizionati che devono permettere laccesso agli stripe dei file. Il concetto del partizionamento permette, tramite una singola chiamata di sistema, di accedere agli stripe dei file. Lutente può accedere ad una singola partizione del file usando una chiamata ioctl. Sono necessari tre parametri per accedere ad una partizione: offset: indica linizio della partizione in corrispondenza del primo byte del file. Gsize: indica la dimensione di uno stripe di una partizione; Stride: indica la distanza tra due stripe consecutivi.

Parametri di una partizione Esempi di file partizionati in modo non contiguo e in modo contiguo. Per individuare tutti gli stripe di una singola partizione è necessario definire i parametri: offset, gsize e stride. Se volessimo accedere univocamente alla partizione colorata di blu dovremmo definire come offset il valore zero (inizia in corrispondenza del primo byte del file), come stride il valore 4000 e come gsize il valore In questo caso il file è diviso in tre partizioni ed ognuna di esse non è divisa in stripe. In tal caso il valore di stride è nullo.

I/O stream Quando un processo di unapplicazione (client) apre un file PVFS, il manager PVFS informa tale applicazione delle posizioni dei demoni di I/O. In questo modo i client possono comunicare direttamente con questultimi. Quando i client vogliono accedere ai dati di un file, la libreria trasmette il descrittore della regione interessata a cui i demoni devono accedere. Questi determinano quali parti del file contengono nel proprio disco in modo da effettuare i relativi trasferimenti. Le parti trasferite sono date dallintersezione degli stripe fisici memorizzati e la partizione logica dellapplicazione

I/O calls Si ricorda, innanzitutto, che le chiamate di sistema rappresentano un metodo di basso livello che permettono alle applicazioni di comunicare con il Kernel. Queste chiamate sono tipicamente fatte dalle funzioni implementate nella libreria C. Nel PVFS le chiamate di sistema prevedono un collegamento dinamico con le librerie in modo da ridurre la dimensione delleseguibile ed evitarne la ricompilazione nel caso siano definite nuove librerie con le stesse funzioni. Questo prevede di intrappolare le chiamate di sistema prima che esse inviano i dati al kernel. La figura (a) mostra il meccanismo delle system-calls prima che la nostra libreria sia caricata; la figura (b) dopo. La libreria caricata determina il tipo di file su cui bisogna effettuare la chiamata di sistema: nel caso il file è di tipo PVFS le informazioni sono inviate alla libreria di I/O del PVFS; altrimenti direttamente al Kernel. Questo metodo presenta uno svantaggio: nel caso si utilizza un exec() non è possibile usare i file PVFS aperti prima della chiamata;

Prestazioni del PVFS Uno dei motivi principali per cui è stato introdotto il PVFS è stato proprio per rendere veloci le letture e le scritture in parallelo. Vediamo cosa è successo nella realtà! Gli studi svolti nel laboratorio nazionale di Argonne hanno utilizzato una determinata configurazione: vediamo quale ed i risultati ottenuti! I cluster sono costituiti da 256 nodi ed ognuno di essi ha: 1.2 processori di Pentium III di 500 Mhz 2.Una RAM di 512 MByte 3.Un disco SCSI di 9 Gbyte 4.Una scheda di fast-Ethernet di 100 Mbit/sec 5.Una scheda Myrinet di 64 bit 6.Linux pre4 Si osservi che dei 256 nodi soltanto 60 sono stati utilizzati per gli esperimenti: alcuni come nodi di calcolo ed altri come nodi di I/O. In ogni nodo è stato possibile utilizzare un singolo processore poiché laltro è necessario per la compilazione del kernel. Si è visto che ogni nodo di calcolo ha scritto 2N Mbytes su N nodi di I/O in uso. Esempio: nel caso di 26 processi dapplicazione e con 8 nodi di I/O si è potuto verificare che ogni applicazione ha scritto 16 Mbyte avendo così un file di dimensione totale di 416 Mbytes. Secondo le prestazioni che si hanno con un singolo nodo ci si chiede: perché non utilizzare più nodi di calcolo e di I/O? La risposta è data in corrispondenza di ciò che accade per fast-Ethernet e pre Myrinet

Fast-Ethernet Le figure mostrano i risultati che si ottengono con fast-ethernet. (a) (b) La figura (a) mostra le prestazioni che si sono ottenute con le letture. Si può osservare che si ha un incremento, approssimativamente, di 11 Mbytes/sec per ogni nodo di calcolo, raggiungendo: -46 Mbytes/sec con 4 nodi di I/O; -90 Mbytes/sec con 8 nodi di I/O; -177 Mbytes/sec con 16 nodi di I/O. Per questi tre casi le prestazioni sono aumentate fino a circa 25 nodi di calcolo, dopodiché si ha avuto persino un decremento. Quindi aumentare i nodi di calcolo non è stato più necessario. In corrispondenza dei nodi di I/O si è notato che con 24 e 32 nodi di I/O si è raggiunto lo stesso picco di 222 Mbytes/sec (con 24 nodi di calcolo) ma landamento di crescita con 32 nodi di I/O è stato persino inferiore. La figura (b) mostra i risultati che si sono ottenute con le scritture. Si può osservare che si ha un incremento, approssimativamente, di 10 Mbytes/sec per ogni nodo di calcolo, raggiungendo: -42 Mbytes/sec con 4 nodi di I/O; -83 Mbytes/sec con 8 nodi di I/O; -166 Mbytes/sec con 16 nodi di I/O. Per questi tre casi le prestazioni sono aumentate fino a circa 24 nodi di calcolo, dopodiché si ha avuto persino un decremento. In corrispondenza di 24 nodi di I/O si è raggiunto il picco di 226 Mbytes/sec e con 32 nodi di I/O non si sono avute prestazioni migliori. Quindi aumentare i nodi di I/O non è stato più necessario

Myrinet Gli stessi esperimenti si sono ripetuti sulla rete Myrinet e si è notato che si sono avuti dei miglioramenti rispetto a fast-Ethernet ma ci sono ancora delle limitazioni. Con un esempio proviamo a verificare quali! La figura mostra le prestazioni che si sono ottenute con le letture. Si può osservare che si ha un incremento, approssimativamente, di 31 Mbytes/sec per ogni nodo di calcolo, raggiungendo: -138 Mbytes/sec con 4 nodi di I/O; -255 Mbytes/sec con 8 nodi di I/O; -450 Mbytes/sec con 16 nodi di I/O; -650 Mbytes/sec con 24 nodi di I/O; -687 Mbytes/sec con 32 nodi di I/O. Anche in questo caso si può verificare che non si ottengono delle prestazioni migliori aumentando il numero di nodi di calcolo. Inoltre secondo il grafico si ha che si hanno delle prestazioni sempre migliori aumentando il numero di nodi di I/O, ma pure se non è riportato graficamente si è dimostrato che si hanno le stesse prestazioni sia con 28 nodi di I/O e sia con 32 nodi di I/O. Questi esempi dimostrano che le prestazioni non sono direttamente proporzionali al numero di nodi di calcolo e di I/O utilizzati; o per meglio dire si hanno dei miglioramenti fino ad un limite massimo di numero di nodi di I/O e di calcolo.

…Nel futuro Cosa ci si aspetta nel futuro: 1.Il PVFS porti un file system parallelo ad alte prestazioni su i cluster Linux 2.Il PVFS non debba usare necessariamente il protocollo TCP 3.Il PVFS supporti algoritmi migliori per lesecuzione dei demoni di I/O al fine di rendere più efficienti le operazioni di I/O e la condivisione di risorse di rete. 4.Il PVFS abbia uninterfaccia migliori per laccesso ai file memorizzati in modo non contiguo. Seminario realizzato da Cuciniello Salvatore 566/1018