Università degli Studi di Napoli “Parthenope” Facoltà di Scienze e Tecnologie Corso di Laurea in Informatica Uno Strumento per la Creazione e Gestione di Cluster HPC per Applicazioni alle Scienze Computazionali Relatore Prof. Raffaele Montella Studente Nicola Guida matr. LI/161
Perché il Calcolo Parallelo Quantificare la potenza di un calcolatore equivale a valutare la rapidità con cui è capace di produrre un risultato. Come posso risolvere un problema più rapidamente? Migliorando l’algoritmo Incrementando la velocità dell’unità di calcolo Suddividere il problema in sottoproblemi più semplici da risolvere ed elaborarli simultaneamente ! 24/09/2019 Uno Strumento per la Creazione e Gestione di Cluster HPC per Applicazioni alle Scienze Computazionali
CLUSTER Tipi di Parallelismo Temporale Spaziale Asincrono MISD SIMD Multiple Istruction Single Data SIMD Singe Istruction Multipe Data MIMD Multiple Istruction Multiple Data Realizzazione hardware Realizzazione software CLUSTER 24/09/2019 Uno Strumento per la Creazione e Gestione di Cluster HPC per Applicazioni alle Scienze Computazionali
I Cluster Macchine singole di larga diffusione Reti di interconnessione veloci Sistemi operativi e software open source PRO Basso costo di realizzazione e manutenzione Altamente configurabili Facilmente scalabili CONTRO Tempi di realizzazione molto lunghi Personale altamente specializzato per la loro realizzazione 24/09/2019 Uno Strumento per la Creazione e Gestione di Cluster HPC per Applicazioni alle Scienze Computazionali
(Kickstart Light Cluster Configurator ) Obiettivi e caratteristiche KLCC (Kickstart Light Cluster Configurator ) Rapidità nell’installazione di un cluster Semplicità nelle configurazioni Compatibilità con distribuzioni linux differenti Creazione di diverse tipologie di cluster Estendibilità a nuovi strumenti 24/09/2019 Uno Strumento per la Creazione e Gestione di Cluster HPC per Applicazioni alle Scienze Computazionali
Tecniche di Installazione Primo Obiettivo: Ridurre i tempi di installazione e configurazione. Soluzione 1 Installazione manuale di ogni nodo Soluzione 2 Installazione manuale di un solo nodo e clonazione dei dischi per tutti gli altri Soluzione 3 Installazione contemporanea e automatizzata di tutti i nodi 24/09/2019 Uno Strumento per la Creazione e Gestione di Cluster HPC per Applicazioni alle Scienze Computazionali
Installazione Automatizzata Prerequisiti: Nodi con abilitazione al PXE (Pre Execution Enviroment) Distribuzione linux con meccanismo di autoinstallazione Kickstart per distribuzioni RedHat FAI per distribuzioni Debian AutoYast per distribuzioni Suse Macchina di servizio DHCP TFTP NFS APACHE WEB SERVER 24/09/2019 Uno Strumento per la Creazione e Gestione di Cluster HPC per Applicazioni alle Scienze Computazionali
Creazione dei Files di Configurazione Interfaccia grafica Poche informazioni sul cluster Personalizzazione del sistema Personalizzazione del software Secondo Obiettivo: Rendere semplice la creazione di un cluster. 24/09/2019 Uno Strumento per la Creazione e Gestione di Cluster HPC per Applicazioni alle Scienze Computazionali
Distribuzioni Linux Differenti Terzo Obiettivo: Compatibilità con tutte le distribuzioni linux che forniscono un meccanismo di auto-installazione. File di configurazione in formato XML Classi e package JAVA condivisibili Caricamento dinamico delle classi 24/09/2019 Uno Strumento per la Creazione e Gestione di Cluster HPC per Applicazioni alle Scienze Computazionali
Creazione di cluster con differenti... Tipologie di Cluster Differenti Quarto obiettivo: Creazione di cluster con differenti... Nodi di Servizio (login + storage) Virtualizzazione e Cluster Virtuali Laboratori di Calcolo Aule Didattiche Sistema di visualizzazione (Videowall) profili HPC HTC HAC Grid Computing Cloud Computing specializzazioni 24/09/2019 Uno Strumento per la Creazione e Gestione di Cluster HPC per Applicazioni alle Scienze Computazionali
Cluster con Virtualizzazione Cluster Reali Processori Multicore Software per la virtualizzazione CLUSTER VIRTUALI 24/09/2019 Uno Strumento per la Creazione e Gestione di Cluster HPC per Applicazioni alle Scienze Computazionali
Confronto con OSCAR e ROCKS #1 PORTABILITA’ ROCKS OSCAR KLCC E’ una distribuzione linux basata su CentOs e non prevede quindi l’utilizzo di distribuzioni differenti E’ un insieme di software e strumenti che gestiscono l’installazione e la configurazione del sistema attraverso pacchetti srpm. E’ compatibile con: Red Hat, ScientificLinux, Fedora, CentOS e Mandriva. Basa il suo funzionamento sul file di autoconfigurazione dell’installazione. Tale caratteristica ne permette l’utilizzo con tutte le distribuzioni linux che forniscono simili meccanismi (Red Hat, Scientific Linux, Fedora, Mandriva, Gentoo, CentOs, Debian,…). 24/09/2019 Uno Strumento per la Creazione e Gestione di Cluster HPC per Applicazioni alle Scienze Computazionali
PERSONALIZZAZIONE DEL CLUSTER PERSONALIZZAZIONE DEL SOFTWARE Confronto con OSCAR e ROCKS #2 PERSONALIZZAZIONE DEL CLUSTER ROCKS OSCAR KLCC L’interfaccia grafica consente di specificare il nome del frontEnd e la subnet del cluster. E’ possibile specificare, attraverso la configurazione del servizio dhcp, l’hostname e l’indirizzo ip dei nodi. consente di personalizzare tutte le possibili caratteristiche del cluster. PERSONALIZZAZIONE DEL SOFTWARE ROCKS OSCAR KLCC Tutti i software sono precompilati. Consente di selezionare la tipologia di cluster da installare, ma non i singoli software. precompilati. Consente di selezionare i software da installare, ma non ne consente la configurazione. I software sono compilati in fase di installazione e questa caratteristica ne consente la totale personalizzazione. 24/09/2019 Uno Strumento per la Creazione e Gestione di Cluster HPC per Applicazioni alle Scienze Computazionali
Confronto con OSCAR e ROCKS #3 ESTENDIBILITA’ ROCKS OSCAR KLCC Essendo una Distribuzione linux completa, l’estensione a nuovi strumenti necessita di una nuova release. I software installabili sono messi a disposizione dal team del progetto. Gli utenti possono comunque creare pacchetti srpm personali. L’aggiunta di nuovi strumenti di configurazione e l’installazione di nuovi software può essere effettuata attraverso la creazione di una classe java. Per strumenti più semplici, è possibile utilizzare uno script per l’autogenerazione della classe attraverso un file xml. Ogni nuovo strumento può essere facilmente condiviso e riutilizzato dalla community di sviluppatori. 24/09/2019 Uno Strumento per la Creazione e Gestione di Cluster HPC per Applicazioni alle Scienze Computazionali
Esempio Applicativo #2 Cluster di calcolo: Bluejeans 36 nodi di calcolo 3 nodi login HPC HTC Grid Computing 24/09/2019 Uno Strumento per la Creazione e Gestione di Cluster HPC per Applicazioni alle Scienze Computazionali
Conclusioni La semplicità con cui lo strumento ideato consente di creare e gestire in modo intuitivo e veloce sistemi di calcolo ad alte prestazioni, utilizzando esclusivamente hardware a basso costo e software open source, permette di divulgare una tecnologia, ormai consolidata ed efficiente come il clustering, ad un gruppo di utenza che non ne avrebbe altrimenti la possibilità (se non dopo aver effettuato un percorso di formazione specifico). Aziende, istituti di ricerca e università possono dotarsi rapidamente di tali sistemi, senza la necessità di investire in personale altamente specializzato o in consulenze esterne. I linguaggi di programmazione e gli strumenti utilizzati hanno consentito di realizzare uno strumento altamente e facilmente estendibile, rendendolo particolarmente adatto ai miglioramenti offerti dalla crescente comunità dell’Open Source. 24/09/2019 Uno Strumento per la Creazione e Gestione di Cluster HPC per Applicazioni alle Scienze Computazionali
Esempio Applicativo #1 Cluster di laboratorio: DSA - LabMNCP 16 nodi completi HPC Mpich v1 Mpich v2 Torque HTC Condor Grid Computing Globus Toolkit 4 Ganglia Virtual Machine con Windows XP pro 24/09/2019 Uno Strumento per la Creazione e Gestione di Cluster HPC per Applicazioni alle Scienze Computazionali
Grazie per la cortese attenzione. Fine Grazie per la cortese attenzione. Nicola Guida 24/09/2019 Uno Strumento per la Creazione e Gestione di Cluster HPC per Applicazioni alle Scienze Computazionali