Soluzioni HPC (High Performance Computing)

Un'introduzione a Windows Compute Cluster Server

John Kelbley and Doug Lindsey

 

Panoramica:

  • Utilizzo dei cluster per risolvere problemi complessi
  • Requisiti generali per i cluster di calcolo
  • Impostazione di un cluster di calcolo basato su Windows
  • Esecuzione di comandi in modalità remota

Per HPC (High Performance Computing) si intende una branca particolare dell'informatica applicata che si occupa, per la maggior parte, della risoluzione di problemi che prevedono notevoli carichi di lavoro per l'elaborazione. Alcuni anni fa, l'HPC (all'epoca definito più in generale "supercomputing") era dominato da

grandi sistemi specializzati (e costosi) utilizzati soprattutto nei centri di ricerca. Con l'aumento della potenza di calcolo dei sistemi più piccoli, tuttavia, il rapporto costo/prestazioni è cambiato e i carichi di lavoro di elaborazione si sono spostati verso i sistemi di classe PC.

Molti problemi che prevedono grandi carichi di lavoro possono essere risolti eseguendo i calcoli in parallelo; vale a dire, un determinato calcolo o processo potrebbe non dipendere dall'output di un altro. In casi come questo, per la risoluzione di problemi complessi si possono sfruttare più sistemi di piccole dimensioni (nodi) raggruppati in cluster di calcolo. Ecco alcuni esempi dei tipi di applicazione che si avvantaggiano dell'impiego di cluster di calcolo:

  • Modelli finanziari: un algoritmo o una formula viene eseguita per migliaia di volte, con input diversi a ogni esecuzione.
  • Ingegneria: simulazione degli effetti nelle singole parti, applicando delle texture ai modelli.
  • Animazione computerizzata: vengono applicati texture di materiali e illuminazioni a ogni fotogramma di un film.

I cluster di calcolo rappresentano un modo economico per risolvere problemi complessi in tempi ridotti. Come verrà illustrato dall'articolo, Microsoft fornisce le funzionalità chiave per i cluster di calcolo e il supporto completo con Windows® Cluster Server 2003.

È importante comprendere che un cluster di calcolo è diverso da un cluster di disponibilità (o di failover). I cluster di disponibilità sono già molto noti e diffusi in ambiti quali Exchange, SQL Server® o altre applicazioni in Windows Server® 2003. In genere sfruttano l'archiviazione condivisa per massimizzare i tempi di attività delle applicazioni. Lo scopo dei cluster di calcolo non è eseguire il lavoro di un altro sistema in caso di guasti, ma consentire a tutti i nodi di operare in modo coordinato.

Requisiti generali per i cluster di calcolo

Risorse per l'HPC

I sistemi HPC moderni condividono alcuni elementi chiave che facilitano l'elaborazione dei carichi di lavoro. Prima di tutto, è necessario più di un sistema. È inoltre necessaria un'utilità di pianificazione per coordinare le attività tra i nodi. L'utilità di pianificazione viene eseguita sul nodo principale e individua le risorse disponibili, assegnando e distribuendo le attività e registrando lo stato globale delle attività. È il coordinatore delle risorse all'interno del cluster di sistemi, oltre che il punto in cui utenti e amministratori inseriscono le attività da eseguire.

I cluster utilizzano un mezzo di comunicazione fra i nodi. In base al tipo di attività, ai nodi possono essere necessarie interconnessioni ad alta velocità e bassa latenza per il passaggio dei messaggi tra un nodo e l'altro e il coordinamento dell'elaborazione. Come minimo, ciascun nodo di calcolo e il nodo principale devono essere connessi a una rete comune.

Naturalmente, quando si utilizza un grande numero di sistemi interconnessi che collaborano alla risoluzione di problemi complessi, è necessario prestare molta attenzione e utilizzare strumenti specifici. Per ottenere un ambiente uniforme e stabile, è necessario utilizzare processi e strumenti per il provisioning, il controllo, la gestione e la manutenzione di centinaia o migliaia di sistemi.

Infine, devono essere disponibili applicazioni in grado di sfruttare le funzionalità di elaborazione parallela di un cluster di calcolo. Senza applicazioni in grado di suddividere le attività in modo che possano essere elaborate su più computer o strumenti di sviluppo che prevedano il supporto del "debug parallelo", un cluster non può fare molto più che riscaldare il centro di calcolo.

Clustering basato su Windows Server

Nel 2006 Microsoft ha presentato Windows Server 2003 Compute Cluster Edition (CCE) e Windows Compute Cluster Server 2003 (WCCS) per soddisfare le esigenze di una vasta gamma di applicazioni HPC. CCE e WCCS sono entrambi basati sul ben noto e diffuso Windows Server 2003. CCE è una versione di Windows Server 2003 concesso in licenza con le applicazioni HPC. WCCS è identico a CCE, con l'aggiunta del Microsoft® Compute Cluster Pack (CCP). Ne consegue che è possibile distribuire, gestire e monitorare un cluster basato su Windows Server utilizzando gli stessi strumenti che si utilizzano per gestire i sistemi Windows Server 2003 esistenti.

Un punto importante è che CCE e WCCS sono esclusivamente x64 e non esistono versioni a 32 bit (x86) di questi prodotti. I requisiti hardware per CCE con WCCS sono identici a quelli per Windows Server 2003 Standard x64 Edition. Oltre al supporto per l'hardware ad alte prestazioni (architettura a 64 bit), i prodotti prevedono il supporto per Remote Direct Memory Access (RDMA) per le connessioni ad alte prestazioni (Gigabit Ethernet, InfiniBand, Myrinet e altre).

Compute Cluster Pack

Come suggerito in precedenza, i cluster di calcolo devono soddisfare dei requisiti di base, obiettivo raggiungibile con l'installazione del Compute Cluster Pack. CCP è un pacchetto di installazione autonomo che contiene:

  • Utilità di pianificazione integrata
  • Supporto di MPI (Messaging Passing Interface) per lo standard MPICH2 del settore
  • Strumenti di gestione delle risorse del cluster e degli utenti

CCP è ciò che differenzia CCE da WCCS. È lecito chiedersi perché, se sono necessari per i cluster di calcolo, questi componenti sono disponibili solo in WCCS e non in CCE. La risposta è che alcune soluzioni HPC utilizzano utilità di pianificazione diverse o MPI specializzati (oppure non richiedono il supporto di MPI) ed è sufficiente una grande piattaforma su cui eseguirle, in particolare Windows Server 2003. Poiché è un pacchetto autonomo, è possibile installare CCP su altre versioni x64 di Windows Server 2003 (CCE, Standard, Standard R2, Enterprise ed Enterprise R2).

Aspetti pratici

WCCS sfrutta i principi di base di Windows per semplificare la gestione e il funzionamento dei cluster basati su Windows, compresi Active Directory® e Servizi di installazione remota (RIS). Compute Cluster Server utilizza Active Directory per gestire la protezione in modo trasparente. Con Active Directory, un utente può inviare al nodo principale un'attività da eseguire su centinaia di nodi server utilizzando un'unica serie di credenziali. Quando vengono eseguite su uno o più nodi, le attività vengono eseguite nel contesto delle credenziali utente fornite al momento della presentazione dell'attività e, quindi, memorizzate in modo protetto nella cache. In WCCS si utilizza Active Directory per fornire questa funzionalità di "punto di accesso unico". Un ulteriore vantaggio della presenza di Active Directory nell'ambiente consiste nella possibilità di amministrare criteri di server e configurazione in modo centralizzato, mediante i Criteri di gruppo.

Se nell'organizzazione IT Active Directory è già stato distribuito, sarà possibile risparmiare quantità significative di tempo e lavoro di amministrazione durante la creazione del cluster nel dominio esistente. Questo è lo scenario consigliato.

Quando è necessario distribuire un cluster di calcolo in un ambiente in cui Active Directory non esiste, è invece consigliabile distribuire uno o più controller di dominio dedicati che ospitino Active Directory per il cluster. Non è insolito impostare come nodo principale un controller di dominio Active Directory, poiché tutti i nodi dispongono già della connettività di rete al sistema, indipendentemente dalla topologia della rete. Tuttavia, adottare come nodo principale un controller di dominio non è una procedura consigliata per i cluster di maggiori dimensioni, a causa del maggior carico sul nodo principale. In questi casi è opportuno seguire le procedure comuni per la distribuzione e la gestione di Active Directory (installazione di controller di dominio ridondanti, backup adeguati, procedure consigliate per la protezione e così via).

Servizi di installazione remota

WCCS offre un front-end integrato per la piattaforma di distribuzione delle immagini Servizi di installazione remota (RIS). RIS viene utilizzato per distribuire le immagini del sistema operativo dal nodo principale a ciascuno dei nodi di calcolo. È quindi possibile utilizzare il RIS per installare rapidamente i nuovi nodi cluster. Non è necessario eseguire le installazioni in questo modo, poiché RIS è stato integrato in WCCS come servizio aggiuntivo. Si possono utilizzare anche altre tecnologie di distribuzione comuni di Windows Server, come Automated Deployment Services (ADS) di Windows Server 2003 o un'installazione manuale di Windows Server 2003.

Se si preferisce utilizzare RIS, prima di installare CCP sul nodo principale, accertarsi che siano stati definiti almeno due dischi logici. Per la memorizzazione delle immagini server in RIS è necessario un disco che sia separato dal sistema operativo. La quantità di spazio libero su disco per la partizione RIS deve essere sufficiente a contenere una o più copie complete di un'immagine di Windows Server.

L'hardware per server più recente, in particolare i dispositivi di connessione in rete e archiviazione, potrebbero richiedere driver Plug and Play non presenti nelle immagini predefinite di Windows Server 2003. In questo caso sarà necessario aggiungere i driver all'immagine manualmente. La procedura per questa operazione è documentata in linea all'indirizzo support.microsoft.com/kb/254078.

Installazione del cluster

Il primo passaggio consiste nel configurare il cervello del cluster, ovvero il nodo principale. Iniziare installando una delle versioni x64 di Windows Server 2003 citate in precedenza. Durante l'installazione del sistema operativo, decidere se aggiungere o meno il server a un dominio esistente (scelta consigliata) oppure installare Active Directory sul server (non consigliato per i cluster di grandi dimensioni).

Al termine dell'installazione del sistema operativo, scaricare e installare anche tutti gli aggiornamenti disponibili su Microsoft Update. Se si intende utilizzare RIS per le immagini dei nodi di calcolo, è necessario utilizzare lo strumento di amministrazione Gestione computer | Gestione disco per verificare che siano stati definiti almeno due dischi logici. Per motivi di spazio, nell'articolo non viene illustrata l'installazione basata su RIS.

Dopo l'accesso e l'aggiornamento del server, eseguire il programma di installazione di CCP. Durante l'installazione di CCP si esegue il download e l'installazione dei file e degli aggiornamenti seguenti:

Il programma di installazione di CCP esegue tutte le operazioni di valutazione dello stato di preparazione del sistema per l'installazione. Consente di individuare i componenti necessari e installati come parte del processo e di procedere all'installazione, come illustrato nella Figura 1.

Figura 1 Componenti necessari per l'installazione di CCP

Figura 1** Componenti necessari per l'installazione di CCP **(Fare clic sull'immagine per ingrandirla)

Elenco delle attività

Al termine dell'installazione di CCP, viene avviata la console di amministrazione con l'elenco delle attività visualizzato. Come illustrato nella Figura 2, nell'elenco delle attività sono disponibili alcuni riquadri, ciascuno relativo a un'area diversa e con le attività principali necessarie per completare la configurazione del cluster.

Figura 2 Elenco delle attività necessarie per la configurazione del cluster

Figura 2** Elenco delle attività necessarie per la configurazione del cluster **(Fare clic sull'immagine per ingrandirla)

L'elenco consente di implementare facilmente l'architettura del cluster progettata, comprese la scelta e la configurazione della topologia di rete, del processo di installazione dei nodi e il modello di gestione degli utenti. Le attività di ciascuno dei riquadri sono elencate sulla destra e per ogni attività viene avviata una procedura guidata. Eseguire tutte le attività in sequenza per ottenere un nodo principale completamente configurato, pronto per la distribuzione di immagini RIS a una serie definita di nodi di calcolo che un numero specificato di utenti possono utilizzare e amministrare.

Topologia della rete WCCS supporta le cinque topologie di rete più comuni utilizzate per l'HPC. Come minimo, tutti i nodi di calcolo e il nodo principale devono condividere una rete comune. Le topologie prevedono il supporto per più tipi di interconnessioni tra i nodi e presentano vantaggi e svantaggi diversi.

La topologia di rete dipenderà da prestazioni, protezione e requisiti di distribuzione per il cluster. È possibile, ad esempio, che l'applicazione richieda una connessione ad alta velocità per passare i messaggi che non si desidera esporre alla rete aziendale. Oppure si intende approfittare delle funzionalità di distribuzione integrate e automatiche basate su RIS. O ancora, l'hardware scelto consente di ospitare un solo NIC o, magari, si desidera eseguire sul nodo principale Condivisione connessione Internet (ICS) per gestire la risoluzione dei nomi e i nodi di calcolo. Durante la procedura guidata "Configure Cluster Network Topology" richiamabile dall'elenco delle attività vengono presentate le cinque topologie supportate in genere dalle implementazioni HPC più comuni, oltre a consigli sulla configurazione delle connessioni di rete, compreso le configurazioni di Windows Firewall sul nodo principale e sui nodi di calcolo. Nella Figura 3 viene illustrata una delle topologie di rete supportate.

Figura 3 Una delle topologie di rete supportate da WCCS

Figura 3** Una delle topologie di rete supportate da WCCS **(Fare clic sull'immagine per ingrandirla)

Servizi di installazione remota Come affermato in precedenza, RIS consente di distribuire in modo automatico i nodi cluster.

Gestione dei nodi È possibile specificare i nomi dei computer dei server che assumeranno la funzione di nodi di calcolo nel cluster. Quando si esegue CCP su un nodo, si specifica il nodo principale del cluster a cui deve essere associato il nodo.

Gestione degli utenti Si possono specificare gli account utente o i gruppi di Active Directory designati come amministratori del sistema e come utenti del cluster.

Installazione del nodo

La distribuzione dei nodi di calcolo può essere completata automaticamente tramite l'utilità di amministrazione RIS o con altri metodi di distribuzione supportati. Come accade con il nodo principale, CCP deve essere installato su tutti i nodi di calcolo. Come illustrato dalla Figura 4, le opzioni di configurazione di CCP sono molto più semplici per un nodo di calcolo e sono le seguenti:

Figura 4 Compute Cluster Pack

Figura 4** Compute Cluster Pack **(Fare clic sull'immagine per ingrandirla)

  • Definizione del server come un nodo di calcolo (e non un nodo principale).
  • Indicazione del nome del nodo principale del cluster a cui deve essere associato il server.
  • Scelta se installare o meno gli strumenti di amministrazione dei nodi e degli utenti sul nodo di calcolo.

Console di amministrazione

Quando i nodi sono in comunicazione col il nodo principale, diventa possibile eseguire la maggior parte delle attività di gestione e amministrazione per tutti i sistemi mediante la console di amministrazione, illustrata nella Figura 5. La console costituisce un punto di vista centralizzato sull'intero cluster, con un elenco di tutti i nodi associati, l'accesso alle operazioni di amministrazione principali e altre informazioni. Nel riquadro più a sinistra è possibile spostarsi tra le sezioni principali della console, tra cui "Cluster Administrator" che, quando evidenziato, fornisce una schermata di riepilogo con lo stato del cluster e le statistiche sulle attività. È possibile accedere a tutte le sessioni di desktop remoto e di monitoraggio del sistema anche da qui, ma la maggior parte del lavoro di amministrazione del cluster verrà eseguito in "Node Management".

Figura 5 La console di amministrazione è un punto di vista centralizzato sull'intero cluster

Figura 5** La console di amministrazione è un punto di vista centralizzato sull'intero cluster **(Fare clic sull'immagine per ingrandirla)

È utile esplorare la console di amministrazione di propria iniziativa, poiché consente di accedere agli strumenti e alle funzioni principali necessarie per amministrare in modo centralizzato Windows e i nodi del cluster. Se si fa clic su un nodo del cluster nel riquadro in alto al centro, si visualizzano dei dati in altre finestre e si possono esplorare le funzioni specifiche del nodo.

Le funzioni supportate dai menu di scelta rapida consentono di amministrare con facilità i nodi di calcolo direttamente da Node Management. È possibile utilizzare Node Management per le seguenti attività: sospensione e ripristino dei nodi; approvazione o rimozione dei nodi dal cluster; avvio dei desktop remoti, del monitoraggio del sistema o del visualizzatore eventi; espulsione del vassoio dell'unità CD (funzione particolarmente utile quando si deve identificare fisicamente un singolo computer in un grande cluster).

La funzionalità ClusRun

La funzionalità più utile in questo elenco è "Run Command", che consente di eseguire in modalità remota qualsiasi comando arbitrario, esattamente come se si utilizzasse un prompt dei comandi sul computer di destinazione. In WCCS è disponibile una versione a riga di comando della funzionalità Run Command denominata Clusrun.exe e si utilizza "ClusRun" per descrivere sia la versione della GUI che della riga di comando.

Non è necessario enfatizzare i vantaggi offerti da ClusRun, specialmente su un cluster di grandi dimensioni. Consente di risparmiare molto tempo nell'esecuzione di attività da riga di comando ripetitive e, spesso, di eliminare la necessità di scrivere script di amministrazione più complessi.

Per utilizzare questa funzionalità, evidenziare un elenco dei computer su cui si desidera eseguire un comando, quindi fare clic con il pulsante destro del mouse e scegliere Run Command. La finestra di dialogo è illustrata nella Figura 6. A questo punto è sufficiente digitare il comando desiderato, scegliere Run e attendere che l'output venga visualizzato nella finestra Result. In occasione del primo utilizzo di ClusRun vengono richieste le credenziali, ma è possibile scegliere di memorizzare le credenziali nella cache per gli utilizzi successivi.

Figura 6 È possibile eseguire un comando sui più nodi

Figura 6** È possibile eseguire un comando sui più nodi **(Fare clic sull'immagine per ingrandirla)

Un modo molto comune per applicare delle patch ai cluster o installare dei programmi che prevedano routine di installazione automatiche consiste nel collocarli in una condivisione file e utilizzare, quindi, ClusRun per forzare tutti i nodi di calcolo a richiamare il comando. Il riavvio di tutti i nodi di calcolo del cluster si può ottenere con un unico comando:

CLUSRUN SHUTDOWN –R –F –T 0 

Strumenti di Compute Cluster Pack

Nel maggio 2007 il team di HPC ha rilasciato il Compute Cluster Pack Tool Pack (disponibile all'indirizzo windowshpc.net/resources/Pages/default.aspx). Tra gli strumenti sono compresi il supporto per Windows PowerShellTM, uno strumento MPIPingPong per la diagnosi dell'integrità delle connessioni e un monitor grafico del cluster semplice ma molto utile.

Come illustrato nella Figura 7, in Simple Cluster Monitor è possibile visualizzare in una schermata ciascuno dei nodi del cluster, i core presenti in ciascun nodo, l'utilizzo di ciascuna CPU (verde chiaro), l'utilizzo della memoria (giallo), la percentuale di tempo disco (rosso) e l'utilizzo della larghezza di banda (arancio). È un ottimo strumento che gli amministratori possono eseguire per conoscere con un colpo d'occhio lo stato del cluster.

Figura 7 Monitoraggio di alcuni nodi con Simple Cluster Monitor

Figura 7** Monitoraggio di alcuni nodi con Simple Cluster Monitor **(Fare clic sull'immagine per ingrandirla)

Nel monitor dei cluster è disponibile anche una funzionalità di "remotizzazione". È necessario eseguire la prima istanza del monitor dei cluster sul nodo principale. Quando si esegue un'istanza del monitor dei cluster in una sessione della console sul nodo principale, diventa possibile avviare le istanze del monitor dei cluster da una workstation, impostarle in modo che puntino al nodo principale e ottenere la medesima visualizzazione.

Non resta che provare.

A questo punto si sono acquisite le informazioni di base su HPC e Windows Server 2003 Compute Cluster Server. Si è appreso come installare CCP, come utilizzare l'ottima console polifunzionale ed eseguire i nuovi comandi e gli strumenti grafici con cui sorprendere colleghi e utenti. Le risorse per ottenere ulteriori informazioni sulle applicazioni di calcolo ad alte prestazioni sono disponibile nell'intestazione laterale "Risorse per l'HPC".

John Kelbley è un Technical Product Manager in Microsoft per il Global Solutions Technology Team con base nel nordest degli Stati Uniti. È possibile contattare John scrivendo all'indirizzo Johnkel@microsoft.com

Doug Lindsey è un Program Manager del team di Microsoft HPC. È anche un amministratore di cluster di calcolo di produzione (compreso il n. 116 nell'elenco di novembre 2007 sul sito www.top500.org). È possibile contattare Doug scrivendo all'indirizzo Dougli@microsoft.com.

© 2008 Microsoft Corporation e CMP Media, LLC. Tutti i diritti riservati. È vietata la riproduzione completa o parziale senza autorizzazione.