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