From 0e7f77639707e80d2c2b5e7fbe71e63beb1b1bcf Mon Sep 17 00:00:00 2001 From: Antoine Cyril David Hoffmann <ahoffman@spcpc606.epfl.ch> Date: Mon, 1 Mar 2021 10:57:41 +0100 Subject: [PATCH] New scripts for Marconi and Piz Daint HPC --- matlab/load_daint.m | 26 ++++++++ matlab/write_sbash_daint.m | 55 ++++++++++++++++ .../{write_sbash.m => write_sbash_marconi.m} | 6 +- wk/daint_run.m | 65 +++++++++++++++++++ 4 files changed, 148 insertions(+), 4 deletions(-) create mode 100644 matlab/load_daint.m create mode 100644 matlab/write_sbash_daint.m rename matlab/{write_sbash.m => write_sbash_marconi.m} (84%) create mode 100644 wk/daint_run.m diff --git a/matlab/load_daint.m b/matlab/load_daint.m new file mode 100644 index 00000000..946051bc --- /dev/null +++ b/matlab/load_daint.m @@ -0,0 +1,26 @@ +function [ RESDIR ] = load_daint( outfilename ) +%UNTITLED2 Summary of this function goes here +% Detailed explanation goes here + hostfolder = outfilename(1:end-8); + hostfile = [hostfolder,'/out*']; + RESDIR = ['../',outfilename(33:end-8),'/']; + localfolder = [RESDIR,'.']; + elafolder = ['HeLaZ/',outfilename(33:end-8)]; + % Create directory to move the results + CMD = ['ssh ahoffman@ela.cscs.ch ',... + 'mkdir -p ',elafolder]; + disp(CMD); + system(CMD); + + % Move results file from daint to ela3 + CMD = ['ssh ahoffman@ela.cscs.ch ssh ahoffman@daint.cscs.ch ',... + 'mv ', hostfolder,'/* ',elafolder]; + disp(CMD); + system(CMD); + + % Download results from ela3 + CMD = ['scp -r ahoffman@ela.cscs.ch:',hostfile,' ',localfolder]; + disp(CMD); + system(CMD); +end + diff --git a/matlab/write_sbash_daint.m b/matlab/write_sbash_daint.m new file mode 100644 index 00000000..399f8714 --- /dev/null +++ b/matlab/write_sbash_daint.m @@ -0,0 +1,55 @@ +% Write the input script "fort.90" with desired parameters +INPUT = 'setup_and_run.sh'; +fid = fopen(INPUT,'wt'); + +fprintf(fid,[... +'#!/bin/bash\n',... +'mkdir -p $SCRATCH/HeLaZ/wk\n',... +... +'cd $SCRATCH/HeLaZ/wk/\n',... +... +'mkdir -p ', BASIC.RESDIR,'\n',... +'cd ',BASIC.RESDIR,'\n',... +'cp $HOME/HeLaZ/wk/fort.90 .\n',... +'cp $HOME/HeLaZ/wk/batch_script.sh .\n',... +... +'jid=$(sbatch batch_script.sh)\n',... +'echo $jid\n',... +'echo to check output log :\n',... +'echo tail -f $SCRATCH/HeLaZ/results/',BASIC.SIMID,'/',BASIC.PARAMS,'/out.txt']); + +fclose(fid); +system(['cp setup_and_run.sh ',BASIC.RESDIR,'/.']); + +% Write the sbatch script +INPUT = 'batch_script.sh'; +fid = fopen(INPUT,'wt'); + +fprintf(fid,[... +'#!/bin/bash\n',... +'#SBATCH --job-name="',CLUSTER.JNAME,'"\n',... +'#SBATCH --time=', CLUSTER.TIME,'\n',... +'#SBATCH --nodes=', CLUSTER.NODES,'\n',... +'#SBATCH --cpus-per-task=', CLUSTER.CPUPT,'\n',... +'#SBATCH --ntasks-per-node=', CLUSTER.NTPN,'\n',... +'#SBATCH --mem=', CLUSTER.MEM,'\n',... +'#SBATCH --error=err.txt\n',... +'#SBATCH --output=out.txt\n',... +'#SBATCH --account="s882"\n',... +'#SBATCH --constraint=mc\n',... +'#SBATCH --hint=nomultithread\n',... +'#SBATCH --partition=',CLUSTER.PART,'\n',... +'export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK\n',... +...% '#SBATCH --job-name=',PARAMS,'\n\n',... +'module purge\n',... +'module load PrgEnv-intel\n',... +'module load cray-hdf5-parallel\n',... +'module load cray-mpich\n',... +'module load craype-x86-skylake\n',... +'module load cray-fftw\n',... +'srun ./../../../bin/helaz']); + +fclose(fid); +system(['cp batch_script.sh ',BASIC.RESDIR,'/.']); + +system('scp {fort.90,setup_and_run.sh,batch_script.sh} ahoffman@ela.cscs.ch:HeLaZ/wk'); \ No newline at end of file diff --git a/matlab/write_sbash.m b/matlab/write_sbash_marconi.m similarity index 84% rename from matlab/write_sbash.m rename to matlab/write_sbash_marconi.m index 14505251..f41e680e 100644 --- a/matlab/write_sbash.m +++ b/matlab/write_sbash_marconi.m @@ -14,7 +14,7 @@ fprintf(fid,[... 'cp $HOME/HeLaZ/wk/batch_script.sh .\n',... ... 'sbatch batch_script.sh\n',... -'echo $CINECA_SCRATCH/HeLaZ/results/',BASIC.SIMID,'/',BASIC.PARAMS,'/out.txt']); +'echo tail -f $CINECA_SCRATCH/HeLaZ/results/',BASIC.SIMID,'/',BASIC.PARAMS,'/out.txt']); fclose(fid); system(['cp setup_and_run.sh ',BASIC.RESDIR,'/.']); @@ -33,10 +33,8 @@ fprintf(fid,[... '#SBATCH --mem=', CLUSTER.MEM,'\n',... '#SBATCH --error=err.txt\n',... '#SBATCH --output=out.txt\n',... -'#SBATCH --account=FUA34_GBSedge\n',... +'#SBATCH --account=FUA35_TSVVT421\n',... '#SBATCH --partition=skl_fua_',CLUSTER.PART,'\n',... -'#SBATCH --qos=skl_qos_fualowprio\n\n',... -...% '#SBATCH --job-name=',PARAMS,'\n\n',... 'module load intel\n',... 'module load intelmpi\n',... 'module load autoload hdf5/1.10.4--intelmpi--2018--binary\n',... diff --git a/wk/daint_run.m b/wk/daint_run.m new file mode 100644 index 00000000..6b343440 --- /dev/null +++ b/wk/daint_run.m @@ -0,0 +1,65 @@ +%clear all; +addpath(genpath('../matlab')) % ... add +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Set Up parameters +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% CLUSTER PARAMETERS +CLUSTER.TIME = '06:00:00'; % allocation time hh:mm:ss +CLUSTER.NODES = '1'; % MPI process +CLUSTER.CPUPT = '1'; % CPU per task +CLUSTER.NTPN = '24'; % N tasks per node +CLUSTER.PART = 'normal'; % debug or normal +CLUSTER.MEM = '12GB'; % Memory +CLUSTER.JNAME = 'gamma_inf';% Job name +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% PHYSICAL PARAMETERS +NU = 0.1; % Collision frequency +ETAB = 0.6; % Magnetic gradient +NU_HYP = 0.2; % Hyperdiffusivity coefficient +%% GRID PARAMETERS +N = 150; % Frequency gridpoints (Nkr = N/2) +L = 70; % Size of the squared frequency domain +P = 12; % Electron and Ion highest Hermite polynomial degree +J = 06; % Electron and Ion highest Laguerre polynomial degree +MU_P = 0; % Hermite hyperdiffusivity -mu_p*(d/dvpar)^4 f +MU_J = 0; % Laguerre hyperdiffusivity -mu_j*(d/dvperp)^4 f +%% TIME PARAMETERS +TMAX = 1000; % Maximal time unit +DT = 1e-2; % Time step +SPS0D = 1; % Sampling per time unit for profiler +SPS2D = 1/2; % Sampling per time unit for 2D arrays +SPS5D = 1/10; % Sampling per time unit for 5D arrays +SPSCP = 0; % Sampling per time unit for checkpoints +RESTART = 0; % To restart from last checkpoint +JOB2LOAD= 0; +%% OPTIONS +% SIMID = ['debug']; % Name of the simulation +SIMID = ['Daint_eta_',num2str(ETAB),'_nu_%0.0e']; % Name of the simulation +SIMID = sprintf(SIMID,NU); +CO = -3; % Collision operator (0 : L.Bernstein, -1 : Full Coulomb, -2 : Dougherty, -3 : GK Dougherty) +CLOS = 0; % Closure model (0: =0 truncation, 1: semi coll, 2: Copy closure J+1 = J, P+2 = P) +KERN = 0; % Kernel model (0 : GK) +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% fixed parameters (for current study) +KR0KH = 0; A0KH = 0; % Background phi mode to drive Ray-Tay inst. +KREQ0 = 0; % put kr = 0 +KPAR = 0.0; % Parellel wave vector component +LAMBDAD = 0.0; +NON_LIN = 1 *(1-KREQ0); % activate non-linearity (is cancelled if KREQ0 = 1) +PMAXE = P; % Highest electron Hermite polynomial degree +JMAXE = J; % Highest '' Laguerre '' +PMAXI = P; % Highest ion Hermite polynomial degree +JMAXI = J; % Highest '' Laguerre '' +kmax = N*pi/L;% Highest fourier mode +HD_CO = 0.5; % Hyper diffusivity cutoff ratio +MU = NU_HYP/(HD_CO*kmax)^4 % Hyperdiffusivity coefficient +NOISE0 = 1.0e-5; +ETAT = 0.0; % Temperature gradient +ETAN = 1.0; % Density gradient +TAU = 1.0; % e/i temperature ratio +%% Run file management scripts +setup +write_sbash_daint +system('rm fort.90 setup_and_run.sh batch_script.sh'); +disp('done'); -- GitLab