

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Nozioni di base su EFA e MPI per i carichi di lavoro HPC su Amazon EC2
<a name="efa-start"></a>

Questo tutorial consente di avviare un EFA e un cluster dell'istanza abilitata all'MPI per i carichi di lavoro HPC.

**Nota**  
Le istanze `u7i-12tb.224xlarge`, `u7in-16tb.224xlarge`, `u7in-24tb.224xlarge` e `u7in-32tb.224xlarge` possono eseguire fino a 128 processi MPI paralleli con Open MPI o fino a 256 processi MPI paralleli con Intel MPI.

**Topics**
+ [Fase 1: preparare un gruppo di sicurezza abilitato per EFA](#efa-start-security)
+ [Fase 2: avviare un'istanza temporanea](#efa-start-tempinstance)
+ [Fase 3: installare il software EFA](#efa-start-enable)
+ [Fase 4: (*facoltativa*) abilitare Open MPI 5](#efa-start-ompi5)
+ [Fase 5 (*facoltativa*): installare Intel MPI](#efa-start-impi)
+ [Fase 6: disabilitare la protezione Ptrace](#efa-start-ptrace)
+ [Fase 7. Conferma dell'installazione](#efa-start-test)
+ [Fase 8: installazione dell'applicazione HPC](#efa-start-hpc-app)
+ [Fase 9: creazione di un'AMI abilitata per EFA](#efa-start-ami)
+ [Fase 10: avvio delle istanze abilitate per EFA in un gruppo di collocazione cluster](#efa-start-instances)
+ [Fase 11: terminare l'istanza temporanea](#efa-start-terminate)
+ [Fase 12: abilitazione di SSH senza password](#efa-start-passwordless)

## Fase 1: preparare un gruppo di sicurezza abilitato per EFA
<a name="efa-start-security"></a>

Un EFA richiede un gruppo di sicurezza in cui sia consentito tutto il traffico in entrata e in uscita dal gruppo stesso. La procedura seguente crea un gruppo di sicurezza che consente tutto il traffico in entrata e in uscita da e verso se stesso e che consente il traffico SSH in entrata da qualsiasi IPv4 indirizzo per la connettività SSH.

**Importante**  
Questo gruppo di sicurezza è destinato esclusivamente a scopi di test. Per i tuoi ambienti di produzione, consigliamo di creare una regola SSH in entrata che consenta il traffico solo dall'indirizzo IP da cui ti connetti, ad esempio l'indirizzo IP del tuo computer o un intervallo di indirizzi IP nella tua rete locale.

Per altri scenari, consulta [Regole del gruppo di sicurezza per diversi casi d'uso](security-group-rules-reference.md).

**Per creare un gruppo di sicurezza abilitato per EFA**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Nel riquadro di navigazione, scegliere **Security Groups (Gruppi di sicurezza)** e quindi **Create Security Group (Crea gruppo di sicurezza)**.

1. Nella finestra **Create Security Group (Crea gruppo di sicurezza)** effettuare le operazioni seguenti:

   1. In **Nome gruppo di sicurezza**, immettere un nome descrittivo per il gruppo di sicurezza, ad esempio `EFA-enabled security group`.

   1. (Facoltativo) In **Description (Descrizione)**, inserire una breve descrizione del gruppo di sicurezza.

   1. In **VPC**, selezionare il VPC in cui avviare le istanze abilitate per EFA.

   1. Scegliere **Create Security Group** (Crea gruppo di sicurezza).

1. Seleziona il gruppo di sicurezza creato e nella scheda **Details** (Dettagli) copia il valore **Security group ID** (ID gruppo di sicurezza).

1. Dopo aver selezionato il gruppo di sicurezza, scegli **Actions** (Operazioni), **Edit inbound rules** (Modifica le regole in entrata) ed esegui le operazioni di seguito:

   1. Scegliere **Add rule** (Aggiungi regola).

   1. In **Type (Tipo)**, selezionare **All traffic (Tutto il traffico)**.

   1. Per **Source type** (Tipo di origine), scegli **Custom** (Personalizzata) e incolla nel campo l'ID del gruppo di sicurezza copiato in precedenza.

   1. Scegli **Aggiungi regola**.

   1. Per **Type** (Tipo) scegli **SSH**.

   1. **Per **Tipo di origine**, scegliete Anywhere-. IPv4**

   1. Scegliere **Salva regole**.

1. Dopo aver selezionato il gruppo di sicurezza, scegli **Actions** (Operazioni), **Edit outbound rules** (Modifica le regole in uscita) ed esegui le operazioni di seguito:

   1. Scegliere **Add rule** (Aggiungi regola).

   1. In **Type (Tipo)**, selezionare **All traffic (Tutto il traffico)**.

   1. Per **Destination type** (Tipo di destinazione), scegli **Custom** (Personalizzata) e incolla nel campo l'ID del gruppo di sicurezza copiato in precedenza.

   1. Scegliere **Salva regole**.

## Fase 2: avviare un'istanza temporanea
<a name="efa-start-tempinstance"></a>

Avvia un'istanza temporanea da utilizzare per installare e configurare i componenti software EFA. L'istanza serve anche per creare un'AMI abilitata per EFA da cui avviare le istanze abilitate per EFA. 

**Per avviare un'istanza temporanea**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Nel pannello di navigazione, scegli **Instances** (Istanze) e quindi scegli **Launch instances** (Avvia istanze) per aprire la nuova procedura guidata di avvio dell'istanza.

1. (*Opzionale*) Nella sezione **Name and tags** (Nome e tag), fornisci un nome per l'istanza, ad esempio `EFA-instance`. Il nome viene assegnato all'istanza come tag di risorsa (`Name=EFA-instance`).

1. Nella sezione **Application and OS Images** (Immagini di applicazioni e sistema operativo), seleziona un'AMI per uno dei [sistemi operativi supportati](efa.md#efa-os).

1. Nella sezione **Instance type** (Tipo di istanza), seleziona un [tipo di istanza supportato](efa.md#efa-instance-types).

1. Nella sezione **Key pair** (Coppia di chiavi), seleziona la coppia di chiavi da utilizzare per l'istanza.

1. Nella sezione **Network settings** (Impostazioni di rete), scegli **Edit** (Modifica) e quindi esegui le operazioni qui descritte:

   1. Per **Subnet** (Sottorete) seleziona la subnet in cui avviare l'istanza. Se non selezioni una sottorete, non puoi abilitare l'istanza per l'EFA.

   1. Per **Firewall (security groups)** (Firewall [gruppi di sicurezza]), scegli **Select existing security group** (Seleziona gruppo di sicurezza esistente) e quindi seleziona il gruppo di sicurezza creato nella fase precedente.

   1. Espandi la sezione **Configurazione avanzata**.

      Come **Interfaccia di rete 1**, seleziona **Indice della scheda di rete = 0**, **Indice dispositivo = 0** e **Tipo di interfaccia = EFA con ENA**.

      (Facoltativo) Se utilizzi un'istanza multi-scheda, come `p4d.24xlarge` o `p5.48xlarge`, per ogni interfaccia di rete aggiuntiva richiesta scegli **Aggiungi interfaccia di rete**, seleziona l'indice successivo inutilizzato come **Indice della scheda di rete** e poi seleziona **Indice dispositivo = 1** e **Tipo di interfaccia = EFA con ENA** o **solo EFA**.

1. Nella sezione **Storage** (Archiviazione), configura i volumi secondo necessità.

1. Nel pannello **Summary** (Riepilogo) a destra, scegli **Launch instance** (Avvia istanza).

**Nota**  
Prendi in considerazione la possibilità di richiedere l'uso di IMDSv2 per l'istanza temporanea e l'AMI che creerai nel [passaggio 9](#efa-start-ami), a meno che tu non abbia già [impostato IMDSv2 come impostazione predefinita per l'account](configuring-IMDS-new-instances.md#set-imdsv2-account-defaults). Per ulteriori informazioni sui passaggi IMDSv2 di configurazione, consulta[Configurazione delle opzioni dei metadati dell'istanza per le nuove istanze](configuring-IMDS-new-instances.md). 

## Fase 3: installare il software EFA
<a name="efa-start-enable"></a>

Installare il kernel abilitato EFA, i driver EFA, Libfabric e lo stack Open MPI necessari per supportare EFA sull'istanza temporanea.

Le fasi variano a seconda che si intenda utilizzare EFA con Open MPI, con Intel MPI o con Open MPI e Intel MPI..

**Nota**  
Alcuni sistemi operativi potrebbero non essere supportati con Intel MPI. Se utilizzi Intel MPI, fai riferimento alla [ documentazione Intel MPI](https://www.intel.com/content/www/us/en/developer/articles/system-requirements/mpi-library-system-requirements.html) per verificare il supporto per il sistema operativo in uso.

**Per installare il software EFA**

1. Connettersi all'istanza avviata. Per ulteriori informazioni, consulta [Connessione a un’istanza Linux tramite SSH](connect-to-linux-instance.md).

1. Per verificare che tutti i pacchetti software siano aggiornati, eseguire un aggiornamento rapido del software sull'istanza. Questo processo può richiedere alcuni minuti.
   + Amazon Linux 2023, Amazon Linux 2, RHEL 8/9, Rocky Linux 8/9

     ```
     $ sudo yum update -y
     ```
   + Ubuntu e Debian

     ```
     $ sudo apt-get update && sudo apt-get upgrade -y
     ```
   + SUSE Linux Enterprise

     ```
     $ sudo zypper update -y
     ```

1. Riavviare l'istanza e riconnettersi a essa.

1. Scarica i file di installazione del software. I file di installazione del software sono riuniti in un file (`.tar.gz`) tarball compresso. Per scaricare l'ultima versione *stabile*, utilizzare il comando seguente.

   È inoltre possibile ottenere l'ultima versione sostituendo il numero della versione con `latest` nel comando qui sopra.

   ```
   $ curl -O https://efa-installer.amazonaws.com/aws-efa-installer-1.47.0.tar.gz
   ```

1. (*Opzionale*) Verifica l'autenticità e l'integrità del file tarball EFA (`.tar.gz`).

   È consigliabile eseguire questa operazione per verificare l'identità dell'autore del software e che il file non sia stato alterato o danneggiato dopo la pubblicazione. Se non desideri verificare il file tarball, ignora questo passaggio.
**Nota**  
In alternativa, se preferisci verificare il file tarball utilizzando invece un SHA256 checksum MD5 or, consulta. [Verifica del programma di installazione EFA utilizzando un checksum](efa-verify.md)

   1. Scarica la chiave pubblica GPG e importala nel tuo keyring.

      ```
      $ wget https://efa-installer.amazonaws.com/aws-efa-installer.key && gpg --import aws-efa-installer.key
      ```

      Il comando dovrebbe restituire un valore di chiave. Prendere nota del valore della chiave poiché sarà necessario nella fase successiva.

   1. Verifica l'impronta digitale della chiave GPG. Esegui questo comando e specifica la chiave valore creata nella fase precedente.

      ```
      $ gpg --fingerprint key_value
      ```

      Il comando dovrebbe restituire un'impronta digitale identica a `4E90 91BC BB97 A96B 26B1 5E59 A054 80B1 DD2D 3CCC`. Se l'impronta digitale non corrisponde, non eseguire lo script di installazione EFA e contatta Supporto.

   1. Scarica il file di firma e verifica la firma del file tarball EFA.

      ```
      $ wget https://efa-installer.amazonaws.com/aws-efa-installer-1.47.0.tar.gz.sig && gpg --verify ./aws-efa-installer-1.47.0.tar.gz.sig
      ```

      Di seguito viene mostrato l'output di esempio.

      ```
      gpg: Signature made Wed 29 Jul 2020 12:50:13 AM UTC using RSA key ID DD2D3CCC
      gpg: Good signature from "Amazon EC2 EFA <ec2-efa-maintainers@amazon.com>"
      gpg: WARNING: This key is not certified with a trusted signature!
      gpg:          There is no indication that the signature belongs to the owner.
      Primary key fingerprint: 4E90 91BC BB97 A96B 26B1  5E59 A054 80B1 DD2D 3CCC
      ```

      Se il risultato include `Good signature` e se l'impronta digitale corrisponde a quella restituita nel passaggio precedente, procedi alla fase successiva. In caso contrario, non eseguire lo script di installazione EFA e contatta Supporto.

1. Estrarre i file dal file `.tar.gz` compresso e andare alla directory estratta.

   ```
   $ tar -xf aws-efa-installer-1.47.0.tar.gz && cd aws-efa-installer
   ```

1. Installare il software EFA. Eseguire una delle seguenti operazioni, a seconda del caso d'uso:
**Nota**  
**EFA non supporta NVIDIA GPUDirect ** con SUSE Linux. Se utilizzi SUSE Linux, devi specificare anche l'opzione `--skip-kmod` per impedire l'installazione di kmod. Per impostazione predefinita, SUSE Linux non consente i moduli del kernel. out-of-tree

------
#### [ Open MPI and Intel MPI ]

   Se intendi utilizzare EFA con Open MPI e Intel MPI, devi installare il software EFA con Libfabric e Open MPI e **completare la Fase 5: installare Intel MPI**.

   Per installare il software EFA con Libfabric e Open MPI, eseguire il seguente comando.

**Nota**  
A partire da EFA 1.30.0, per impostazione predefinita vengono installati sia Open MPI 4.1 che Open MPI 5. Facoltativamente, è possibile specificare la versione di Open MPI che si desidera installare. Per installare solo Open MPI 4.1, includi. `--mpi=openmpi4` Per installare solo Open MPI 5, includere `--mpi=openmpi5`. Per installare entrambi, omettere l'opzione `--mpi`.

   ```
   $ sudo ./efa_installer.sh -y
   ```

   Libfabric è installato su `/opt/amazon/efa`. Open MPI 4.1 è installato su. `/opt/amazon/openmpi` Open MPI 5 è installato su `/opt/amazon/openmpi5`.

------
#### [ Open MPI only ]

   Se intendi utilizzare EFA solo con Open MPI, devi installare il software EFA con Libfabric e Open MPI e puoi **ignorare la Fase 5: installare Intel MPI**. Per installare il software EFA con Libfabric e Open MPI, eseguire il seguente comando.

**Nota**  
A partire da EFA 1.30.0, per impostazione predefinita vengono installati sia Open MPI 4.1 che Open MPI 5. Facoltativamente, è possibile specificare la versione di Open MPI che si desidera installare. Per installare solo Open MPI 4.1, includi. `--mpi=openmpi4` Per installare solo Open MPI 5, includere `--mpi=openmpi5`. Per installare entrambi, omettere l'opzione `--mpi`.

   ```
   $ sudo ./efa_installer.sh -y
   ```

   Libfabric è installato su `/opt/amazon/efa`. Open MPI 4.1 è installato su. `/opt/amazon/openmpi` Open MPI 5 è installato su `/opt/amazon/openmpi5`.

------
#### [ Intel MPI only ]

   Se si intende utilizzare solo EFA con Intel MPI, è possibile installare il software EFA senza Libfabric e Open MPI. In tal caso, Intel MPI utilizza Libfabric incorporato. Se si sceglie di eseguire questa operazione, è **necessario completare la Fase 5: installare Intel MPI**. 

   Per installare il software EFA senza Libfabric e Open MPI, eseguire il seguente comando.

   ```
   $ sudo ./efa_installer.sh -y --minimal
   ```

------

1. Se il programma di installazione di EFA richiede il riavvio dell'istanza, eseguire questa operazione e riconnettersi all'istanza. In caso contrario, disconnettersi dall'istanza e quindi accedere di nuovo per completare l'installazione.

1. Elimina il tarball non compresso e il tarball stesso. Altrimenti, saranno inclusi nell’AMI abilitata per EFA che crei, aumentandone le dimensioni.

## Fase 4: (*facoltativa*) abilitare Open MPI 5
<a name="efa-start-ompi5"></a>

**Nota**  
Esegui questa fase solo se intendi utilizzare Open MPI 5.

A partire da EFA 1.30.0, per impostazione predefinita vengono installati sia Open MPI 4.1 che Open MPI 5. In alternativa, è possibile scegliere di installare solo Open MPI 4.1 o Open MPI 5.

Se scegli di installare Open MPI 5 nella **Fase 3: installare il software EFA** e desideri utilizzarlo, devi eseguire questa procedura per abilitarlo.

**Abilitazione di Open MPI 5**

1. Aggiungi Open MPI 5 alla variabile di ambiente PATH.

   ```
   $ module load openmpi5
   ```

1. Verifica che Open MPI 5 sia abilitato per l'uso.

   ```
   $ which mpicc
   ```

   Il comando dovrebbe restituire la directory di installazione di Open MPI 5: `/opt/amazon/openmpi5`.

1. (*Facoltativo*) Per garantire che Open MPI 5 venga aggiunto alla variabile di ambiente PATH a ogni avvio dell'istanza, esegui le seguenti operazioni:

------
#### [ bash shell ]

   Aggiungi `module load openmpi5` a `/home/username/.bashrc` e `/home/username/.bash_profile`.

------
#### [ csh and tcsh shells ]

   Aggiungere `module load openmpi5` a `/home/username/.cshrc`.

------

Se è necessario rimuovere Open MPI 5 dalla variabile di ambiente PATH, esegui il seguente comando e rimuovilo dagli script shell di avvio.

```
$ module unload openmpi5
```

## Fase 5 (*facoltativa*): installare Intel MPI
<a name="efa-start-impi"></a>

**Importante**  
Esegui questa fase solo se intendi utilizzare Intel MPI. Se intendi utilizzare Open MPI, salta questa fase. 

Intel MPI richiede un'installazione aggiuntiva e la configurazione di una variabile d'ambiente.

**Prerequisito**  
Verificare che l'utente che esegue le fasi seguenti disponga delle autorizzazioni sudo.

**Per installare Intel MPI**

1. Per scaricare lo script di installazione Intel MPI, procedi come indicato di seguito

   1. Visita il [sito Web Intel](https://www.intel.com/content/www/us/en/developer/articles/tool/oneapi-standalone-components.html#mpi).

   1. Nella sezione **Intel MPI Library** (Libreria Intel MPI) della pagina Web, scegli il collegamento per il programma di installazione **offline** della **Libreria Intel MPI per Linux**.

1. Esegui lo script di installazione scaricato nel passaggio precedente.

   ```
   $ sudo bash installation_script_name.sh
   ```

1. Nel programma di installazione, scegli **Accetta e installa**.

1. Leggi il programma Intel Improvement, scegli l'opzione appropriata, quindi scegli **Begin Installation** (Inizia l'installazione).

1. Al termine dell'installazione, scegliere **Chiudi**.

1. Per impostazione predefinita, Intel MPI utilizza il proprio Libfabric incorporato (interno). Puoi tuttavia configurare Intel MPI per utilizzare il componente Libfabric fornito con il programma di installazione EFA. In genere, il programma di installazione EFA viene fornito con una versione successiva di Libfabric rispetto a Intel MPI. In alcuni casi, il componente Libfabric fornito con il programma di installazione EFA è anche più performante di quello di Intel MPI. Per configurare Intel MPI per l'utilizzo del componente Libfabric fornito con il programma di installazione EFA, esegui una delle operazioni seguenti, in base alla shell in uso.

------
#### [ bash shells ]

   Aggiungi l'istruzione seguente a `/home/username/.bashrc` e `/home/username/.bash_profile`.

   ```
   export I_MPI_OFI_LIBRARY_INTERNAL=0
   ```

------
#### [ csh and tcsh shells ]

   Aggiungi l'istruzione seguente a `/home/username/.cshrc`.

   ```
   setenv I_MPI_OFI_LIBRARY_INTERNAL 0
   ```

------

1. Aggiungi il comando **di origine** seguente allo script della shell per generare lo script `vars.sh` dalla directory di installazione e impostare l'ambiente del compilatore ad ogni avvio dell'istanza. Eseguire uno dei seguenti, a seconda della shell in uso.

------
#### [ bash shells ]

   Aggiungi l'istruzione seguente a `/home/username/.bashrc` e `/home/username/.bash_profile`.

   ```
   source /opt/intel/oneapi/mpi/latest/env/vars.sh
   ```

------
#### [ csh and tcsh shells ]

   Aggiungi l'istruzione seguente a `/home/username/.cshrc`.

   ```
   source /opt/intel/oneapi/mpi/latest/env/vars.csh
   ```

------

1. Per impostazione predefinita, se EFA non è disponibile a causa di una configurazione errata, Intel MPI utilizza per impostazione predefinita lo stack di TCP/IP rete, il che potrebbe rallentare le prestazioni delle applicazioni. Per evitare questo comportamento, imposta `I_MPI_OFI_PROVIDER` su `efa`. Se EFA non è disponibile, Intel MPI mostra l'errore seguente:

   ```
   Abort (XXXXXX) on node 0 (rank 0 in comm 0): Fatal error in PMPI_Init: OtherMPI error,
   MPIR_Init_thread (XXX)........:	
   MPID_Init (XXXX)..............:
   MPIDI_OFI_mpi_init_hook (XXXX):
   open_fabric (XXXX)............:
   find_provider (XXXX)..........:
   OFI fi_getinfo() failed (ofi_init.c:2684:find_provider:
   ```

   Eseguire uno dei seguenti, a seconda della shell in uso.

------
#### [ bash shells ]

   Aggiungi l'istruzione seguente a `/home/username/.bashrc` e `/home/username/.bash_profile`.

   ```
   export I_MPI_OFI_PROVIDER=efa
   ```

------
#### [ csh and tcsh shells ]

   Aggiungi l'istruzione seguente a `/home/username/.cshrc`.

   ```
   setenv I_MPI_OFI_PROVIDER efa
   ```

------

1. Per impostazione predefinita, Intel MPI non stampa le informazioni di debug. Per controllare tali informazioni, puoi specificare livelli di verbosità diversi. I valori possibili (secondo la quantità di dettagli che forniscono) sono: `0` (impostazione predefinita), `1`, `2`, `3`, `4`, `5`. Il livello `1` e i livelli superiori stampano `libfabric version` e `libfabric provider`. Utilizza `libfabric version` per verificare se Intel MPI sta usando il componente Libfabric interno o quello fornito con il programma di installazione EFA. Se sta usando il componente Libfabric interno, la versione presenta il suffisso `impi`. Utilizzato `libfabric provider` per verificare con Intel MPI utilizza EFA o la rete. TCP/IP Se utilizza EFA, il valore è `efa`. Se utilizza la rete TCP/IP, il valore è `tcp;ofi_rxm`.

   Per abilitare le informazioni di debug, esegui una delle operazioni seguenti, in base alla shell in uso.

------
#### [ bash shells ]

   Aggiungi l'istruzione seguente a `/home/username/.bashrc` e `/home/username/.bash_profile`.

   ```
   export I_MPI_DEBUG=value
   ```

------
#### [ csh and tcsh shells ]

   Aggiungi l'istruzione seguente a `/home/username/.cshrc`.

   ```
   setenv I_MPI_DEBUG value
   ```

------

1. Per impostazione predefinita, Intel MPI utilizza la memoria condivisa del sistema operativo (`shm`) per le comunicazioni intranodo e Libfabric (`ofi`) per le comunicazioni internodo. In generale, questa configurazione offre le prestazioni migliori. In alcuni casi, tuttavia, il fabric shm Intel MPI può causare il blocco di alcune applicazioni a tempo indeterminato.

   Per risolvere questo problema, puoi forzare Intel MPI a utilizzare Libfabric sia per le comunicazioni intranodo che per quelle internodo. A tal scopo, esegui una delle operazioni seguenti, in base alla shell in uso.

------
#### [ bash shells ]

   Aggiungi l'istruzione seguente a `/home/username/.bashrc` e `/home/username/.bash_profile`.

   ```
   export I_MPI_FABRICS=ofi
   ```

------
#### [ csh and tcsh shells ]

   Aggiungi l'istruzione seguente a `/home/username/.cshrc`.

   ```
   setenv I_MPI_FABRICS ofi
   ```

------
**Nota**  
Il provider Libfabric di EFA utilizza la memoria condivisa del sistema operativo per le comunicazioni intranodo. Ciò significa che impostando `I_MPI_FABRICS` su `ofi` si ottengono prestazioni simili a quelle della configurazione `shm:ofi` predefinita.

1. Disconnettersi e quindi riconnettersi all'istanza.

Se non si desidera più utilizzare Intel MPI, rimuovere le variabili di ambiente dagli script shell di startup.

## Fase 6: disabilitare la protezione Ptrace
<a name="efa-start-ptrace"></a>

Per migliorare le prestazioni dell'applicazione HPC, Libfabric utilizza la memoria locale dell'istanza per le comunicazioni tra processi quando i processi sono in esecuzione sulla stessa istanza. 

La funzione di memoria condivisa utilizza Cross Memory Attach (CMA), che non è supportato con la *protezione ptrace*. Se si utilizza una distribuzione Linux con protezione ptrace abilitata per impostazione predefinita, come Ubuntu, è necessario disabilitarla. Se la tua distribuzione Linux non ha la protezione ptrace abilitata per impostazione predefinita, ignorare questo passaggio.

**Per disabilitare la protezione ptrace**  
Scegliere una delle seguenti operazioni:
+ Per disabilitare temporaneamente la protezione ptrace a scopo di test, esegui il comando seguente.

  ```
  $ sudo sysctl -w kernel.yama.ptrace_scope=0
  ```
+ Per disabilitare in modo permanente la protezione ptrace, aggiungere `kernel.yama.ptrace_scope = 0` a `/etc/sysctl.d/10-ptrace.conf` e riavviare l'istanza.

## Fase 7. Conferma dell'installazione
<a name="efa-start-test"></a>

**Verifica della corretta installazione**

1. Per verificare che MPI sia stato correttamente installato, esegui il comando seguente:

   ```
   $ which mpicc
   ```
   + Per Open MPI, il percorso restituito deve includere `/opt/amazon/`.
   + Per Intel MPI, il percorso restituito deve includere `/opt/intel/`. Se non ottieni l'output previsto, assicurati di aver fornito lo script `vars.sh` di Intel MPI.

1. Per confermare che i componenti software EFA e Libfabric siano stati installati correttamente, emetti il comando seguente.

   ```
   $ fi_info -p efa -t FI_EP_RDM
   ```

   Il comando deve restituire informazioni sulle interfacce EFA Libfabric. L'esempio seguente mostra l'output del comando.

   ```
   provider: efa
       fabric: EFA-fe80::94:3dff:fe89:1b70
       domain: efa_0-rdm
       version: 2.0
       type: FI_EP_RDM
       protocol: FI_PROTO_EFA
   ```

## Fase 8: installazione dell'applicazione HPC
<a name="efa-start-hpc-app"></a>

Installa l'applicazione HPC sull'istanza temporanea. La procedura di installazione varia in base alla specifica applicazione HPC. Per ulteriori informazioni, consulta [Gestisci il software sulla tua AL2 istanza](https://docs.aws.amazon.com/linux/al2/ug/managing-software.html) nella *Guida per l'utente di Amazon Linux 2*.

**Nota**  
Per le istruzioni di installazione, consulta la documentazione dell'applicazione HPC.

## Fase 9: creazione di un'AMI abilitata per EFA
<a name="efa-start-ami"></a>

Dopo aver installato i componenti software necessari, procedi con la creazione di un'AMI che puoi riutilizzare per avviare le istanze abilitate per EFA.

**Per creare un'AMI dall'istanza temporanea**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Nel riquadro di navigazione, scegliere **Instances (Istanze)**.

1. Seleziona l'istanza temporanea creata e seleziona **Actions** (Operazioni), **Image** (Immagine), **Create Image** (Crea immagine).

1. Per **Create image (Crea immagine)**, effettua le seguenti operazioni:

   1. In **Image name (Nome immagine)**, immettere un nome descrittivo per l'AMI.

   1. (Facoltativo) In **Image description (Descrizione immagine**), inserire una breve descrizione dell'AMI.

   1. Scegliere **Create Image (Crea immagine)**.

1. Nel pannello di navigazione, scegli **AMIs**.

1. Individuare nell'elenco l'AMI creata. Prima di procedere con la fase seguente, attendi che lo stato passi da `pending` a `available`.

## Fase 10: avvio delle istanze abilitate per EFA in un gruppo di collocazione cluster
<a name="efa-start-instances"></a>

Avvia le istanze abilitate per EFA in un gruppo di collocazione cluster tramite l'AMI abilitata per EFA creata nella **Fase 7** e il gruppo di sicurezza abilitato per EFA creato nella **Fase 1**.

**Nota**  
Avviare le istanze abilitate per l'EFA in un gruppo di collocazione cluster non è un requisito in assoluto. È tuttavia consigliabile eseguire le istanze abilitate per EFA in un gruppo di collocazione cluster perché le istanze vengono così avviate in gruppo a bassa latenza in un'unica zona di disponibilità.
Per garantire che la capacità sia disponibile durante il dimensionamento delle istanze del cluster, è possibile creare una prenotazione della capacità per il gruppo di collocazione cluster. Per ulteriori informazioni, consulta [Utilizza la prenotazione della capacità con i gruppi di posizionamento cluster](cr-cpg.md).

**Per avviare un'istanza**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Nel pannello di navigazione, scegli **Instances** (Istanze) e quindi scegli **Launch instances** (Avvia istanze) per aprire la nuova procedura guidata di avvio dell'istanza.

1. (*Opzionale*) Nella sezione **Name and tags** (Nome e tag), fornisci un nome per l'istanza, ad esempio `EFA-instance`. Il nome viene assegnato all'istanza come tag di risorsa (`Name=EFA-instance`).

1. Nella sezione **Immagini dell'applicazione e del sistema operativo**AMIs, scegli **Mio**, quindi seleziona l'AMI che hai creato nel passaggio precedente.

1. Nella sezione **Instance type** (Tipo di istanza), seleziona un [tipo di istanza supportato](efa.md#efa-instance-types).

1. Nella sezione **Key pair** (Coppia di chiavi), seleziona la coppia di chiavi da utilizzare per l'istanza.

1. Nella sezione **Network settings** (Impostazioni di rete), scegli **Edit** (Modifica) e quindi esegui le operazioni qui descritte:

   1. Per **Subnet** (Sottorete) seleziona la subnet in cui avviare l'istanza. Se non selezioni una sottorete, non puoi abilitare l'istanza per l'EFA.

   1. Per **Firewall (security groups)** (Firewall [gruppi di sicurezza]), scegli **Select existing security group** (Seleziona gruppo di sicurezza esistente) e quindi seleziona il gruppo di sicurezza creato nella fase precedente.

   1. Espandi la sezione **Configurazione avanzata**.

      Come **Interfaccia di rete 1**, seleziona **Indice della scheda di rete = 0**, **Indice dispositivo = 0** e **Tipo di interfaccia = EFA con ENA**.

      (*Facoltativo*) Se utilizzi un'istanza multi-scheda, come `p4d.24xlarge` o `p5.48xlarge`, per ogni interfaccia di rete aggiuntiva richiesta scegli **Aggiungi interfaccia di rete**, seleziona l'indice successivo inutilizzato come **Indice della scheda di rete** e poi seleziona **Indice dispositivo = 1** e **Tipo di interfaccia = EFA con ENA** o **solo EFA**.

1. (*Opzionale*) Nella sezione **Storage** (Archiviazione), configura i volumi secondo necessità.

1. Nella sezione **Advanced details** (Dettagli avanzati), per **Placement group name** (Nome del gruppo di collocazione), seleziona il gruppo di collocazione cluster in cui avviare le istanze. Se occorre creare un nuovo gruppo di collocazione cluster, scegli **Create new placement group** (Crea nuovo gruppo di collocazione).

1. Nel pannello **Summary** (Riepilogo) a destra, per **Number of instances** (Numero di istanze), inserisci il numero di istanze abilitate per EFA che desideri avviare, quindi seleziona **Launch instance** (Avvia istanza).

## Fase 11: terminare l'istanza temporanea
<a name="efa-start-terminate"></a>

A questo punto l'istanza avviata alla [Fase 2](#efa-start-tempinstance) non è più necessaria. È possibile terminare l'istanza per evitare di incorrere in costi aggiuntivi.

**Per terminare l'istanza temporanea**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Nel riquadro di navigazione, scegliere **Instances (Istanze)**.

1. Seleziona l'istanza temporanea creata, quindi seleziona **Operazioni**, **Stato istanza**, **Termina (elimina) istanza**.

1. Quando viene richiesta la conferma, seleziona **Termina (elimina)**.

## Fase 12: abilitazione di SSH senza password
<a name="efa-start-passwordless"></a>

Per consentire l'esecuzione delle applicazioni in tutte le istanze del cluster, è necessario abilitare l'accesso SSH senza password dal nodo leader ai nodi membro. Il nodo principale è l'istanza da cui vengono eseguite le applicazioni. Le restanti istanze del cluster sono i nodi membro.

**Per abilitare SSH senza password tra le istanze del cluster**

1. Selezionare un'istanza nel cluster come nodo principale e connettersi a essa.

1. Disabilita `strictHostKeyChecking` e abilita `ForwardAgent` sul nodo principale. Aprire il file `~/.ssh/config` utilizzando qualsiasi editor di testo e aggiungere il seguente script.

   ```
   Host *
       ForwardAgent yes
   Host *
       StrictHostKeyChecking no
   ```

1. Generare una coppia di chiavi RSA.

   ```
   $ ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
   ```

   La coppia di chiavi viene creata nella directory `$HOME/.ssh/`.

1. Modifica le autorizzazioni della chiave privata sul nodo principale.

   ```
   $ chmod 600 ~/.ssh/id_rsa
   chmod 600 ~/.ssh/config
   ```

1. Aprire `~/.ssh/id_rsa.pub` utilizzando l'editor di testo preferito e copiare la chiave.

1. Per ogni nodo membro nel cluster, procedere nel modo seguente:

   1. Collegarsi all'istanza.

   1. Aprire `~/.ssh/authorized_keys` utilizzando qualsiasi editor di testo e aggiungere la chiave pubblica copiata in precedenza.

1. Per verificare che SSH senza password funzioni come previsto, connettersi al nodo leader ed eseguire il seguente comando.

   ```
   $ ssh member_node_private_ip
   ```

   La connessione al nodo membro non dovrebbe richiedere una chiave o una password.