12/11/2015

Station de travail pour la CFD

Introduction:

Aujourd’hui, il existe beaucoup de logiciels de simulation CFD comme : ANSYS, FLOW 3D, OpenFOAM, COMSOL Multiphysics, XFLOW, etc. Ces logiciels de CFD demandent des ordinateurs performants pour avoir des calculs rapides d’où l’importance du choix du bon matériel informatique.

Les éléments qu'il faut prendre en considération dans votre configuration sont:

  • Le processeur
  • La mémoire vive (RAM)
  • La carte mère
  • La carte graphique
  • Le disque dur

Une sélection appropriée de ses éléments permet un gain considérable en temps de calcul. Il existe plusieurs choix sur le marché pour choisir son ordinateur, mais deux facteurs seulement à prendre en considération qui sont le prix et les performances.

Le processeur:

Cet élément est le cœur de l’ordinateur. Actuellement, il existe deux fournisseurs qui sont Intel et AMD. Ces deux constructeurs en deux catégories deux processeurs qui peuvent nous intéressé pour du calcul scientifique. Pour Intel il y a les processeurs i7 et Xeon, pour AMD il y a les processeurs FX et Opteron.
Processeurs pour calcul scientifique 

Intel ou AMD:

Laquelle des deux marques faut-il choisir ? Les deux marques sont bonnes, mais lequel à plus d’avantages que l’autre. Intel à de meilleures performances que AMD qui beaucoup moins cher. Lors des simulations avec peu de maillage la différence n’est pas très grande. 
La figure ci-dessous (source ICI) montre bien que les processeurs Intel sont plus performants que les processeurs AMD, mais ils sont plus chers. Le processeur Intel Core i7 5960X est plus performant que les autres processeurs, mais c’est le plus cher, car il est plus récent. Maintenant, vous pouvez faire un premier choix qui dépendra de ce que vous êtes prêt à investir.     
Intel vs AMD

Xeon ou i7:

Les processeurs Intel i7 et AMD FX sont moins chers que les processeurs Intel Xeon et AMD Opteron, mais ces derniers permettent l’utilisation de deux processeurs identique sur la même machine, la figure suivante résume les différences.

Xeon vs i7
Dans le cadre d’une utilisation pour des calculs CFD (applications fortement parallélisées) il faut opter pour la gamme professionnelle Intel Xeon et AMD Opteron. 

La mémoire (RAM):

La RAM charge toutes les instructions en cours d’exécution sur le processeur. Nous sommes à la quatrième génération (DDR4) et seulement les processeurs les plus récents permettent son insertion. Les RAM DDR4 permettent une plus grande vitesse et une moindre consommation (voir figure ci-dessous).  

Les différentes génération de RAM
Les DDR4 sont actuellement chers. Vous pouvez opter pour des DDR3, mais il faut s’assurer de la compatibilité avec le processeur. Vous devriez avoir assez de RAM pour vos applications de façon à ne pas arriver à 100% des capacités, sinon votre ordinateur risque de « swapper » (c.-à-d. Il utilise une partie du disque dur comme une mémoire virtuelle déplaçant ainsi sans cesse les informations entre la mémoire et le disque nettement plus lent). Dans une chaîne de calcul CFD, la RAM est très sollicitée lors du maillage et de l’utilisation du solveur.
La fréquence d’une RAM est un élément important.Plus elle est importante plus la RAM est rapide et permet un Overlocking intéressant.
Il est préférable d’éviter les marques 'no name' qui peuvent poser des problèmes et d’acheter des mémoires de marques comme Corsair, Crucial, G-Skill, Kingston, OCZ, Samsung...etc.
Il est préférable d’acheter des RAM de même marque pour tout le PC pour écarter complètement les risques d’incompatibilités entre les RAM.

Processeur vs RAM:

Pour un processeur Intel Xeon, vous pouvez mettre de 24 GB à 128 GB et pour un processeur Intel i7 c’est de 16 à 32 GB. Il faudrait mieux avoir peux barrettes RAM avec de grandes capacités (c’est mieux d’avoir 2*16 GB que 4*8 GB).

Carte mère:

Il existe plusieurs marques de carte mère sur le marché (ASUS, GIGABYTE, MSI...etc.). Une fois le processeur et la mémoire vive (RAM) choisie vient le choix de la carte mère. Il faut bien choisir une carte mère compatible avec votre processeur et votre RAM. Premièrement il faut décider si vous voulez une carte mère avec un ou deux processeurs.  
Le choix d’une carte mère dépend en grande partie du chipset et du socket :

Le chipset : 

C’est un ensemble de composants intégrés à la carte mère. Son rôle s’apparente à celui d’un chef de gare. Il régule les connexions entre la mémoire, le ou les disques durs, les ports d’extension, et bien évidemment le processeur.

Le socket : 

C’est le réceptacle du processeur. Le socket assure la parfaite communication entre les différents éléments (processeur, carte graphique, disque dur...) de l’ordinateur. Il doit également gérer différentes connexions annexes, mais indispensables : les différents ports (USB, Ethernet...), la vidéo, l’audio, etc. C’est donc un point déterminant puisque, lorsque vous aurez choisi le processeur répondant à vos besoins, il faudra lui trouver le socket adapté. Le tableau ci-dessous montre les capacités de quatre différents sockets (cource ICI).

Capacité des différents socket
AM3 + sera à privilégier pour les entrée et moyen de gamme, le socket 1150 support la DDR3 , avec ou sans overclocking.Le socket 1151 (SKYLAKE) est la dernière génération, il amène environ 10% de performance en plus que le socket 1150. Il va devenir le nouveau standard et est donc à privilégier. Le socket 2011-3 , c’est le haut de gamme d’Intel. C’est un socket plutôt destiné aux professionnelles ayant besoin de beaucoup de puissance pour des logiciels lourds.

Carte graphique:

La carte graphique est un complément important. Actuellement, il y a deux constructeurs qui sont Nvidia et ATI (AMD depuis 2010).     

ATI et Nvidia
  
Il faut privilégié les cartes graphiques Nvidia Quadro et ATI FirePro pour les logiciels CAD/CAE et CFD. Ces cartes graphiques ont été conçues pour les jeux. On peut développer des calculs CFD à l’aide des cartes graphiques GeForce et Radeon, mais elles seront plus lentes. La figure ci-dessous montre la qualité offerte par les cartes graphiques GeForce et Radeon en conception mécanique. Les cartes graphiques Nvidia Quadro donneront aussi un meilleur rendu des résultats des simulations CFD.
GeForce vs Quadro
Si vous utilisez votre ordinateur pour du développement et du calcul vous aurez surement besoin d’installer une carte graphique Nvidia Quadro.
Les cartes graphiques peuvent être aussi utilisées pour accélérer le calcul en parallèle (voire la figure ci-dessous). ANSYS démontre que l’utilisation des cartes graphiques permet un doublement de la productivité sous ANSYS fluent.



Bénéfices d'utilisation des cartes graphique sous ANSYS Fluent (source
Les cartes graphiques Nvidia Tesla et AMD FireStream ont une architecture développée pour faire du calcul parallèle. Elles permettent d’accroître la parallélisation d’une partie du code de notre logiciel CFD, car elle possède plus de cœurs que les CPU (voir figure ci-dessous). 


Accélération du calcul parallèle à l'aide d'une carte graphique (source1 et source2
Intel a mis en place aussi un accélérateur de calcul qui s’appelle Xeon Phi. Les coprocesseurs Intel Xeon Phi offrent jusqu’à 61 cœurs, 244 threads et des performances pouvant atteindre 1,2 téraflops. Ils offrent des performances intéressantes (voire figure ci-dessous), mais il y a plein de logiciels de calculs qui n’ont pas encore été adaptés.
Performances des coprocesseurs Intel Xeon Phi (source)

AMD FirePro vs Intel Xeon Phi vs Nvidia Tesla (source):

AMD propose toujours plus de cœurs, afin de proposer une puissance brute maximale. La puissance réellement utilisable risque d’être un peu faible, car la bande passante mémoire n’est pas suffisante. Côté programmation, la firme favorise l’OpenCL.
Les cartes Intel Xeon Phi contiennent moins de cœurs, mais permet aussi de proposer une puissance unitaire supérieure. Côté programmation, des outils maison sont utilisés, en attendant la montée de l’OpenMP.
Les cartes graphiques de Nvidia en une bonne marge côté fréquence de fonctionnement. Nvidia permet une exploitation maximale de la puissance brute offerte. Via des astuces architecturales, mais aussi via Cuda.



Rapport prix/performance des carte graphique pour le calcul parallèle (source)

Disques durs:

Il existe deux types de disques durs. Les disques durs (HDD), qui utilisent un ou plusieurs disques rotatifs et comptent sur le stockage magnétique, et les disques SSD, qui ne disposent pas de pièces mécaniques mobiles, mais utilisent de la mémoire flash comme dans les lecteurs USB.
Dans le cadre des calculs CFD, il est souhaitable d’utiliser des disques durs SSD, car ils sont plus performants, mais leurs prix sont plus élevés.  
Souvent, il faut combiner les deux technologies. On utilise les disques durs SSD pour la simulation et les disques durs HDD pour le stockage.


SSD vs HDD

J’espère qu’avec toutes ces informations vous allez pouvoir choisir les bons éléments pour crée votre station de travail.  

Voici un aperçu d'ordinateur que j'utilise: 

PC1:

2 processeurs Intel Xeon E5-2630 v2 (12C, 2.6GHz)  
64 Go de mémoire DDR3 (8 x 8 Go) 1866 MHz  
Carte graphique Nvidia Quadro NVS510 (2Go de mémoire)  
Disque dur 3 To 7200 tr/min 3"5 SATA 16Mo cache 
Microsoft Windows 7 Pro, 64 bits Français 

Dans cette configuration il manque un disque dur SSD pour améliorer les performances

PC2: 
Processeur Intel Xeon E3-1270 v3 (4C, 3.5GHz)  
16 Go de mémoire DDR3 (4 x 4 Go) 798 MHz  
Carte graphique Nvidia Quadro NVS310  
Disque dur 3 To 7200 tr/min  
Microsoft Windows 7 Pro, 64 bits Français 


Dans cette configuration il manque un disque dur SSD et une augmentation à 32 Go de la mémoire vive pour améliorer les performances






26/10/2015

tutoriel blockMesh

Introduction:

L'outil « blockMesh », sous OpenFOAM, permet de générer un maillage de type structuré fait à partir d'un ou plusieurs blocs géométriques juxtaposés les uns aux autres. Le maillage est réalisé à l'aide d'un unique fichier nommé « blockMeshDict » placé dans le dossier « constant/polyMesh » du dossier de travail.

Principe de fonction de blockMesh

Chaque bloc est défini par ces 8 sommets, qui peuvent être confondus, ces nombres de mailles dans les trois dimensions et par les déformations facultatives de ces arêtes.

Un bloc sous blockMesh

L'avantage de ce genre de maillage est qu'il est toujours structuré, quelles que soient la forme et les déformations des blocs qui le composent.

Exemple de maillage avec blockMesh

"blockMesh" permet un paramétrage très précis du maillage, mais cela devient très compliquer pour le maillage de géométrie relativement simple. 

Utilisation:

Dans ce cette vidéo nous allons voir comment on peut réalisé un maillage pour une simulation en 2D de la géométrie suivante:

Géométrie
Nous allons diviser notre géométrie en trois blocs lors du maillage sous blockMesh.

Les différents blocs de notre géométrie

Je vais vous montrer étape par étape comment crée le fichier "blockMeshDict" afin de mailler notre géométrie.

Fichier "blockMeshDict"

 Le tutoriel:

27/09/2015

Présentation de ParaView


Introduction:

ParaView est un outil open-source multi-plateforme, d'analyse des données et de visualisation. Les utilisateurs peuvent rapidement construire des visualisations pour analyser leurs données en utilisant des techniques qualitatives et quantitatives. L'exploration des données peut être effectuée de manière interactive en 3D ou par l'utilisation de la programmation sous forme de script en python.
ParaView a été développé pour analyser de très grands ensembles de données en utilisant les ressources de calcul à mémoire distribuée. Il peut être exécuté sur des supercalculateurs pour analyser des données de l'ordre du tera, ainsi que sur les ordinateurs portables pour des données plus petites.

Fonctionnalités:

  • Prend en charge plusieurs platesformes (binaires et source)
  • Champs de visualisation et d'animation 2D et 3D scalaire, vecteur, et tenseur
  • Analyse et manipulation des données d'une façon qualitatives et quantitatives
  • Interface graphique utilisateur intuitive et interactive
  • Rendu parallèle et distribué
  • Scriptable en Python
  • Prise en charge des plugins en XML et C ++ 

Formats supporté:

.boundary, .cas, .case, .cosmo, .cube, .csv, .dem, .d3plot, .e, .ex, .ex2v2, .exo, .exoii, .foam, .g, .gen, .gadget2, .hierarchy, .inp, .isdyna, .k, .mha, .mhd, .nc, .ncdf, .netcdf, .nhdr, .nrrd, .obj, .particles, .pdb, .pht, .ply, .png, .pop, .pvd, .pvti, .pvtk, .pvtp, .pvtr, .pvts, .pvtu, .raw, .res, .sesame, .sos, .spcth, .stl, .tec, .tiff, .tp, .vpc, .vrml, .vthb, .vti, .vtk, .vtm, .vtmb, .vtp, .vtr, .vts, .vtu, .wind, .wrl, .xdmf, .xmf, .xyz

Interface graphique de Paraview

LES +++: 

- Tutoriel instructif (avec des exemples de fichiers), documentation en ligne
- Interface moderne et intuitive
- Offre une variété de représentations et de filtres
- Facilement accessibles des informations 

- Supporte l'hébergement à distance
- Des instructions de script
(Python) dans le tutoriel
- Développement actif

- Gratuit

LES ---:

- Une méthode de rendu 3D, options de rendu limitées
- Pas de possibilité d'avorter le traçage
- Un abonnement de support  commercial ParaviewPro et guides commerciaux

21/09/2015

Stirred tank CAO (DesignSpark Mechanical 2.0)

Dans ce tutoriel je démontre la possibilité d'utilisation d'un logiciel gratuit  "DesignSpark Mechanical" dans le cas d'une géométrie moyennement complexe.

Géométrie :

Cette figure montre la géométrie réalisé à l'aide de blender 2.75.
N.B: les dimensions sont en millimètre.
Dimensions de la cuve agité

DesignSpark Mechanical 2.0 :

Cette outil gratuit est très intéressant de par sa facilité d'apprentissage et d'utilisation. Malgré qu'il n'a pas beaucoup de fonctionnalité on arrive facilement à réaliser cette géométrie. Dommage qu'il ne fonctionne pas sous l'environnement LINUX.

18/09/2015

Stirred tank CAO (SALOME 7.6.0)

Dans ce tutoriel je démontre la possibilité d'utilisation du logiciel Open Source gratuit  "SALOME" dans le cas d'une géométrie moyennement complexe.

Géométrie :

Cette figure montre la géométrie réalisé à l'aide de blender 2.75.
N.B: les dimensions sont en millimètre.

Dimensions de la cuve agité

SALOME 7.6.0 :

L'outil CAO de la platforme SALOME permet de réaliser facilement cette géométrie. Plusieurs amélioration peuvent être apportées pour gagner du temps. Par exemple faciliter la réalisation d'une sketch 2D sur n'importe quel plan spatial. Un nouveau module CAO est en préparation pour une sortie début 2016.