

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Commencez avec EFA et MPI pour les charges de travail HPC sur Amazon EC2
<a name="efa-start"></a>

Ce didacticiel vous permet de lancer un cluster d’instances EFA et compatible MPI pour les charges de travail HPC.

**Note**  
Les instances `u7i-12tb.224xlarge`, `u7in-16tb.224xlarge`, `u7in-24tb.224xlarge` et `u7in-32tb.224xlarge` peuvent exécuter jusqu’à 128 processus MPI parallèles avec Open MPI ou jusqu’à 256 processus MPI parallèles avec Intel MPI.

**Topics**
+ [Étape 1 : Préparer un groupe de sécurité activé pour les EFA](#efa-start-security)
+ [Étape 2 : Lancer une instance temporaire](#efa-start-tempinstance)
+ [Étape 3 : Installer le logiciel EFA](#efa-start-enable)
+ [Étape 4 : (*Facultatif*) Activer Open MPI 5](#efa-start-ompi5)
+ [Étape 5 : (*Facultatif*) Installer Intel MPI](#efa-start-impi)
+ [Étape 6 : Désactiver la protection ptrace](#efa-start-ptrace)
+ [Étape 7. Confirmer l’installation](#efa-start-test)
+ [Étape 8 : Installer votre application HPC](#efa-start-hpc-app)
+ [Étape 9 : Créer une AMI activée pour EFA](#efa-start-ami)
+ [Étape 10 : Lancer des instances activées pour EFA dans un groupe de placement du cluster](#efa-start-instances)
+ [Étape 11 : Résilier l’instance temporaire](#efa-start-terminate)
+ [Étape 12 : Activer SSH sans mot de passe](#efa-start-passwordless)

## Étape 1 : Préparer un groupe de sécurité activé pour les EFA
<a name="efa-start-security"></a>

Un EFA a besoin d’un groupe de sécurité qui autorise tout le trafic entrant et sortant vers et depuis le groupe de sécurité proprement dit. La procédure suivante crée un groupe de sécurité qui autorise tout le trafic entrant et sortant à destination et en provenance de lui-même, et qui autorise le trafic SSH entrant depuis n'importe quelle IPv4 adresse pour la connectivité SSH.

**Important**  
Ce groupe de sécurité n’est destiné qu’à des fins de test. Pour vos environnements de production, nous vous recommandons de créer une règle SSH entrante qui autorise le trafic uniquement à partir de l’adresse IP à partir de laquelle vous vous connectez, telle que l’adresse IP de votre ordinateur ou une plage d’adresses IP de votre réseau local.

Pour d’autres scénarios, consultez [Règles de groupe de sécurité pour différents cas d’utilisation](security-group-rules-reference.md).

**Pour créer un groupe de sécurité activé pour EFA**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le panneau de navigation, choisissez **Security Groups (Groupes de sécurité)**, puis **Create security group (Créer un groupe de sécurité)**.

1. Dans la fenêtre **Create security group (Créer un groupe de sécurité)**, procédez comme suit :

   1. Pour **Nom du groupe de sécurité**, saisissez un nom descriptif pour le groupe de sécurité, tel que `EFA-enabled security group`.

   1. (Facultatif) Pour **Description**, saisissez une brève description du groupe de sécurité.

   1. Pour **VPC**, sélectionnez le VPC dans lequel vous prévoyez de lancer vos instances activées pour EFA.

   1. Sélectionnez **Create security group** (Créer un groupe de sécurité).

1. Sélectionnez le groupe de sécurité que vous avez créé et dans l’onglet **Details** (Détails), copiez le **Security group ID** (ID du groupe de sécurité).

1. En conservant la sélection du groupe de sécurité, choisissez **Actions**, **Edit inbound rules** (Modifier les règles entrantes), puis procédez comme suit :

   1. Choisissez **Ajouter une règle**.

   1. Pour **Type**, sélectionnez **Tout le trafic**.

   1. Pour **Source type** (Type de source), choisissez **Custom** (Personnalisée) et collez l’ID du groupe de sécurité que vous avez copié dans le champ.

   1. Choisissez **Ajouter une règle**.

   1. Pour **Type**, choisissez **SSH**.

   1. Pour **Type de source**, choisissez **N'importe où- IPv4**.

   1. Sélectionnez **Enregistrer les règles**.

1. En conservant la sélection du groupe de sécurité, choisissez **Actions**, **Edit outbound rules** (Modifier les règles sortantes), puis procédez comme suit :

   1. Choisissez **Ajouter une règle**.

   1. Pour **Type**, sélectionnez **Tout le trafic**.

   1. Pour **Destination type** (Type de destination), choisissez **Custom** (Personnalisée) et collez l’ID du groupe de sécurité que vous avez copié dans le champ.

   1. Sélectionnez **Enregistrer les règles**.

## Étape 2 : Lancer une instance temporaire
<a name="efa-start-tempinstance"></a>

Lancez une instance temporaire que vous pouvez utiliser pour installer et configurer les composants logiciels EFA. Vous utilisez cette instance pour créer une AMI activée pour EFA depuis laquelle vous pouvez lancer vos instances activées pour EFA. 

**Pour lancer une instance temporaire**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le volet de navigation, choisissez **Instances**, puis **Launch Instances** (Lancer des instances) pour ouvrir le nouvel assistant de lancement d’instance.

1. (*Facultatif*) Dans la section **Name and tags** (Noms et identifications), fournissez un nom pour l’instance, tel que `EFA-instance`. Le nom est attribué à l’instance en tant qu’identification de ressource (`Name=EFA-instance`).

1. Dans la section **Application and OS Images** (Images d’applications et de systèmes d’exploitation), sélectionnez une AMI pour l’un des [systèmes d’exploitation pris en charge](efa.md#efa-os).

1. Dans la section **Instance type** (Type d’instance), sélectionnez un [type d’instance pris en charge](efa.md#efa-instance-types).

1. Dans la section **Key pair** (Paire de clés), sélectionnez la paire de clés à utiliser pour l’instance.

1. Dans la section **Network settings** (Paramètres réseau), choisissez **Edit** (Modifier), puis procédez comme suit :

   1. Pour **Sous-réseau**, choisissez le sous-réseau dans lequel lancer l’instance.
**Important**  
Vous devez sélectionner un sous-réseau. Si vous ne sélectionnez pas de sous-réseau, vous ne pouvez pas activer l’instance pour EFA.

   1. Pour **Firewall (security groups)** (Pare-feu (groupes de sécurité)), choisissez **Sélectionner un groupe de sécurité existant** (Select existing security group), puis sélectionnez le groupe de sécurité que vous avez créé à l’étape précédente.

   1. Développez la section **Configuration du réseau avancée**.

      Pour **l’interface réseau 1**, sélectionnez **Index de la carte réseau = 0**, **Index du périphérique = 0** et **Type d’interface = EFA avec ENA**.

      (Facultatif) Si vous utilisez un type d’instance multicarte, tel que `p4d.24xlarge` ou`p5.48xlarge`, pour chaque interface réseau supplémentaire requise, choisissez **Ajouter une interface réseau**, pour Index de **carte réseau, sélectionnez le prochain index** non utilisé, puis sélectionnez Index du **périphérique = 1 et Type d’interface =** **EFA avec ENA ou **EFA**** uniquement.

1. Dans la section **Storage** (Stockage), configurez les volumes selon vos besoins.

1. Dans le panneau **Summary** (Récapitulatif) à droite, choisissez **Launch instance** (Lancer l’instance).

**Note**  
Envisagez d'exiger l'utilisation IMDSv2 de l'instance temporaire ainsi que de l'AMI que vous allez créer à l'[étape 9](#efa-start-ami), sauf si vous [l'avez déjà définie IMDSv2 comme valeur par défaut pour le compte](configuring-IMDS-new-instances.md#set-imdsv2-account-defaults). Pour plus d'informations sur les étapes IMDSv2 de configuration, consultez[Configurer les options de métadonnées d’instance pour les nouvelles instances](configuring-IMDS-new-instances.md). 

## Étape 3 : Installer le logiciel EFA
<a name="efa-start-enable"></a>

Installez le noyau activé pour EFA, les pilotes EFA, Libfabric et la pile Open MPI requis pour prendre en charge EFA sur votre instance temporaire.

Les étapes varient selon que vous avez l’intention d’utiliser EFA avec Open MPI ou avec Intel MPI, ou avec Open MPI et Intel MPI.

**Note**  
Certains systèmes d’exploitation peuvent ne pas être compatibles avec Intel MPI. Si vous utilisez Intel MPI, reportez-vous à la [documentation Intel MPI](https://www.intel.com/content/www/us/en/developer/articles/system-requirements/mpi-library-system-requirements.html) pour vérifier si votre système d’exploitation est compatible avec celui-ci.

**Pour installer le logiciel EFA**

1. Connectez-vous à l’instance que vous avez lancée. Pour de plus amples informations, veuillez consulter [Se connecter à votre instance Linux à l’aide de SSH](connect-to-linux-instance.md).

1. Pour vous assurer que tous vos packages logiciels sont mis à jour, effectuez une mise à jour logicielle rapide sur votre instance. Ce processus peut prendre quelques minutes.
   + Amazon Linux 2023, Amazon Linux 2, RHEL 8/9, Rocky Linux 8/9

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

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

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

1. Redémarrez l’instance et reconnectez-vous à celle-ci.

1. Téléchargez les fichiers d’installation du logiciel EFA. Les fichiers d’installation du logiciel sont packagés dans un fichier d’archive compressé (`.tar.gz`). Pour télécharger la version *stable* la plus récente, utilisez la commande suivante.

   Vous pouvez aussi obtenir la dernière version en remplaçant le numéro de version par `latest` dans la commande ci-dessus.

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

1. (*Facultatif*) Vérifiez l’authenticité et l’intégrité du fichier tarball EFA (`.tar.gz`).

   Nous vous recommandons de le faire pour vérifier l’identité de l’éditeur du logiciel et pour vérifier que le fichier n’a pas été modifié ou endommagé depuis sa publication. Si vous ne souhaitez pas vérifier le fichier d’archive, ignorez cette étape.
**Note**  
Sinon, si vous préférez vérifier le fichier tarball en utilisant plutôt une SHA256 somme de contrôle MD5 ou, consultez. [Vérification du programme d’installation EFA à l’aide d’un total de contrôle](efa-verify.md)

   1. Téléchargez la clé publique GPG et importez-la dans votre porte-clés.

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

      La commande doit renvoyer une valeur clé. Notez la valeur clé, car vous en aurez besoin lors de l’étape suivante.

   1. Vérifiez l’empreinte digitale de la clé GPG. Exécutez la commande suivante et spécifiez la valeur clé que vous avez obtenue à l’étape précédente.

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

      La commande doit renvoyer une empreinte digitale identique à `4E90 91BC BB97 A96B 26B1 5E59 A054 80B1 DD2D 3CCC`. Si l’empreinte digitale ne correspond pas, n’exécutez pas le script d’installation EFA et contactez Support.

   1. Téléchargez le fichier SIGNATURE et vérifiez la signature du fichier d’archive EFA.

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

      Voici un exemple de sortie.

      ```
      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
      ```

      Si le résultat inclut `Good signature` et que l’empreinte digitale correspond à l’empreinte digitale renvoyée à l’étape précédente, passez à l’étape suivante. Si ce n’est pas le cas, n’exécutez pas le script d’installation EFA et contactez Support.

1. Procédez à l’extraction des fichiers à partir du fichier compressé `.tar.gz` et accédez au répertoire extrait.

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

1. (*Facultatif*) Vérifiez les signatures de chaque package lors de l'installation.

   À partir du programme d'installation EFA 1.48.0, le programme d'installation inclut des packages RPM et DEB individuels signés GPG. Pour vérifier l'authenticité et l'intégrité de chaque package lors de l'installation, utilisez le `--check-signatures` drapeau. Lorsque vous activez cet indicateur, le programme d'installation vérifie d'abord toutes les signatures de package et ne procède à l'installation que si chaque package réussit la vérification. Si la vérification d'un package échoue, le programme d'installation se ferme immédiatement sans rien installer.

   1. Téléchargez la clé publique GPG.

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

   1. Exportez le chemin clé. Ensuite, à l'étape suivante, ajoutez `--check-signatures` à la commande d'installation et utilisez-la à la `sudo -E` place de `sudo` pour conserver la variable d'environnement.

      ```
      $ export EFA_INSTALLER_KEY=$(pwd)/aws-efa-installer.key
      ```

   Sur les systèmes basés sur le RPM (Amazon Linux, RHEL, Rocky Linux et SUSE), le programme d'installation vérifie chaque RPM utilisé. `rpm --checksig` Sur les systèmes basés sur DEB (Ubuntu, Debian), l'installateur vérifie chaque DEB à l'aide de la vérification de signature GPG.

   Si la vérification d'un package échoue, l'installation est immédiatement interrompue, protégeant ainsi votre système contre les packages défectueux ou malveillants.
**Note**  
Le `--check-signatures` drapeau est facultatif. Sans cela, le programme d'installation n'effectue pas de vérification individuelle des signatures.

1. Installez le logiciel EFA. Effectuez l’une des actions suivantes en fonction de votre cas d’utilisation.
**Note**  
Si vous avez effectué l'étape facultative précédente pour configurer la vérification de la signature du package, ajoutez-le `--check-signatures` à la commande d'installation et utilisez-le à la `sudo -E` place de`sudo`. Par exemple : `sudo -E ./efa_installer.sh -y --check-signatures`.
**Note**  
**EFA ne prend pas en charge NVIDIA GPUDirect avec SUSE Linux.** Si vous utilisez SUSE Linux, vous devez également spécifier l’option `--skip-kmod` pour empêcher l’installation de kmod. Par défaut, SUSE Linux n'autorise pas les modules out-of-tree du noyau.

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

   Si vous avez l’intention d’utiliser EFA avec Open MPI et Intel MPI, vous devez installer le logiciel EFA avec Libfabric et Open MPI, et vous **devez réaliser l’Étape 5 : Installer Intel MPI**.

   Pour installer le logiciel EFA avec Libfabric et Open MPI, exécutez la commande suivante.

**Note**  
Depuis EFA 1.30.0, Open MPI 4.1 et Open MPI 5 sont installés par défaut. Vous pouvez éventuellement spécifier la version d’Open MPI que vous souhaitez installer. Pour installer uniquement Open MPI 4.1, incluez`--mpi=openmpi4`. Pour installer uniquement Open MPI 5, incluez `--mpi=openmpi5`. Pour installer les deux, omettez l’option `--mpi`.

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

   Libfabric est installé dans `/opt/amazon/efa`. Open MPI 4.1 est installé sur. `/opt/amazon/openmpi` Open MPI 5 est installé dans `/opt/amazon/openmpi5`.

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

   Si vous avez l’intention d’utiliser EFA avec Open MPI uniquement, vous devez installer le logiciel EFA avec Libfabric et Open MPI, et vous pouvez **ignorer l’Étape 5 : Installer Intel MPI**. Pour installer le logiciel EFA avec Libfabric et Open MPI, exécutez la commande suivante.

**Note**  
Depuis EFA 1.30.0, Open MPI 4.1 et Open MPI 5 sont installés par défaut. Vous pouvez éventuellement spécifier la version d’Open MPI que vous souhaitez installer. Pour installer uniquement Open MPI 4.1, incluez`--mpi=openmpi4`. Pour installer uniquement Open MPI 5, incluez `--mpi=openmpi5`. Pour installer les deux, omettez l’option `--mpi`.

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

   Libfabric est installé dans `/opt/amazon/efa`. Open MPI 4.1 est installé sur. `/opt/amazon/openmpi` Open MPI 5 est installé dans `/opt/amazon/openmpi5`.

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

   Si vous avez l’intention d’utiliser EFA uniquement avec Intel MPI, vous pouvez installer le logiciel EFA sans Libfabric ni Open MPI. Dans ce cas, Intel MPI utilise son Libfabric intégré. Si vous optez pour cette solution, vous **devez réaliser l’Étape 5 : Installer Intel MPI**. 

   Pour installer le logiciel EFA sans Libfabric ni Open MPI, exécutez la commande suivante.

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

------

1. Si le programme d’installation d’EFA vous invite à redémarrer l’instance, faites-le et reconnectez-vous à l’instance. Sinon, déconnectez-vous de l’instance, puis reconnectez-vous pour terminer l’installation.

1. Supprimez l’archive (tarball) non compressée et l’archive elle-même. Sinon, elles seront incluses dans l’AMI compatible EFA que vous créez, augmentant ainsi sa taille.

## Étape 4 : (*Facultatif*) Activer Open MPI 5
<a name="efa-start-ompi5"></a>

**Note**  
Vous ne devez effectuer cette étape que si vous avez l’intention d’utiliser Intel MPI 5.

Depuis EFA 1.30.0, Open MPI 4.1 et Open MPI 5 sont installés par défaut. Vous pouvez également choisir d'installer uniquement Open MPI 4.1 ou Open MPI 5.

Si vous avez choisi d’installer Open MPI 5 à l’**Étape 3 : Installer le logiciel EFA** et que vous avez l’intention de l’utiliser, vous devez effectuer les étapes suivantes pour l’activer.

**Activation d’Open MPI 5**

1. Ajoutez Open MPI 5 à la variable d’environnement PATH.

   ```
   $ module load openmpi5
   ```

1. Vérifiez qu’Open MPI 5 est activé pour être utilisé.

   ```
   $ which mpicc
   ```

   La commande doit renvoyer le répertoire d’installation Open MPI 5 : `/opt/amazon/openmpi5`.

1. (*Facultatif*) Pour vous assurer qu’Open MPI 5 est ajouté à la variable d’environnement PATH à chaque démarrage de l’instance, procédez comme suit :

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

   Ajoutez `module load openmpi5` à `/home/username/.bashrc` et `/home/username/.bash_profile`.

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

   Ajoutez `module load openmpi5` à `/home/username/.cshrc`.

------

Si vous devez supprimer Open MPI 5 de la variable d’environnement PATH, exécutez la commande suivante et supprimez-la des scripts de démarrage du shell.

```
$ module unload openmpi5
```

## Étape 5 : (*Facultatif*) Installer Intel MPI
<a name="efa-start-impi"></a>

**Important**  
Vous ne devez effectuer cette étape que si vous avez l’intention d’utiliser Intel MPI. Si vous avez l’intention d’utiliser uniquement Open MPI, passez cette étape. 

Intel MPI nécessite une installation et une configuration de variable d’environnement supplémentaires.

**Prérequis**  
Vérifiez que l’utilisateur qui exécute les étapes suivantes dispose des autorisations sudo.

**Pour installer Intel MPI**

1. Pour télécharger le script d’installation d’Intel MPI, procédez comme suit :

   1. Visitez le [site web d’Intel](https://www.intel.com/content/www/us/en/developer/articles/tool/oneapi-standalone-components.html#mpi).

   1. Dans la section **Intel MPI Library** (Bibliothèque MPI Intel) de la page web, choisissez le lien du programme d’installation **Offline** (Hors ligne) de **Intel MPI Library for Linux**.

1. Exécutez le script d’installation que vous avez téléchargé à l’étape précédente.

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

1. Dans le programme d’installation, choisissez **Accept & install** (Accepter et installer).

1. Lisez le programme Intel Improvement Program, choisissez l’option appropriée, puis choisissez **Begin Installation** (Démarrer l’installation).

1. Une fois l’installation terminée, choisissez **Fermer**.

1. Par défaut, Intel MPI utilise sa bibliothèque embarquée (interne) Libfabric. Vous pouvez configurer Intel MPI pour qu’il utilise plutôt la bibliothèque Libfabric livrée avec le programme d’installation d’EFA. Généralement, le programme d’installation d’EFA est livré avec une version de Libfabric plus récente que celle d’Intel MPI. Dans certains cas, la bibliothèque Libfabric fournie avec le programme d’installation d’EFA est plus performante que celle d’Intel MPI. Pour configurer Intel MPI afin qu’il utilise la bibliothèque Libfabric fournie avec le programme d’installation d’EFA, effectuez l’une des opérations suivantes en fonction de votre shell.

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

   Ajoutez la déclaration suivante à `/home/username/.bashrc` et `/home/username/.bash_profile`.

   ```
   export I_MPI_OFI_LIBRARY_INTERNAL=0
   ```

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

   Ajoutez la déclaration suivante à `/home/username/.cshrc`.

   ```
   setenv I_MPI_OFI_LIBRARY_INTERNAL 0
   ```

------

1. Ajoutez la commande **source** suivante à votre script shell afin d’extraire le script `vars.sh` du répertoire d’installation pour configurer l’environnement du compilateur à chaque démarrage de l’instance. Effectuez l’une des actions suivantes en fonction de votre shell.

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

   Ajoutez la déclaration suivante à `/home/username/.bashrc` et `/home/username/.bash_profile`.

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

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

   Ajoutez la déclaration suivante à `/home/username/.cshrc`.

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

------

1. Par défaut, si EFA n'est pas disponible en raison d'une mauvaise configuration, Intel MPI utilise par défaut la pile TCP/IP réseau, ce qui peut ralentir les performances des applications. Vous pouvez empêcher cela en définissant `I_MPI_OFI_PROVIDER` sur `efa`. Cela entraîne l’échec d’Intel MPI avec l’erreur suivante si l’EFA n’est pas disponible :

   ```
   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:
   ```

   Effectuez l’une des actions suivantes en fonction de votre shell.

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

   Ajoutez la déclaration suivante à `/home/username/.bashrc` et `/home/username/.bash_profile`.

   ```
   export I_MPI_OFI_PROVIDER=efa
   ```

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

   Ajoutez la déclaration suivante à `/home/username/.cshrc`.

   ```
   setenv I_MPI_OFI_PROVIDER efa
   ```

------

1. Par défaut, Intel MPI n’imprime pas d’informations de débogage. Vous pouvez spécifier différents niveaux de verbosité pour contrôler les informations de débogage. Les valeurs possibles (dans l’ordre de la quantité de détails qu’elles fournissent) sont : `0` (par défaut), `1`, `2`, `3`, `4`, `5`. Le niveau `1` et les niveaux supérieurs impriment le résultat de `libfabric version` et de `libfabric provider`. Utilisez `libfabric version` pour vérifier si Intel MPI utilise la bibliothèque Libfabric interne ou celle fournie avec le programme d’installation d’EFA. S’il utilise la bibliothèque Libfabric interne, la version est suffixée par `impi`. `libfabric provider`À utiliser pour vérifier si Intel MPI utilise EFA ou le TCP/IP réseau. S’il utilise EFA, la valeur est `efa`. S’il utilise TCP/IP, la valeur est `tcp;ofi_rxm`.

   Pour activer les informations de débogage, effectuez l’une des opérations suivantes en fonction de votre shell.

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

   Ajoutez la déclaration suivante à `/home/username/.bashrc` et `/home/username/.bash_profile`.

   ```
   export I_MPI_DEBUG=value
   ```

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

   Ajoutez la déclaration suivante à `/home/username/.cshrc`.

   ```
   setenv I_MPI_DEBUG value
   ```

------

1. Par défaut, Intel MPI utilise la mémoire partagée du système d’exploitation (`shm`) pour la communication intra-nœud, et elle utilise Libfabric (`ofi`) uniquement pour la communication inter-nœuds. En général, cette configuration fournit les meilleures performances. Toutefois, dans certains cas, la structure shm d’Intel MPI peut provoquer le blocage indéfini de certaines applications.

   Pour résoudre ce problème, vous pouvez forcer Intel MPI à utiliser Libfabric pour les communications intra-nœud et inter-nœuds. Pour ce faire, effectuez l’une des opérations suivantes en fonction de votre shell.

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

   Ajoutez la déclaration suivante à `/home/username/.bashrc` et `/home/username/.bash_profile`.

   ```
   export I_MPI_FABRICS=ofi
   ```

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

   Ajoutez la déclaration suivante à `/home/username/.cshrc`.

   ```
   setenv I_MPI_FABRICS ofi
   ```

------
**Note**  
Le fournisseur Libfabric d’EFA utilise la mémoire partagée du système d’exploitation pour la communication intra-nœud. Cela signifie que la définition de `I_MPI_FABRICS` sur `ofi` donne des performances similaires à la configuration par défaut `shm:ofi`.

1. Déconnectez-vous de l’instance, puis reconnectez-vous.

Si vous ne souhaitez plus utiliser Intel MPI, supprimez les variables d’environnement des scripts de démarrage de shell.

## Étape 6 : Désactiver la protection ptrace
<a name="efa-start-ptrace"></a>

Pour améliorer les performances de votre application HPC, Libfabric utilise la mémoire locale de l’instance pour les communications interprocessus lorsque les processus s’exécutent sur la même instance. 

La fonction de mémoire partagée utilise Cross Memory Attach (CMA), non pris en charge avec la *protection ptrace*. Si vous utilisez une distribution Linux dans laquelle la protection ptrace est activée par défaut, telle que Ubuntu, vous devez la désactiver. Si la protection ptrace n’est pas activée par défaut dans votre distribution Linux, ignorez cette étape.

**Pour désactiver la protection ptrace**  
Effectuez l’une des actions suivantes :
+ Pour désactiver temporairement la protection ptrace à des fins de test, exécutez la commande suivante.

  ```
  $ sudo sysctl -w kernel.yama.ptrace_scope=0
  ```
+ Pour désactiver définitivement la protection ptrace, ajoutez `kernel.yama.ptrace_scope = 0`à `/etc/sysctl.d/10-ptrace.conf` et redémarrez l’instance.

## Étape 7. Confirmer l’installation
<a name="efa-start-test"></a>

**Pour confirmer la réussite de l’installation**

1. Pour confirmer que MPI a été installé avec succès, exécutez la commande suivante :

   ```
   $ which mpicc
   ```
   + Pour Open MPI, le chemin renvoyé doit inclure `/opt/amazon/`.
   + Pour Intel MPI, le chemin renvoyé doit inclure`/opt/intel/`. Si vous n’obtenez pas le résultat attendu, assurez-vous d’avoir obtenu le script Intel MPI `vars.sh`.

1. Pour vérifier que les composants du logiciel EFA et Libfabric ont été correctement installés, exécutez la commande suivante.

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

   La commande doit renvoyer des informations sur les interfaces EFA Libfabric. L’exemple suivant illustre la sortie de la commande.

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

## Étape 8 : Installer votre application HPC
<a name="efa-start-hpc-app"></a>

Installez l’application HPC sur l’instance temporaire. La procédure d’installation varie selon l’application HPC. Pour plus d'informations, consultez la section [Gérer le logiciel sur votre AL2 instance](https://docs.aws.amazon.com/linux/al2/ug/managing-software.html) dans le *guide de l'utilisateur Amazon Linux 2*.

**Note**  
Reportez-vous à la documentation de votre application HPC pour obtenir des instructions d’installation.

## Étape 9 : Créer une AMI activée pour EFA
<a name="efa-start-ami"></a>

Une fois que vous avez installé les composants logiciels requis, vous devez créer une AMI que vous pouvez réutiliser pour lancer vos instances activées pour EFA.

**Pour créer une AMI à partir de votre instance temporaire**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le panneau de navigation, choisissez **Instances**.

1. Sélectionnez l’instance temporaire que vous avez créée et choisissez **Actions**, **Image**, **Créer une image**.

1. Pour **Créer une image**, procédez comme suit :

   1. Pour **Nom de l’image**, entrez un nom descriptif pour l’AMI.

   1. (Facultatif) Pour **Description de l’image**, saisissez une brève description de l’objectif de l’AMI.

   1. Choisissez **Create image (Créer une image)**.

1. Dans le panneau de navigation, sélectionnez **AMIs**.

1. Recherchez l’AMI que vous avez créée dans la liste. Attendez que le statut passe de `pending` à `available` avant de poursuivre avec l’étape suivante.

## Étape 10 : Lancer des instances activées pour EFA dans un groupe de placement du cluster
<a name="efa-start-instances"></a>

Lancez vos instances activées pour EFA dans un groupe de placement de cluster à l'aide de l'AMI activée pour EFA que vous avez créée à l'**Étape 7** et le groupe de sécurité activé pour EFA que vous avez créé à l'**Étape 1**.

**Note**  
Vous ne devez pas impérativement lancer vos instances EFA dans un groupe de placement de cluster. Toutefois, nous vous recommandons d’exécuter vos instances activées pour EFA dans un groupe de placement de cluster, car cela lance celles-ci dans un groupe à faible latence au sein d’une zone de disponibilité unique.
Pour vous assurer que la capacité est disponible lorsque vous mettez à l’échelle les instances de votre cluster, vous pouvez créer une réserve de capacité pour votre groupe de placement du cluster. Pour de plus amples informations, veuillez consulter [Utilisation des réserves de capacité avec les groupes de placement du cluster](cr-cpg.md).

**Pour lancer une instance**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le volet de navigation, choisissez **Instances**, puis **Launch Instances** (Lancer des instances) pour ouvrir le nouvel assistant de lancement d’instance.

1. (*Facultatif*) Dans la section **Name and tags** (Noms et identifications), fournissez un nom pour l’instance, tel que `EFA-instance`. Le nom est attribué à l’instance en tant qu’identification de ressource (`Name=EFA-instance`).

1. Dans la section **Images de l'application et du système d'exploitation**AMIs, choisissez **My**, puis sélectionnez l'AMI que vous avez créée à l'étape précédente.

1. Dans la section **Instance type** (Type d’instance), sélectionnez un [type d’instance pris en charge](efa.md#efa-instance-types).

1. Dans la section **Key pair** (Paire de clés), sélectionnez la paire de clés à utiliser pour l’instance.

1. Dans la section **Network settings** (Paramètres réseau), choisissez **Edit** (Modifier), puis procédez comme suit :

   1. Pour **Sous-réseau**, choisissez le sous-réseau dans lequel lancer l’instance.
**Important**  
Vous devez sélectionner un sous-réseau. Si vous ne sélectionnez pas de sous-réseau, vous ne pouvez pas activer l’instance pour EFA.

   1. Pour **Firewall (security groups)** (Pare-feu (groupes de sécurité)), choisissez **Sélectionner un groupe de sécurité existant** (Select existing security group), puis sélectionnez le groupe de sécurité que vous avez créé à l’étape précédente.

   1. Développez la section **Configuration du réseau avancée**.

      Pour **l’interface réseau 1**, sélectionnez **Index de la carte réseau = 0**, **Index du périphérique = 0** et **Type d’interface = EFA avec ENA**.

      (*Facultatif*) Si vous utilisez un type d’instance multicarte, tel que `p4d.24xlarge` ou`p5.48xlarge`, pour chaque interface réseau supplémentaire requise, choisissez **Ajouter une interface réseau**, pour Index de **carte réseau, sélectionnez le prochain index** non utilisé, puis sélectionnez Index du **périphérique = 1 et Type d’interface =** **EFA avec ENA ou **EFA**** uniquement.

1. (*Facultatif*) Dans la section **Storage** (Stockage), configurez les volumes selon vos besoins.

1. Dans la section **Advanced details** (Détails avancés), pour **Placement group name** (Nom du groupe de placement), sélectionnez le groupe de placement du cluster dans lequel lancer les instances. Si vous avez besoin de créer un groupe de placement du cluster, choisissez **Create new placement group** (Créer un groupe de placement).

1. Dans le panneau **Summary** (Récapitulatif) à droite, pour **Number of instances** (Nombre d’instances), saisissez le nombre d’instances activées pour EFA que vous souhaitez lancer, puis choisissez **Launch instance** (Lancer l’instance).

## Étape 11 : Résilier l’instance temporaire
<a name="efa-start-terminate"></a>

À ce stade, vous n’avez plus besoin de l’instance que vous avez lancée à l’[étape 2](#efa-start-tempinstance). Vous pouvez résilier l’instance pour arrêter d’être facturé pour celle-ci.

**Pour résilier l’instance temporaire**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le panneau de navigation, choisissez **Instances**.

1. Sélectionnez l’instance temporaire que vous avez créée puis choisissez **Actions**, **État de l’instance**, **Résilier (supprimer) l’instance**.

1. Lorsque vous êtes invité à confirmer, choisissez **Terminate (supprimer)**.

## Étape 12 : Activer SSH sans mot de passe
<a name="efa-start-passwordless"></a>

Pour permettre à vos applications de s’exécuter sur toutes les instances de votre cluster, vous devez activer l’accès SSH sans mot de passe du nœud principal aux nœuds membres. Le nœud principal est l’instance à partir de laquelle vous exécutez vos applications. Les instances restantes du cluster sont les nœuds membres.

**Pour activer SSH sans mot de passe entre les instances du cluster**

1. Sélectionnez une instance dans le cluster en tant que nœud principal et connectez-vous à celle-ci.

1. Désactivez `strictHostKeyChecking` et activez `ForwardAgent` sur le nœud principal. Ouvrez le fichier `~/.ssh/config` à l’aide de l’éditeur de texte de votre choix et ajoutez ce qui suit.

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

1. Générez une paire de clés RSA

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

   La paire de clés est créée dans le répertoire `$HOME/.ssh/`.

1. Modifiez les autorisations de la clé privée sur le nœud principal.

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

1. Ouvrez `~/.ssh/id_rsa.pub` à l’aide de l’éditeur de texte de votre choix et copiez la clé.

1. Pour chaque nœud membre du cluster, procédez comme suit :

   1. Connectez-vous à l’instance.

   1. Ouvrez `~/.ssh/authorized_keys` à l’aide de l’éditeur de texte de votre choix et ajoutez la clé publique que vous avez copiée plus tôt.

1. Pour tester que le SSH sans mot de passe fonctionne comme prévu, connectez-vous à votre nœud principal et exécutez la commande suivante.

   ```
   $ ssh member_node_private_ip
   ```

   Vous devez vous connecter au nœud membre sans être invité à entrer une clé ou un mot de passe.