Condividi tramite


Informazioni sui processi di elaborazione parallela

I tipi più comuni di processi di elaborazione parallela che è possibile eseguire in un cluster HPC Pack sono: processi MPI, processi di sweep parametrici, processi del flusso di attività , processi SOA (Service Oriented Architecture)e calcolo di Microsoft Excel offload di processi. HPC Pack fornisce proprietà, strumenti e API di processo e attività che consentono di definire e inviare vari tipi di processi di elaborazione paralleli.

In questo argomento:

Processo MPI

MS-MPI, un'implementazione Microsoft di Message Passing Interface (MPI) sviluppata per Windows, consente alle applicazioni MPI di eseguire come attività in un cluster HPC.

Un'attività MPI è intrinsecamente parallela. Un'attività parallela può assumere diverse forme, a seconda dell'applicazione e del software che lo supporta. Per un'applicazione MPI, un'attività parallela è in genere costituita da un singolo eseguibile in esecuzione simultaneamente su più core, con la comunicazione tra i processi.

Il diagramma seguente illustra un'attività parallela:

Tre processi, di comunicazione bidirezionale

Per un'attività che esegue un'applicazione MPI, il comando task deve essere preceduto da mpiexec: pertanto, i comandi per le attività parallele devono essere nel formato seguente: mpiexec [mpi_options] <myapp.exe> [arguments], dove myapp.exe è il nome dell'applicazione da eseguire. Il comando mpiexec accetta diversi argomenti che consentono di controllare il posizionamento del processo MPI, l'affinità di rete e altri parametri di runtime. Per altri dettagli su questi parametri, vedere le informazioni di riferimento sulla riga di comando di Microsoft HPC Pack .

Nota

Per le attività parallele, Windows HPC Server 2008 include un pacchetto MPI basato sullo standard MPICH2 di Argonne National Laboratory. L'implementazione di MPI di Microsoft, denominata MS-MPI, include l'utilità di avvio mpiexec, un servizio MPI per ogni nodo e un Software Development Kit (SDK) per lo sviluppo di applicazioni utente. Windows HPC Server 2008 supporta anche le applicazioni che forniscono meccanismi di elaborazione paralleli.

Per altre informazioni sull'SDK, vedere Microsoft HPC Pack.

Per informazioni su come creare un processo a singola attività o MPI, vedere Definire un'attività Di base o MPI - Job Manager.

Processo di sweep parametrico

Un processo di sweep parametrico è costituito da più istanze della stessa applicazione, in genere un'applicazione seriale, in esecuzione simultaneamente e con l'input fornito da un file di input e un output indirizzato a un file di output. L'input e l'output sono in genere un set di file indicizzati (ad esempio input1, input2, input3,output1, output2, output3...) configurati per risiedere in una singola cartella comune o in cartelle comuni separate. Non esiste alcuna comunicazione o interdipendenza tra le attività. Le attività possono o non essere eseguite in parallelo, a seconda delle risorse disponibili in un cluster quando il processo è in esecuzione.

Il diagramma seguente illustra un processo di sweep parametrico:

Quattro attività seriali, file di input e output separati

Per informazioni su come creare un processo di sweep parametrico, vedere Define a Parametric Sweep Task - Job Manager.

Processo del flusso di attività

In un processo del flusso di attività, un set di attività a differenza delle attività viene eseguito in un ordine prestabilito, in genere perché un'attività dipende dal risultato di un'altra attività. Un processo può contenere molte attività, alcune delle quali parametriche, alcune seriali e alcune parallele. Ad esempio, è possibile creare un processo del flusso di attività costituito da attività MPI e attività parametriche. È possibile stabilire l'ordine in cui le attività vengono eseguite definendo le dipendenze tra le attività.

Il diagramma seguente illustra un processo del flusso di attività:

processo del flusso di attività, attività dipendenti

L'attività 1 viene eseguita per prima. Si noti che solo le attività 2 e 3 possono essere eseguite in parallelo, perché nessuna delle due è dipendente dall'altra. L'attività 4 viene eseguita dopo il completamento delle attività 2 e 3.

Per informazioni su come creare un processo del flusso di attività, vedere Definire le dipendenze delle attività - Gestione processi.

Processo SOA

L'architettura orientata ai servizi (SOA) è un approccio alla creazione di sistemi distribuiti e ad accoppiamento libero. In un sistema SOA, le funzioni di calcolo distinte vengono incluse come moduli software denominati servizi . I servizi possono essere distribuiti in una rete e accessibili da altre applicazioni. Ad esempio, se le applicazioni eseguono calcoli paralleli ripetuti, i calcoli principali possono essere inseriti come servizi e distribuiti in un cluster. Ciò consente agli sviluppatori di risolvere problemi imbarazzanti paralleli senza riscrivere il codice di basso livello e aumentare rapidamente le istanze delle applicazioni. Le applicazioni possono essere eseguite più velocemente distribuendo calcoli di base tra più host di servizio (nodi di calcolo). Gli utenti finali eseguono l'applicazione nei computer e nei nodi del cluster eseguono calcoli.

Un'applicazione client fornisce un'interfaccia per l'utente finale per accedere alle funzionalità di uno o più servizi. Gli sviluppatori possono creare applicazioni client SOA cluster per fornire l'accesso ai servizi distribuiti in un cluster HPC Windows. Nel back-end, l'applicazione client invia un processo che contiene un'attività di Servizio al cluster, avvia una sessione con il nodo broker e invia richieste di servizio e riceve risposte (risultati di calcolo). L'utilità di pianificazione del processo nel nodo head alloca le risorse al processo del servizio in base ai criteri di pianificazione dei processi. Un'istanza dell'attività servizio viene eseguita in ogni risorsa allocata e carica il servizio SOA. L'utilità di pianificazione del processo tenta di modificare l'allocazione delle risorse in base al numero di richieste di servizio.

Nota

Se il client ha creato una sessione durevole, il broker archivia tutti i messaggi usando MSMQ. Le risposte archiviate dal broker possono essere recuperate dal client in qualsiasi momento, anche dopo la disconnessione intenzionale o involontaria.

Il diagramma seguente illustra come viene eseguito un processo SOA nel cluster:

Come viene eseguito un processo SOA in un cluster HPC 2008 R2

Per altre informazioni sulla creazione di client SOA per un cluster HPC, vedere APPLICAZIONI SOA e Microsoft HPC Pack.

Nota

I servizi HPC per Excel usano l'infrastruttura SOA per semplificare l'offload dei calcoli di Microsoft Excel in un cluster.

Offload di calcolo di Microsoft Excel

HPC Services per Excel, incluso in alcune versioni di HPC Pack, supporta una serie di modelli per l'offload dei calcoli di Excel in un cluster HPC Pack. Le cartelle di lavoro adatte per l'accelerazione del cluster includono calcoli indipendenti che possono essere eseguiti in parallelo. Molte cartelle di lavoro complesse e a esecuzione prolungata vengono eseguite in modo iterativo, ovvero eseguono un singolo calcolo molte volte in set diversi di dati di input. Queste cartelle di lavoro possono contenere funzioni complesse di Microsoft Visual Basic, Applications Edition (VBA) o componenti aggiuntivi XLL a elevato utilizzo di calcolo. HPC Services per Excel supporta l'offload delle cartelle di lavoro nel cluster o l'offload delle funzioni definite dall'utente nel cluster.

Microsoft Excel 2010 estende il modello UDF al cluster abilitando le funzioni definite dall'utente di Excel 2010 per l'esecuzione in un cluster WINDOWS HPC. Quando è disponibile un cluster supportato, gli utenti possono indicare a Excel 2010 di usare tale cluster selezionando un connettore cluster e specificando il nome del cluster nelle opzioni avanzate della finestra di dialogo Opzioni di Excel . Nel cluster le funzioni definite dall'utente funzionano in modo analogo alle funzioni definite dall'utente tradizionali, ad eccezione del fatto che il calcolo viene eseguito da uno o più server. Il vantaggio principale è la parallelizzazione. Se una cartella di lavoro contiene chiamate a funzioni definite dall'utente a esecuzione prolungata, è possibile usare più server per valutare le funzioni contemporaneamente. Per l'esecuzione nel cluster, le funzioni definite dall'utente devono essere contenute in un file XLL indipendente dal cluster.

Per altre informazioni, vedere HPC Services per Excel.

Riferimenti aggiuntivi

Per informazioni sulle proprietà di processo e attività che è possibile usare per definire i processi di elaborazione parallela, vedere:

Per informazioni sulla creazione, l'invio e il monitoraggio dei processi tramite HPC Job Manager, vedere:

Per informazioni sulla creazione, l'invio e il monitoraggio dei processi tramite una finestra del prompt dei comandi o HPC PowerShell e per le risorse per sviluppatori, incluse le informazioni sull'uso dell'SDK, il modello di programmazione SOA e l'offload di calcolo di Excel, vedere altri articoli in questo set di documentazione.