CP2K

From CC Doc
Jump to navigation Jump to search
This page is a translated version of the page CP2K and the translation is 75% complete.
Outdated translations are marked like this.
Other languages:
English • ‎français


CP2K est un paquet logiciel pour la chimie quantique et la physique des solides qui permet de faire des simulations atomistiques de systèmes solides, liquides, moléculaires, périodiques, matériels, cristallins et biologiques.

Versions

The latest version installed is CP2K 8.2. You can load the module compiled with GCC using

module load StdEnv/2020  gcc/9.3.0  openmpi/4.0.3 cp2k/8.2

You can also choose to use the version compiled with the Intel compiler if you prefer, but it seems less stable, as it sometimes crashes for unknown reasons.

module load StdEnv/2020  intel/2020.1.217  openmpi/4.0.3 cp2k/8.2

Exemple de tâche

Nous utilisons ici l'exemple de calcul statique tiré du site web de CP2K.

Connectez-vous à une grappe et téléchargez les fichiers requis avec


wget https://www.cp2k.org/_media/static_calculation.tgz
tar xvfz static_calculation.tgz	
cd static_calculation/sample_output_no_smearing

Dans ce répertoire, créez le script de tâche suivant en utilisant le nom de votre compte.


File : mpi_job.sh

#!/bin/bash
#SBATCH --account=def-someuser
#SBATCH --ntasks=4               # number of MPI processes
#SBATCH --mem-per-cpu=4G      # memory; default unit is megabytes
#SBATCH --time=0-00:15           # time (DD-HH:MM)

module load StdEnv/2020  gcc/9.3.0  openmpi/4.0.3 cp2k/8.2
srun cp2k.popt -o Si_bulk8.out Si_bulk8.inp



Pour soumettre cette tâche, lancez

sbatch mpi_job.sh

Pour vérifier que la tâche est terminée, lancez

sq

Votre tâche est terminée si elle ne paraît pas dans la liste.

Le résultat de CP2K sera dans le fichier Si_bulk8.out. Il y aura aussi un fichier de résultats nommé slurm-*.out qui sera vide si le calcul s'est effectué dans erreurs.

Fils et MPI

À partir de la version 8.2, l'installation de CP2K fournit l'exécutable cp2k.popt et l'exécutable OpenMP/MPI cp2k.psmp qui peuvent améliorer la performance de certains calculs. Avec notre test, nous avons obtenu une amélioration de 10 % avec l'essai QS/H2O-512.inp en utilisant 2 fils par processus MPI, en comparaison de l'exécution de cp2k.popt en MPI seul; dans les deux cas, le total de cœurs CPU était identique.

L'exemple ci-dessous est un fichier OpenMP/MPI pour la soumission d'une tâche sur Béluga. Sur les autres grappes, modifiez le nombre de tâches pour correspondre au nombre de cœurs disponibles sur les nœuds de chaque grappe. La différence en performance avec l'utilisation de fils dépend du problème traité. Dans certains cas, l'exécutable cp2k.psmp peut prendre plus de temps et il est important de faire des essais avec votre code pour pouvoir choisir la meilleure option.


File : openmp_mpi_job.sh

#!/bin/bash
#SBATCH --account=def-someuser
#SBATCH --nodes=2
#SBATCH --ntasks=40               # number of MPI processes
#SBATCH --cpus-per-task=2
#SBATCH --mem-per-cpu=3G      # memory; default unit is megabytes
#SBATCH --time=0-00:59           # time (DD-HH:MM)

<div class="mw-translate-fuzzy">
module load cp2k/8.2
</div>

export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
srun cp2k.psmp -o H2O-512.out H2O-512.inp