Eseguire NAMD con Microsoft HPC Pack su nodi di calcolo Linux in AzureRun NAMD with Microsoft HPC Pack on Linux compute nodes in Azure

In questo articolo viene illustrato un modo per eseguire un carico di lavoro high-performance computing (HPC) Linux in macchine virtuali di Azure.This article shows you one way to run a Linux high-performance computing (HPC) workload on Azure virtual machines. Si configura un cluster Microsoft HPC Pack su Azure con nodi di calcolo Linux e si esegue una simulazione NAMD per calcolare e visualizzare la struttura di un sistema biomolecolare di grandi dimensioni.Here, you set up a Microsoft HPC Pack cluster on Azure with Linux compute nodes and run a NAMD simulation to calculate and visualize the structure of a large biomolecular system.

Nota

Azure offre due modelli di distribuzione per creare e usare le risorse: Gestione risorse e la distribuzione classica.Azure has two different deployment models for creating and working with resources: Resource Manager and classic. In questo articolo viene illustrato l'utilizzo di entrambi i modelli, ma Microsoft indica che le distribuzioni più nuove utilizzano il modello di gestione delle risorse.This article covers using both models, but Microsoft recommends that most new deployments use the Resource Manager model.

  • NAMD (ovvero programma Nanoscale Molecular Dynamics) è un pacchetto di dinamica molecolare parallela progettato per una simulazione a prestazioni elevate di grandi sistemi biomolecolari contenenti fino a milioni di atomi.NAMD (for Nanoscale Molecular Dynamics program) is a parallel molecular dynamics package designed for high-performance simulation of large biomolecular systems containing up to millions of atoms. Esempi di questi sistemi includono virus, strutture di celle e proteine di grandi dimensioni.Examples of these systems include viruses, cell structures, and large proteins. NAMD è scalabile fino a centinaia di core per simulazioni tipiche e fino a più di 500.000 core per le simulazioni più grandi.NAMD scales to hundreds of cores for typical simulations and to more than 500,000 cores for the largest simulations.
  • Microsoft HPC Pack fornisce le funzionalità necessarie per eseguire applicazioni HPC e parallele su larga scala in cluster di computer locali o macchine virtuali di Azure.Microsoft HPC Pack provides features to run large-scale HPC and parallel applications in clusters of on-premises computers or Azure virtual machines. Sviluppato originariamente come soluzione per i carichi di lavoro HPC di Windows, HPC Pack supporta ora le applicazioni HPC che eseguono Linux su macchine virtuali del nodo di calcolo Linux distribuite in un cluster HPC Pack.Originally developed as a solution for Windows HPC workloads, HPC Pack now supports running Linux HPC applications on Linux compute node VMs deployed in an HPC Pack cluster. Per una panoramica, vedere Introduzione all'uso di nodi di calcolo Linux in un cluster HPC Pack in Azure .See Get started with Linux compute nodes in an HPC Pack cluster in Azure for an introduction.

PrerequisitiPrerequisites

  • Cluster HPC Pack con nodi di calcolo Linux: distribuire un cluster HPC Pack con nodi di calcolo Linux in Azure usando un modello di Azure Resource Manager o uno script di Azure PowerShell.HPC Pack cluster with Linux compute nodes - Deploy an HPC Pack cluster with Linux compute nodes on Azure using either an Azure Resource Manager template or an Azure PowerShell script. Per i prerequisiti e i passaggi di entrambe le opzioni, vedere Introduzione all'uso di nodi di calcolo Linux in un cluster HPC Pack in Azure .See Get started with Linux compute nodes in an HPC Pack cluster in Azure for the prerequisites and steps for either option. Se si sceglie l'opzione di distribuzione mediante uno script di PowerShell, vedere il file di configurazione di esempio al termine dell'articolo.If you choose the PowerShell script deployment option, see the sample configuration file in the sample files at the end of this article. Questo file consente di configurare un cluster HPC Pack basato su Azure costituito da un nodo head di Windows Server 2012 R2 e quattro nodi di calcolo CentOS 6.6 di grandi dimensioni.This file configures an Azure-based HPC Pack cluster consisting of a Windows Server 2012 R2 head node and four size Large CentOS 6.6 compute nodes. Personalizzare questo file in base all'ambiente in uso.Customize this file as needed for your environment.
  • Software e file per le esercitazioni NAMD: scaricare il software NAMD per Linux dal sito NAMD. È richiesta la registrazione.NAMD software and tutorial files - Download NAMD software for Linux from the NAMD site (registration required). Questo articolo è basato sulla versione NAMD 2.10 e usa l'archivio Linux-x86_64 (64-bit Intel/AMD con Ethernet).This article is based on NAMD version 2.10, and uses the Linux-x86_64 (64-bit Intel/AMD with Ethernet) archive. Scaricare anche i file per le esercitazioni NAMD.Also download the NAMD tutorial files. I download includono file con estensione .tar ed è necessario uno strumento di Windows per estrarre i file nel nodo head del cluster.The downloads are .tar files, and you need a Windows tool to extract the files on the cluster head node. Per estrarre i file, seguire le istruzioni indicate più avanti in questo articolo.To extract the files, follow the instructions later in this article.
  • VMD (facoltativo) - Per visualizzare i risultati del processo NAMD, scaricare e installare il programma di visualizzazione molecolare VMD nel computer desiderato.VMD (optional) - To see the results of your NAMD job, download and install the molecular visualization program VMD on a computer of your choice. La versione corrente è 1.9.2.The current version is 1.9.2. Per iniziare, vedere il sito per il download di VMD.See the VMD download site to get started.

Configurare il trust reciproco tra i nodi di calcoloSet up mutual trust between compute nodes

L'esecuzione di un processo su più nodi Linux richiede una relazione di trust tra i nodi (tramite rsh o ssh).Running a cross-node job on multiple Linux nodes requires the nodes to trust each other (by rsh or ssh). Quando si crea il cluster HPC Pack con lo script di distribuzione IaaS di Microsoft HPC Pack, lo script configura automaticamente un trust reciproco permanente per l'account amministratore specificato.When you create the HPC Pack cluster with the Microsoft HPC Pack IaaS deployment script, the script automatically sets up permanent mutual trust for the administrator account you specify. Per gli utenti non amministratori creati nel dominio del cluster è necessario configurare una relazione di trust reciproco temporanea tra i nodi in caso di allocazione di un processo.For non-administrator users you create in the cluster's domain, you have to set up temporary mutual trust among the nodes when a job is allocated to them. Quindi, eliminare la relazione dopo il completamento del processo.Then, destroy the relationship after the job is complete. Per eseguire questa operazione per ogni utente, fornire una coppia di chiavi RSA al cluster usato da HPC Pack per stabilire la relazione di trust.To do this for each user, provide an RSA key pair to the cluster which HPC Pack uses to establish the trust relationship. Di seguito sono riportate le istruzioni.Instructions follow.

Generare una coppia di chiavi RSAGenerate an RSA key pair

Per generare con facilità una coppia di chiavi RSA, che contiene una chiave pubblica e una chiave privata, eseguire il comando ssh-keygen di Linux.It's easy to generate an RSA key pair, which contains a public key and a private key, by running the Linux ssh-keygen command.

  1. Accedere a un computer Linux.Log on to a Linux computer.
  2. Eseguire il comando seguente:Run the following command:

    ssh-keygen -t rsa
    

    Nota

    Premere Invio per usare le impostazioni predefinite fino al completamento del comando.Press Enter to use the default settings until the command is completed. Non immettere una passphrase. Quando viene richiesta una password, è sufficiente premere Invio.Do not enter a passphrase here; when prompted for a password, just press Enter.

    Generare una coppia di chiavi RSA

  3. Passare alla directory ~/.ssh.Change directory to the ~/.ssh directory. La chiave privata viene archiviata in id_rsa e la chiave pubblica in id_rsa.pub.The private key is stored in id_rsa and the public key in id_rsa.pub.

    Chiavi pubbliche e private

Aggiungere la coppia di chiavi al cluster HPC PackAdd the key pair to the HPC Pack cluster

  1. Connettersi tramite Desktop remoto alla VM con nodo head usando le credenziali del dominio specificate durante la distribuzione del cluster, ad esempio hpc\clusteradmin.Connect by Remote Desktop to the head node VM using the domain credentials you provided when you deployed the cluster (for example, hpc\clusteradmin). Il cluster viene gestito dal nodo head.You manage the cluster from the head node.
  2. Usare le procedure standard di Windows Server per creare un account utente di dominio nel dominio di Active Directory del cluster.Use standard Windows Server procedures to create a domain user account in the cluster's Active Directory domain. Ad esempio, usare lo strumento Utenti e computer di Active Directory sul nodo head.For example, use the Active Directory User and Computers tool on the head node. Gli esempi in questo articolo presuppongono che venga creato un utente di dominio denominato hpclab\hpcuser nel dominio hpclab (hpclab\hpcuser).The examples in this article assume you create a domain user named hpcuser in the hpclab domain (hpclab\hpcuser).
  3. Aggiungere l'utente di dominio al cluster HPC Pack come utente del cluster.Add the domain user to the HPC Pack cluster as a cluster user. Per le istruzioni, vedere Aggiungere o rimuovere utenti del cluster.For instructions, see Add or remove cluster users.
  4. Creare un file con nome C:\cred.xml e copiarvi i dati della chiave RSA.Create a file named C:\cred.xml and copy the RSA key data into it. Un esempio è disponibile nei file di esempio alla fine dell'articolo.You can find an example in the sample files at the end of this article.

    <ExtendedData>
      <PrivateKey>Copy the contents of private key here</PrivateKey>
      <PublicKey>Copy the contents of public key here</PublicKey>
    </ExtendedData>
    
  5. Aprire un prompt dei comandi e immettere il comando seguente per impostare i dati delle credenziali per l'account hpclab\hpcuser.Open a Command Prompt and enter the following command to set the credentials data for the hpclab\hpcuser account. Usare il parametro extendeddata per passare il nome del file C:\cred.xml creato per i dati della chiave.You use the extendeddata parameter to pass the name of the C:\cred.xml file you created for the key data.

    hpccred setcreds /extendeddata:c:\cred.xml /user:hpclab\hpcuser /password:<UserPassword>
    

    Questo comando viene completato correttamente senza output.This command completes successfully without output. Dopo avere configurato le credenziali per gli account utente necessari per l'esecuzione dei progetti, archiviare il file cred.xml in un percorso sicuro oppure eliminarlo.After setting the credentials for the user accounts you need to run jobs, store the cred.xml file in a secure location, or delete it.

  6. Se la coppia di chiavi RSA è stata generata in uno dei nodi Linux, ricordare di eliminare le chiavi dopo averle usate.If you generated the RSA key pair on one of your Linux nodes, remember to delete the keys after you finish using them. HPC Pack non configura il trust reciproco se rileva un file id_rsa o id_rsa.pub esistente.HPC Pack does not set up mutual trust if it finds an existing id_rsa file or id_rsa.pub file.

Importante

Non è consigliabile eseguire un processo di Linux come amministratore del cluster in un cluster condiviso, perché un processo inviato da un amministratore viene eseguito con l'account radice nei nodi Linux.We don’t recommend running a Linux job as a cluster administrator on a shared cluster, because a job submitted by an administrator runs under the root account on the Linux nodes. Un processo inviato da un utente non amministratore viene eseguito con un account utente Linux locale, con lo stesso nome dell'utente del processo.A job submitted by a non-administrator user runs under a local Linux user account with the same name as the job user. In questo caso, HPC Pack configura la relazione di trust reciproco per questo utente Linux in tutti i nodi allocati per il processo.In this case, HPC Pack sets up mutual trust for this Linux user across all the nodes allocated to the job. È possibile configurare manualmente l'utente Linux nei nodi Linux prima di eseguire il processo. In alternativa, HPC Pack crea automaticamente l'utente quando viene inviato il processo.You can set up the Linux user manually on the Linux nodes before running the job, or HPC Pack creates the user automatically when the job is submitted. Se HPC Pack crea l'utente, HPC Pack lo eliminerà dopo il completamento del processo.If HPC Pack creates the user, HPC Pack deletes it after the job completes. Per ridurre le minacce alla sicurezza, le chiavi vengono rimosse dopo il completamento del processo sui nodi.To reduce security threat, the keys are removed after the job completes on the nodes.

Configurare una condivisione di file per i nodi LinuxSet up a file share for Linux nodes

Configurare ora una condivisione di file SMB e montare la cartella condivisa in tutti i nodi Linux per consentire ai nodi Linux di accedere ai file NAMD con un percorso comune.Now set up an SMB file share, and mount the shared folder on all Linux nodes to allow the Linux nodes to access NAMD files with a common path. Di seguito vengono descritti i passaggi per montare una cartella condivisa nel nodo head.Following are steps to mount a shared folder on the head node. Per le distribuzioni che attualmente non supportano il servizio File di Azure, come ad esempio CentOS 6.6, si consiglia di eseguire una condivisione.A share is recommended for distributions such as CentOS 6.6 that currently don’t support the Azure File service. Se i nodi Linux supportano la condivisione di file di Azure, vedere Come usare Archiviazione file di Azure con Linux.If your Linux nodes support an Azure File share, see How to use Azure File storage with Linux. Per altre opzioni di condivisione dei file con HPC Pack, vedere Introduzione ai nodi di calcolo Linux in un cluster HPC Pack in Azure.For additional file sharing options with HPC Pack, see Get started with Linux compute nodes in an HPC Pack Cluster in Azure.

  1. Creare una cartella sul nodo head e condividerla con tutti gli utenti, configurando privilegi di lettura/scrittura.Create a folder on the head node, and share it to Everyone by setting Read/Write privileges. In questo esempio \\CentOS66HN\Namd è il nome della cartella, dove CentOS66HN è il nome host del nodo head.In this example, \\CentOS66HN\Namd is the name of the folder, where CentOS66HN is the host name of the head node.
  2. Creare una sottocartella denominata namd2 nella cartella condivisa.Create a subfolder named namd2 in the shared folder. All'interno di namd2, creare un'altra sottocartella namdsample.In namd2, create another subfolder named namdsample.
  3. Estrarre i file NAMD nella cartella usando una versione Windows di tar o un'altra utilità Windows che gestisce gli archivi con estensione tar.Extract the NAMD files in the folder by using a Windows version of tar or another Windows utility that operates on .tar archives.

    • Estrarre l'archivio .tar NAMD in \\CentOS66HN\Namd\namd2.Extract the NAMD tar archive to \\CentOS66HN\Namd\namd2.
    • Estrarre i file per le esercitazioni in \\CentOS66HN\Namd\namd2\namdsample.Extract the tutorial files under \\CentOS66HN\Namd\namd2\namdsample.
  4. Aprire una finestra di Windows PowerShell ed eseguire i comandi seguenti per montare la cartella condivisa nei nodi Linux.Open a Windows PowerShell window and run the following commands to mount the shared folder on the Linux nodes.

    clusrun /nodegroup:LinuxNodes mkdir -p /namd2
    
    clusrun /nodegroup:LinuxNodes mount -t cifs //CentOS66HN/Namd/namd2 /namd2 -o vers=2.1`,username=<username>`,password='<password>'`,dir_mode=0777`,file_mode=0777
    

Il primo comando crea una cartella denominata /namd2 su tutti i nodi del gruppo LinuxNodes.The first command creates a folder named /namd2 on all nodes in the LinuxNodes group. Il secondo comando monta la cartella condivisa //CentOS66HN/Namd/namd2 nella cartella con i bit dir_mode e file_mode impostati su 777.The second command mounts the shared folder //CentOS66HN/Namd/namd2 onto the folder with dir_mode and file_mode bits set to 777. I valori di username e password nel comando devono corrispondere alle credenziali di un utente nel nodo head.The username and password in the command should be the credentials of a user on the head node.

Nota

Il simbolo "\" nel secondo comando è un simbolo di escape per PowerShell.</span><span class="sxs-lookup"><span data-stu-id="208e3-182">The “\\” symbol in the second command is an escape symbol for PowerShell. "\" significa "," (virgola) e fa parte del comando.</span><span class="sxs-lookup"><span data-stu-id="208e3-183">“\\,” means the “,” (comma character) is a part of the command.

Creare uno script Bash per eseguire un processo NAMDCreate a Bash script to run a NAMD job

Il processo NAMD richiede un file nodelist per consentire a charmrun di determinare il numero di nodi da usare quando vengono avviati i processi NAMD.Your NAMD job needs a nodelist file for charmrun to determine the number of nodes to use when starting NAMD processes. Viene usato uno script Bash che genera il file nodelist ed esegue charmrun con il file nodelist generato.You use a Bash script that generates the nodelist file and runs charmrun with this nodelist file. È quindi possibile inviare un processo NAMD in HPC Cluster Manager per chiamare questo script.You can then submit a NAMD job in HPC Cluster Manager that calls this script.

Usando l'editor di testo desiderato, creare uno script Bash nella cartella /namd2 contenente i file di programma NAMD e denominarlo hpccharmrun.sh. Per un rapido modello di prova, copiare lo script di esempio hpccharmrun.sh fornito alla fine di questo articolo e passare a Inviare un processo NAMD.Using a text editor of your choice, create a Bash script in the /namd2 folder containing the NAMD program files and name it hpccharmrun.sh. For a quick proof of concept, copy the example hpccharmrun.sh script provided at the end of this article and go to Submit a NAMD job.

Suggerimento

Salvare lo script come file di testo con terminazioni riga Linux (solo LF, non CR LF),Save your script as a text file with Linux line endings (LF only, not CR LF). in modo da assicurarne l'esecuzione corretta nei nodi Linux.This ensures that it runs properly on the Linux nodes.

Di seguito sono descritte nel dettaglio le operazioni eseguite dallo script Bash.Following are details about what this bash script does.

  1. Definire alcune variabili.Define some variables.

    #!/bin/bash
    
    # The path of this script
    SCRIPT_PATH="$( dirname "${BASH_SOURCE[0]}" )"
    # Charmrun command
    CHARMRUN=${SCRIPT_PATH}/charmrun
    # Argument of ++nodelist
    NODELIST_OPT="++nodelist"
    # Argument of ++p
    NUMPROCESS="+p"
    
  2. Ottenere le informazioni sul nodo dalle variabili di ambiente.Get node information from the environment variables. $NODESCORES archivia un elenco di parole suddivise da $CCP_NODES_CORES.$NODESCORES stores a list of split words from $CCP_NODES_CORES. $COUNT corrisponde alle dimensioni di $NODESCORES.$COUNT is the size of $NODESCORES.

    # Get node information from the environment variables
    NODESCORES=(${CCP_NODES_CORES})
    COUNT=${#NODESCORES[@]}
    

    Il formato della variabile $CCP_NODES_CORES è il seguente:The format for the $CCP_NODES_CORES variable is as follows:

    <Number of nodes> <Name of node1> <Cores of node1> <Name of node2> <Cores of node2>…
    

    Questa variabile consente di elencare il numero totale di nodi, i nomi dei nodi e il numero di core in ogni nodo allocati al processo.This variable lists the total number of nodes, node names, and number of cores on each node that are allocated to the job. Ad esempio, se per l'esecuzione del processo sono necessari 10 core, il valore di $CCP_NODES_CORES è simile a:For example, if the job needs 10 cores to run, the value of $CCP_NODES_CORES is similar to:

    3 CENTOS66LN-00 4 CENTOS66LN-01 4 CENTOS66LN-03 2
    
  3. Se la variabile $CCP_NODES_CORES non è configurata, avviare direttamente charmrun.If the $CCP_NODES_CORES variable is not set, start charmrun directly. È consigliabile seguire questa procedura solo quando si esegue lo script direttamente nei nodi Linux.(This should only occur when you run this script directly on your Linux nodes.)

    if [ ${COUNT} -eq 0 ]
    then
      # CCP_NODES is_CORES is not found or is empty, so just run charmrun without nodelist arg.
      #echo ${CHARMRUN} $*
      ${CHARMRUN} $*
    
  4. In alternativa, creare un file nodelist per charmrun.Or create a nodelist file for charmrun.

    else
      # Create the nodelist file
      NODELIST_PATH=${SCRIPT_PATH}/nodelist_$$
    
      # Write the head line
      echo "group main" > ${NODELIST_PATH}
    
      # Get every node name and number of cores and write into the nodelist file
      I=1
      while [ ${I} -lt ${COUNT} ]
      do
          echo "host ${NODESCORES[${I}]} ++cpus ${NODESCORES[$(($I+1))]}" >> ${NODELIST_PATH}
          let "I=${I}+2"
      done
    
  5. Eseguire charmrun con il file nodelist, ottenere il relativo stato restituito e quindi rimuovere il file nodelist al termine delle operazioni.Run charmrun with the nodelist file, get its return status, and remove the nodelist file at the end.

    ${CCP_NUMCPUS} è un'altra variabile di ambiente configurata dal nodo head HPC Pack.${CCP_NUMCPUS} is another environment variable set by the HPC Pack head node. Archivia il numero totale di core allocati per questo processo.It stores the number of total cores allocated to this job. Viene usata per specificare il numero di processi per charmrun.We use it to specify the number of processes for charmrun.

    # Run charmrun with nodelist arg
    #echo ${CHARMRUN} ${NUMPROCESS}${CCP_NUMCPUS} ${NODELIST_OPT} ${NODELIST_PATH} $*
    ${CHARMRUN} ${NUMPROCESS}${CCP_NUMCPUS} ${NODELIST_OPT} ${NODELIST_PATH} $*
    
    RTNSTS=$?
    rm -f ${NODELIST_PATH}
    fi
    
  6. Uscire con lo stato restituito di charmrun .Exit with the charmrun return status.

    exit ${RTNSTS}
    

Le informazioni seguenti sono disponibili nel file nodelist, che viene generato dallo script:Following is the information in the nodelist file, which the script generates:

group main
host <Name of node1> ++cpus <Cores of node1>
host <Name of node2> ++cpus <Cores of node2>
…

ad esempio:For example:

group main
host CENTOS66LN-00 ++cpus 4
host CENTOS66LN-01 ++cpus 4
host CENTOS66LN-03 ++cpus 2

Inviare un processo NAMDSubmit a NAMD job

È ora possibile inviare un processo NAMD in HPC Cluster Manager.Now you are ready to submit a NAMD job in HPC Cluster Manager.

  1. Connettersi al nodo head del cluster e avviare HPC Cluster Manager.Connect to your cluster head node and start HPC Cluster Manager.
  2. In Resource Management (Gestione risorsa) assicurarsi che lo stato dei nodi di calcolo Linux sia Online.In Resource Management, ensure that the Linux compute nodes are in the Online state. Se lo stato è diverso, selezionarli e fare clic su Portare Online.If they are not, select them and click Bring Online.
  3. In Job Management (Gestione processi) fare clic su New Job (Nuovo processo).In Job Management, click New Job.
  4. Immettere un nome per il processo, ad esempio hpccharmrun.Enter a name for job such as hpccharmrun.

    Nuovo processo HPC

  5. Nella pagina Job Details (Dettagli processo) in Job Resources (Risorse processo) scegliere Node (Nodo) come tipo di risorsa, quindi impostare il valore Minimum (Minimo) su 3On the Job Details page, under Job Resources, select the type of resource as Node and set the Minimum to 3. per eseguire il processo su tre nodi di Linux con quattro core ciascuno., we run the job on three Linux nodes and each node has four cores.

    Risorse del processo

  6. Fare clic su Edit Tasks (Modifica attività) nel riquadro di spostamento sinistro e quindi fare clic su Add (Aggiungi) per aggiungere un'attività al processo.Click Edit Tasks in the left navigation, and then click Add to add a task to the job.
  7. Nella pagina Task Details and I/O Redirection (Dettagli attività e reindirizzamento I/O) impostare i valori seguenti:On the Task Details and I/O Redirection page, set the following values:

    • Riga di comando- /namd2/hpccharmrun.sh ++remote-shell ssh /namd2/namd2 /namd2/namdsample/1-2-sphere/ubq_ws_eq.conf > /namd2/namd2_hpccharmrun.logCommand line - /namd2/hpccharmrun.sh ++remote-shell ssh /namd2/namd2 /namd2/namdsample/1-2-sphere/ubq_ws_eq.conf > /namd2/namd2_hpccharmrun.log

      Suggerimento

      La riga di comando precedente è costituita da un comando singolo senza interruzioni di riga.The preceding command line is a single command without line breaks. Nella riga di comando il testo appare suddiviso in più righe.It wraps to appear on several lines under Command line.

    • Working directory - /namd2Working directory - /namd2
    • Minimum - 3Minimum - 3

      Dettagli dell'attività

      Nota

      È necessario configurare qui la directory di lavoro, perché charmrun prova a passare alla stessa directory di lavoro in ogni nodo.You set the working directory here because charmrun tries to navigate to the same working directory on each node. Se la directory di lavoro non è configurata, HPC Pack avvia il comando in una cartella con nome casuale creata in uno dei nodi Linux.If the working directory isn't set, HPC Pack starts the command in a randomly named folder created on one of the Linux nodes. Ciò provoca l'errore seguente negli altri nodi: /bin/bash: line 37: cd: /tmp/nodemanager_task_94_0.mFlQSN: No such file or directory. Per evitare questo problema, specificare un percorso di cartella accessibile a tutti i nodi come directory di lavoro.This causes the following error on the other nodes: /bin/bash: line 37: cd: /tmp/nodemanager_task_94_0.mFlQSN: No such file or directory. To avoid this problem, specify a folder path that can be accessed by all nodes as the working directory.

  8. Fare clic su OK e quindi su Invia per eseguire il processo.Click OK and then click Submit to run this job.

    Per impostazione predefinita, HPC Pack invia il processo usando l'account utente attualmente connesso.By default, HPC Pack submits the job as your current logged-on user account. È possibile che una finestra di dialogo richieda l'immissione del nome utente e della password dopo la selezione di Submit.A dialog box might prompt you to enter the user name and password after you click Submit.

    Credenziali del processo

    In alcune condizioni, HPC Pack ricorda le informazioni utente inserite in precedenza e non visualizza questa finestra di dialogo.Under some conditions, HPC Pack remembers the user information you input before and doesn't show this dialog box. Per tornare a visualizzarla in HPC Pack, immettere il comando seguente nel prompt dei comandi e quindi inviare il processo.To make HPC Pack show it again, enter the following command at a Command Prompt and then submit the job.

    hpccred delcreds
    
  9. Il completamento del processo richiede alcuni minuti.The job takes several minutes to finish.
  10. Il log del processo è disponibile in \\Namd\namd2\namd2_hpccharmrun.log e i file di output sono disponibili in \\Namd\namd2\namdsample\1-2-sphere..Find the job log at \\Namd\namd2\namd2_hpccharmrun.log and the output files in \\Namd\namd2\namdsample\1-2-sphere.
  11. Facoltativamente, avviare VMD per visualizzare i risultati del processo.Optionally, start VMD to view your job results. I passaggi per la visualizzazione dei file di output NAMD (in questo caso, una molecola proteica di ubiquitina in una sfera d'acqua) non rientrano nell'ambito di questo articolo.The steps for visualizing the NAMD output files (in this case, a ubiquitin protein molecule in a water sphere) are beyond the scope of this article. Per informazioni dettagliate, vedere l' esercitazione relativa a NAMD .See NAMD Tutorial for details.

    Risultati del processo

File di esempioSample files

File di configurazione XML di esempio per la distribuzione di cluster tramite script PowerShellSample XML configuration file for cluster deployment by PowerShell script

<?xml version="1.0" encoding="utf-8" ?>
<IaaSClusterConfig>
  <Subscription>
    <SubscriptionName>Subscription-1</SubscriptionName>
    <StorageAccount>mystorageaccount</StorageAccount>
  </Subscription>
      <Location>West US</Location>  
  <VNet>
    <VNetName>MyVNet</VNetName>
    <SubnetName>Subnet-1</SubnetName>
  </VNet>
  <Domain>
    <DCOption>HeadNodeAsDC</DCOption>
    <DomainFQDN>hpclab.local</DomainFQDN>
  </Domain>
  <Database>
    <DBOption>LocalDB</DBOption>
  </Database>
  <HeadNode>
    <VMName>CentOS66HN</VMName>
    <ServiceName>MyHPCService</ServiceName>
    <VMSize>Large</VMSize>
    <EnableRESTAPI />
    <EnableWebPortal />
  </HeadNode>
  <LinuxComputeNodes>
    <VMNamePattern>CentOS66LN-%00%</VMNamePattern>
    <ServiceName>MyLnxCNService</ServiceName>
     <VMSize>Large</VMSize>
     <NodeCount>4</NodeCount>
    <ImageName>5112500ae3b842c8b9c604889f8753c3__OpenLogic-CentOS-66-20150325</ImageName>
  </LinuxComputeNodes>
</IaaSClusterConfig>    

File cred.xml di esempioSample cred.xml file

<ExtendedData>
  <PrivateKey>-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAxJKBABhnOsE9eneGHvsjdoXKooHUxpTHI1JVunAJkVmFy8JC
qFt1pV98QCtKEHTC6kQ7tj1UT2N6nx1EY9BBHpZacnXmknpKdX4Nu0cNlSphLpru
lscKPR3XVzkTwEF00OMiNJVknq8qXJF1T3lYx3rW5EnItn6C3nQm3gQPXP0ckYCF
Jdtu/6SSgzV9kaapctLGPNp1Vjf9KeDQMrJXsQNHxnQcfiICp21NiUCiXosDqJrR
AfzePdl0XwsNngouy8t0fPlNSngZvsx+kPGh/AKakKIYS0cO9W3FmdYNW8Xehzkc
VzrtJhU8x21hXGfSC7V0ZeD7dMeTL3tQCVxCmwIDAQABAoIBAQCve8Jh3Wc6koxZ
qh43xicwhdwSGyliZisoozYZDC/ebDb/Ydq0BYIPMiDwADVMX5AqJuPPmwyLGtm6
9hu5p46aycrQ5+QA299g6DlF+PZtNbowKuvX+rRvPxagrTmupkCswjglDUEYUHPW
05wQaNoSqtzwS9Y85M/b24FfLeyxK0n8zjKFErJaHdhVxI6cxw7RdVlSmM9UHmah
wTkW8HkblbOArilAHi6SlRTNZG4gTGeDzPb7fYZo3hzJyLbcaNfJscUuqnAJ+6pT
iY6NNp1E8PQgjvHe21yv3DRoVRM4egqQvNZgUbYAMUgr30T1UoxnUXwk2vqJMfg2
Nzw0ESGRAoGBAPkfXjjGfc4HryqPkdx0kjXs0bXC3js2g4IXItK9YUFeZzf+476y
OTMQg/8DUbqd5rLv7PITIAqpGs39pkfnyohPjOe2zZzeoyaXurYIPV98hhH880uH
ZUhOxJYnlqHGxGT7p2PmmnAlmY4TSJrp12VnuiQVVVsXWOGPqHx4S4f9AoGBAMn/
vuea7hsCgwIE25MJJ55FYCJodLkioQy6aGP4NgB89Azzg527WsQ6H5xhgVMKHWyu
Q1snp+q8LyzD0i1veEvWb8EYifsMyTIPXOUTwZgzaTTCeJNHdc4gw1U22vd7OBYy
nZCU7Tn8Pe6eIMNztnVduiv+2QHuiNPgN7M73/x3AoGBAOL0IcmFgy0EsR8MBq0Z
ge4gnniBXCYDptEINNBaeVStJUnNKzwab6PGwwm6w2VI3thbXbi3lbRAlMve7fKK
B2ghWNPsJOtppKbPCek2Hnt0HUwb7qX7Zlj2cX/99uvRAjChVsDbYA0VJAxcIwQG
TxXx5pFi4g0HexCa6LrkeKMdAoGAcvRIACX7OwPC6nM5QgQDt95jRzGKu5EpdcTf
g4TNtplliblLPYhRrzokoyoaHteyxxak3ktDFCLj9eW6xoCZRQ9Tqd/9JhGwrfxw
MS19DtCzHoNNewM/135tqyD8m7pTwM4tPQqDtmwGErWKj7BaNZARUlhFxwOoemsv
R6DbZyECgYEAhjL2N3Pc+WW+8x2bbIBN3rJcMjBBIivB62AwgYZnA2D5wk5o0DKD
eesGSKS5l22ZMXJNShgzPKmv3HpH22CSVpO0sNZ6R+iG8a3oq4QkU61MT1CfGoMI
a8lxTKnZCsRXU1HexqZs+DSc+30tz50bNqLdido/l5B4EJnQP03ciO0=
-----END RSA PRIVATE KEY-----</PrivateKey>
  <PublicKey>ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEkoEAGGc6wT16d4Ye+yN2hcqigdTGlMcjUlW6cAmRWYXLwkKoW3WlX3xAK0oQdMLqRDu2PVRPY3qfHURj0EEellpydeaSekp1fg27Rw2VKmEumu6Wxwo9HddXORPAQXTQ4yI0lWSerypckXVPeVjHetbkSci2foLedCbeBA9c/RyRgIUl227/pJKDNX2Rpqly0sY82nVWN/0p4NAyslexA0fGdBx+IgKnbU2JQKJeiwOomtEB/N492XRfCw2eCi7Ly3R8+U1KeBm+zH6Q8aH8ApqQohhLRw71bcWZ1g1bxd6HORxXOu0mFTzHbWFcZ9ILtXRl4Pt0x5Mve1AJXEKb username@servername;</PublicKey>
</ExtendedData>

Script hpccharmrun.sh di esempioSample hpccharmrun.sh script

#!/bin/bash

# The path of this script
SCRIPT_PATH="$( dirname "${BASH_SOURCE[0]}" )"
# Charmrun command
CHARMRUN=${SCRIPT_PATH}/charmrun
# Argument of ++nodelist
NODELIST_OPT="++nodelist"
# Argument of ++p
NUMPROCESS="+p"

# Get node information from ENVs
# CCP_NODES_CORES=3 CENTOS66LN-00 4 CENTOS66LN-01 4 CENTOS66LN-03 4
NODESCORES=(${CCP_NODES_CORES})
COUNT=${#NODESCORES[@]}

if [ ${COUNT} -eq 0 ]
then
    # If CCP_NODES_CORES is not found or is empty, just run the charmrun without nodelist arg.
    #echo ${CHARMRUN} $*
    ${CHARMRUN} $*
else
    # Create the nodelist file
    NODELIST_PATH=${SCRIPT_PATH}/nodelist_$$

    # Write the head line
    echo "group main" > ${NODELIST_PATH}

    # Get every node name & cores and write into the nodelist file
    I=1
    while [ ${I} -lt ${COUNT} ]
    do
        echo "host ${NODESCORES[${I}]} ++cpus ${NODESCORES[$(($I+1))]}" >> ${NODELIST_PATH}
        let "I=${I}+2"
    done

    # Run the charmrun with nodelist arg
    #echo ${CHARMRUN} ${NUMPROCESS}${CCP_NUMCPUS} ${NODELIST_OPT} ${NODELIST_PATH} $*
    ${CHARMRUN} ${NUMPROCESS}${CCP_NUMCPUS} ${NODELIST_OPT} ${NODELIST_PATH} $*

    RTNSTS=$?
    rm -f ${NODELIST_PATH}
fi

exit ${RTNSTS}