Calcul hautes performances : OpenFOAM sur Oracle Cloud Infrastructure
OpenFOAM est un outil de mécanique des fluides numérique utilisé dans la recherche scientifique en milieu universitaire et industriel pour résoudre un large éventail de problèmes complexes de fluidité.
OpenFOAM peut être utilisé pour développer et tester de nouveaux leviers et modèles physiques. La capacité parallèle est bonne pour gérer des problèmes de recherche nécessitant des ressources importantes. Il peut résoudre des problèmes d'écoulement incompressibles qui ont une turbulence, et il peut simuler à la fois une combustion pré-mélangée et non-premixée.
Architecture
L'architecture utilise un noeud bastion/tête pour se connecter au cluster HPC.
Le noeud tête contient l'installation OpenFOAM et le modèle. Il dispose de l'interface de transmission des messages (MPI), et orchestre et exécute le travail. Les résultats du travail sont enregistrés sur le noeud principal.
Le diagramme suivant illustre cette architecture de référence.

Description de l'illustration architecture-hpc.png
L'architecture comporte les composants suivants :
- Région
Une région Oracle Cloud Infrastructure est une zone géographique localisée qui contient des centres de données, appelés domaines de disponibilité. Les régions sont indépendantes d'autres régions et de grandes distances peuvent les séparer (dans les pays voire les continents).
- Domaines de disponibilité
Les domaines de disponibilité sont des centres de données autonomes et indépendants au sein d'une région. Les ressources physiques de chaque domaine de disponibilité sont isolées des ressources des autres domaines de disponibilité, ce qui assure la tolérance de pannes. Les domaines de disponibilité ne partagent ni infrastructure telle que l'alimentation ou le refroidissement, ni réseau interne. Par conséquent, il est improbable qu'un problème affecte les autres domaines de disponibilité de la région.
- Domaines de pannes
Un domaine de pannes est un regroupement de matériel et d'infrastructures au sein d'un domaine de disponibilité. Chaque domaine de disponibilité comporte trois domaines de pannes avec une alimentation et un matériel indépendants. Lorsque vous distribuez des ressources entre plusieurs domaines de pannes, vos applications peuvent tolérer les pannes de serveur physique, la maintenance du système et les pannes d'alimentation au sein d'un domaine de pannes.
- Réseau cloud virtuel (VCN) et sous-réseaux
Un VCN est un réseau personnalisable et défini par logiciel que vous configurez dans une région Oracle Cloud Infrastructure. Comme les réseaux cloud virtuels traditionnels, vous bénéficiez d'un contrôle total sur votre environnement réseau. Un VCN peut comporter plusieurs blocs CIDR qui ne se chevauchent pas et que vous pouvez modifier après avoir créé le VCN. Vous pouvez segmenter un VCN en sous-réseaux, qui peuvent être ciblés vers une région ou un domaine de disponibilité. Chaque sous-réseau se compose d'une plage contiguë d'adresses qui ne chevauchent pas les autres sous-réseaux du VCN. Vous pouvez modifier la taille d'un sous-réseau après sa création. Un sous-réseau peut être public ou privé.
- Liste de sécurité
Pour chaque sous-réseau, vous pouvez créer des règles de sécurité qui indiquent la source, la destination et le type de trafic qui doivent être autorisés en entrée et en sortie du sous-réseau.
- Pool d'instances
Les pools d'instances permettent de créer et de gérer plusieurs instances Compute dans la même région qu'un groupe. Ils permettent également l'intégration à d'autres services, tels que le service Load Balancing et le service IAM.
- Noeud bastion/Noeud en-tête
Utilisez un portail Web pour vous connecter au noeud de tête et programmer des travaux HPC. La demande de travail passe par FastConnect ou VPN IPSec au noeud de tête. Le noeud tête envoie également l'ensemble de données client au stockage de fichiers et peut effectuer un prétraitement sur les données.
Le noeud tête provisionne les clusters de noeuds HPC et supprime les clusters HPC à la fin du travail.
- Noeud de cluster HPC
Le noeud tête provisionne et met fin à ces noeuds de calcul, qui sont des clusters compatibles RDMA. Ils traitent les données stockées dans le stockage de fichiers et renvoient les résultats au stockage de fichiers.
- Cloud Guard
Vous pouvez utiliser Oracle Cloud Guard pour surveiller et maintenir la sécurité de vos ressources dans le cloud. Cloud Guard examine vos ressources pour détecter les failles de sécurité liées à la configuration et surveille les opérateurs et les utilisateurs pour détecter les activités risquées. Lorsqu'un problème ou un risque de sécurité est identifié, Cloud Guard recommande des actions correctives et vous aide dans ces actions, en fonction des recettes de sécurité que vous pouvez définir.
- Serveur NFS
L'un des noeuds HPC sera promu en tant que serveur NFS.
Recommandations
Vos besoins peuvent être différents de ceux de l'architecture décrite ici. Utilisez les recommandations suivantes comme point de départ.
- VCN
Lorsque vous créez un VCN, déterminez le nombre de blocs CIDR requis et la taille de chaque bloc en fonction du nombre de ressources que vous prévoyez d'attacher aux sous-réseaux du VCN. Utilisez des blocs CIDR compris dans l'espace d'adresse IP privée standard.
Sélectionnez des blocs CIDR qui ne chevauchent aucun autre réseau (dans Oracle Cloud Infrastructure, votre centre de données on-premise ou un autre fournisseur cloud) auquel vous souhaitez configurer des connexions privées.
Après avoir créé un VCN, vous pouvez modifier, ajouter et supprimer ses blocs CIDR.
Lorsque vous concevez les sous-réseaux, tenez compte de vos exigences en matière de flux de trafic et de sécurité. Associez toutes les ressources d'un niveau ou d'un rôle spécifique au même sous-réseau, ce qui peut servir de limite de sécurité.
- Sécurité
Utilisez Oracle Cloud Guard pour surveiller et maintenir la sécurité de vos ressources dans OCI de manière proactive. Cloud Guard utilise des recettes de détection que vous pouvez définir pour examiner vos ressources afin de détecter les failles de sécurité et pour surveiller les opérateurs et les utilisateurs pour les activités risquées. Lorsque des erreurs de configuration ou des activités non sécurisées sont détectées, Cloud Guard recommande des actions correctives et aide ces actions, en fonction des recettes de répondeur que vous pouvez définir.
Pour les ressources nécessitant une sécurité maximale, Oracle recommande d'utiliser des zones de sécurité. Une zone de sécurité est un compartiment associé à une recette définie par Oracle de stratégies de sécurité basées sur les meilleures pratiques. Par exemple, les ressources d'une zone de sécurité ne doivent pas être accessibles à partir du réseau Internet public et doivent être chiffrées à l'aide de clés gérées par le client. Lors de la création et de la mise à jour de ressources dans une zone de sécurité, Oracle Cloud Infrastructure valide les opérations par rapport aux stratégies de la recette de zone de sécurité et refuse les opérations qui violent les stratégies.
- Noeuds HPC
Deux scénarios sont disponibles :
- Déployez des formes de machine virtuelle à l'aide du pool d'instances, comme indiqué dans le diagramme d'architecture. Ce scénario offre des coûts moindres mais aussi des performances moindres.
Utilisez VM.Standard.E3.Flex ou VM.Standard.E4.Flex avec le service de stockage de fichiers.
- Déployer avec des formes BARE Metal HPC pour obtenir des performances complètes.
Utilisez des formes BM.HPC2.36 avec stockage SSD NVMe local 6.4-TB, 36 coeurs et 384 Go de mémoire par noeud.
- Déployez des formes de machine virtuelle à l'aide du pool d'instances, comme indiqué dans le diagramme d'architecture. Ce scénario offre des coûts moindres mais aussi des performances moindres.
Remarques
Tenez compte des points suivants lors du déploiement de cette architecture de référence.
- Performances
Selon la taille de la charge globale, déterminez le nombre de coeurs sur lesquels exécuter OpenFOAM. Cette décision garantit que la simulation est effectuée en temps opportun.
Pour obtenir les meilleures performances, choisissez la forme de calcul appropriée avec la bande passante appropriée.
- Disponibilité
Envisagez d'utiliser une option de haute disponibilité en fonction de vos besoins de déploiement et de votre région. Les options incluent l'utilisation de plusieurs domaines de disponibilité dans une région et des domaines de pannes.
- Coût
Une instance de GPU Bare Metal fournit la puissance CPU nécessaire pour un coût plus élevé. Evaluez vos besoins afin de choisir la forme de calcul appropriée.
Vous pouvez supprimer le cluster lorsqu'aucun travail n'est en cours d'exécution.
- Surveillance et alertes
Configurez la surveillance et des alertes sur l'utilisation de l'UC et de la mémoire pour vos noeuds, afin que vous puissiez augmenter ou réduire la forme selon vos besoins.
- Stockage
En plus du stockage SSD NVMe fourni avec la forme HPC, vous pouvez également attacher des volumes de blocs à 32k E/S par seconde par volume, avec le contrat de niveau de service le plus performant d'Oracle. Si vous utilisez nos solutions pour lancer l'infrastructure, un partage NFS est installé par défaut sur le stockage SSD NVMe dans /mnt. Vous pouvez également installer votre propre système de fichiers parallèle sur le stockage SSD NVMe ou le stockage de blocs, en fonction de vos exigences en matière de performances.
- Noeud Visualizer
Vous pouvez créer un noeud de visualiseur, tel qu'une machine virtuelle GPU (VM) ou un noeud Bare Metal, en fonction de vos besoins. Ce noeud de visualiseur peut être votre bastion ou distinct. Selon les exigences de sécurité de la charge globale, le noeud de visualiseur peut être placé dans le sous-réseau privé ou public.
déploiement
Le code requis pour déployer cette architecture de référence est disponible dans GitHub. Vous pouvez extraire le code dans Oracle Cloud Infrastructure Resource Manager en un seul clic, créer la pile et la déployer. Vous pouvez également télécharger le code à partir de GitHub sur votre ordinateur, le personnaliser et déployer l'architecture à l'aide de la CLI Terraform.
- Déployer à l'aide d'Oracle Cloud Infrastructure Resource Manager :
- Cliquez sur
.
Si vous n'êtes pas déjà connecté, entrez les informations d'identification de la location et de l'utilisateur.
- Consulter et accepter les conditions générales.
- Sélectionnez la région de déploiement de la pile.
- Suivez les invites affichées à l'écran et les instructions pour créer la pile.
- Après avoir créé la pile, cliquez sur Actions Terraform et sélectionnez Plan.
- Attendez que le travail soit terminé et vérifiez le plan.
Pour apporter des modifications, revenez à la page Détails de la pile, cliquez sur Modifier la pile et apportez les modifications requises. Exécutez ensuite à nouveau l'action Plan.
- Si aucune autre modification n'est nécessaire, revenez à la page Détails de la pile, cliquez sur Actions Terraform et sélectionnez Appliquer.
- Cliquez sur
- Effectuez un déploiement en utilisant le code Terraform dans GitHub :
- Accédez à GitHub.
- Clonez ou téléchargez le référentiel sur votre ordinateur local.
- Suivez les instructions du document
README
.