Ensemble De Données De Référence De Performances CP2K_Benchmark
Date
Publish URL
Paper URL
License
GPL
Le jeu de données de référence CP2K est un ensemble de données de test et de validation de performances spécialement conçu pour les environnements de calcul haute performance (HPC). Ce jeu de données, issu du logiciel open source de simulation de principes fondamentaux CP2K, permet d'évaluer les performances des calculs de chimie quantique et de dynamique moléculaire sous différentes plateformes matérielles, stratégies de parallélisation (MPI/OpenMP) et paramètres d'optimisation de la compilation.
Contrairement aux données expérimentales scientifiques, cet ensemble de données est principalement utilisé pour l'évaluation des performances du calcul haute performance (vitesse d'exécution, efficacité parallèle, évolutivité, etc.). Il est maintenu par l'équipe officielle de CP2K. Les données et les fichiers d'entrée se trouvent dans le répertoire benchmarks/ du code source.
Les résultats pertinents de l'article sontCP2K : simulations atomiques de systèmes de matière condensée", publié en 2013 par l'École polytechnique fédérale de Zurich, l'Université de Zurich, l'Université de Bâle et d'autres institutions.
Structure du jeu de données
L'ensemble de données se trouve dans le répertoire benchmarks/ du référentiel de code source CP2K, qui contient plusieurs sous-répertoires et fichiers d'entrée :
benchmarks/
├── Fayalite-FIST/ # FIST 模块基准,Fayalite 体系
├── QS/ # Quickstep 模块基准(DFT/MD)
├── QS_DM_LS/ # 线性标度 DFT 基准
├── QS_HFX/ # 混合泛函 HFX 基准
├── QS_diag/ # 对角化算法基准
├── QS_mp2_rpa/ # MP2 / RPA 高精度基准
├── QS_ot_ls/ # 轨道变换线性标度 DFT 基准
├── QS_pao_ml_tio2/ # PAO / ML 势 TiO₂ 基准
├── QS_rubri/ # Rubredoxin 蛋白质基准
├── QS_single_node/ # 单节点 Quickstep 基准
├── QS_stmv/ # STMV 病毒体系基准
├── README.md # 各基准说明文档
Chaque sous-répertoire contient :
- Fichiers d'architecture (tels que .xyz, .psf, .pdb)
- Script d'entrée CP2K (.inp)
- Résultats énergétiques de référence et modèles de résultats
- Exécuter et enregistrer les performances des scripts
Contenu de l'ensemble de données
L'ensemble de données contient plusieurs problèmes de référence standardisés, chacun représentant un scénario de calcul scientifique typique, couvrant différents types de calcul allant de la dynamique moléculaire classique à la structure électronique ab initio.
- H₂O-64
- Type : DFT + Dynamique moléculaire
- Système : 64 molécules d'eau (192 atomes/512 électrons)
- Objectif : tester les performances et l'évolutivité des simulations de chimie quantique standard sur des systèmes de taille moyenne.
- Fayalite-POING
- Type : Dynamique moléculaire classique (module FIST)
- Système : Cristal de fayalite (supercellule Fe₂SiO₄, environ 28 000 atomes)
- Objectif : Évaluer les performances des calculs de champ de force classiques et des algorithmes de sommation de champ électrique à longue portée dans les grands systèmes.
- LiH-HFX
- Type : DFT hybride (calcul à point unique HFX)
- Système : cristal LiH (216 atomes/432 électrons)
- Objectif : Tester la charge et l'efficacité de communication des fonctions d'échange hybrides sous parallélisme multithread.
- H₂O-DFT-LS
- Type : DFT à échelle linéaire
- Système : 2048 molécules d'eau (6144 atomes)
- Objectif : Évaluer l’évolutivité et les besoins en mémoire des algorithmes de mise à l’échelle linéaire sous parallélisme massif.
- H₂O-64-RI-MP2
- Type : méthode MP2 + approximation RI
- Système : identique à H₂O-64
- Objectif : tester les performances et la surcharge de calcul des méthodes ab initio d'ordre élevé sur HPC.
Repères de course
Avant d’exécuter certains tests, vous devrez peut-être effectuer une étape de prétraitement pour générer les fichiers d’entrée requis (tels que les fichiers de fonctions d’onde).
Ces préparations sont détaillées dans le fichier README.md, situé dans le sous-répertoire du test de référence correspondant. Il est recommandé de lire les instructions correspondantes avant de commencer le test.
Les benchmarks dans les jeux de données sont généralement exécutés en mode parallèle hybride, utilisant à la fois MPI et OpenMP pour le calcul parallèle. L'exemple suivant montre comment affecter deux threads à chaque processus MPI pour exécuter un benchmark :
export OMP_NUM_THREADS=2
parallel_launcher launcher_options path_to_cp2k.psmp -i inputfile.inp -o logfile.log
dans:
- parallel_launcher est mpirun, mpiexec ou une variante telle que aprun sur les systèmes Cray, ou srun lors de l'utilisation de la planification des tâches Slurm.
- launcher_options spécifie le nombre de nœuds, de processus MPI, de tâches par nœud et de threads par tâche pour l'exécution parallèle (doit être égal à la valeur de OMP_NUM_THREADS). Si la configuration d'exécution parallèle est définie automatiquement par l'environnement de travail, il n'est pas nécessaire de la spécifier manuellement.
Obtenez des résultats de référence
Après avoir exécuté le benchmark, les utilisateurs peuvent obtenir le temps d'exécution réel (walltime) de CP2K en générant les informations de synchronisation interne dans le fichier journal.
Tous les benchmarks fournis par l'ensemble de données enregistreront ces informations de synchronisation dans des fichiers journaux, ce qui permettra aux utilisateurs de comparer plus facilement les performances sur différentes configurations matérielles ou parallèles.
Voici un exemple de la manière de l’obtenir :
grep "CP2K " *.log
De plus, plusieurs statistiques de performances sont incluses à la fin du fichier journal :
- STATISTIQUES DBCSR : Affiche les statistiques de performances de calcul et de communication du module DBCSR. Les premières lignes indiquent le nombre d'opérations en virgule flottante (FLOP) pour différentes tailles de blocs de petites matrices, ainsi que la répartition de ces calculs sur BLAS, SMM (petit multiplicateur de matrice) et GPU (ACC).
- PERFORMANCES DE TRANSMISSION DE MESSAGES DBCSR : affiche les statistiques de performances des appels MPI dans le module DBCSR.
- PERFORMANCES DE TRANSMISSION DE MESSAGES : affiche les statistiques de performances de communication MPI pour d'autres parties de CP2K.
- TIMING : Répertorie l'heure d'appel et le nombre d'appels de chaque fonction.
Dessin
Le projet fournit également des scripts Python pour générer des graphiques d'échelle pour visualiser l'ensemble de données, qui se trouvent dans le répertoire suivant :
cp2k/tools/benchmark_plots/Build AI with AI
From idea to launch — accelerate your AI development with free AI co-coding, out-of-the-box environment and best price of GPUs.