From 355bb4bf67dcb970d67d59686023b5a4f9a13019 Mon Sep 17 00:00:00 2001 From: Antoine Cyril David Hoffmann <ahoffman@spcpc606.epfl.ch> Date: Tue, 15 Dec 2020 18:00:20 +0100 Subject: [PATCH] saving data is disabled by negative nsave now --- src/diagnose.F90 | 102 ++++++++++++++++++------------------------- wk/marconi_scaling.m | 26 +++++------ wk/setup.m | 2 +- 3 files changed, 56 insertions(+), 74 deletions(-) diff --git a/src/diagnose.F90 b/src/diagnose.F90 index 2bf554d4..fcc362cb 100644 --- a/src/diagnose.F90 +++ b/src/diagnose.F90 @@ -38,16 +38,19 @@ SUBROUTINE diagnose(kstep) IF (my_id .EQ. 0) WRITE(*,'(3x,a,a)') TRIM(resfile), ' created' ! Checkpoint file creation - WRITE(rstfile,'(a,a1,i2.2,a3)') TRIM(rstfile0),'_',jobnum,'.h5' - CALL creatf(rstfile, fidrst, real_prec='d', mpicomm=MPI_COMM_WORLD) - CALL creatg(fidrst, '/Basic', 'Basic data') - CALL creatg(fidrst, '/Basic/moments_e', 'electron moments') - CALL creatg(fidrst, '/Basic/moments_i', 'ion moments') - CALL creatg(fidrst, '/Basic/phi', 'ES potential') - - IF (my_id .EQ. 0) WRITE(*,'(3x,a,a)') TRIM(rstfile), ' created' - CALL flush(6) - + IF (nsave_cp .GT. 0) THEN + WRITE(rstfile,'(a,a1,i2.2,a3)') TRIM(rstfile0),'_',jobnum,'.h5' + CALL creatf(rstfile, fidrst, real_prec='d', mpicomm=MPI_COMM_WORLD) + CALL creatg(fidrst, '/Basic', 'Basic data') + CALL creatg(fidrst, '/Basic/moments_e', 'electron moments') + CALL creatg(fidrst, '/Basic/moments_i', 'ion moments') + CALL creatg(fidrst, '/Basic/phi', 'ES potential') + + IF (my_id .EQ. 0) WRITE(*,'(3x,a,a)') TRIM(rstfile), ' created' + CALL flush(6) + ELSE + IF (my_id .EQ. 0) WRITE(*,'(3x,a,a)') 'No checkpoint' + ENDIF ! Data group CALL creatg(fidres, "/data", "data") @@ -85,79 +88,56 @@ SUBROUTINE diagnose(kstep) CALL creatd(fidres, rank, dims, "/data/var2d/time", "Time t*c_s/R") CALL creatd(fidres, rank, dims, "/data/var2d/cstep", "iteration number") - IF (nsave_2d .NE. 0) THEN + IF (nsave_2d .GT. 0) THEN CALL creatg(fidres, "/data/var2d/Ne00", "Ne00") - IF (num_procs .EQ. 1) THEN - CALL putarr(fidres, "/data/var2d/Ne00/coordkr", krarray(ikrs:ikre), "kr*rho_s0", ionode=0) - ELSE - CALL putarr(fidres, "/data/var2d/Ne00/coordkr", krarray(ikrs:ikre), "kr*rho_s0", pardim=1) - ENDIF - CALL putarr(fidres, "/data/var2d/Ne00/coordkz", kzarray(ikzs:ikze), "kz*rho_s0", ionode=0) - CALL creatg(fidres, "/data/var2d/Ni00", "Ni00") - IF (num_procs .EQ. 1) THEN - CALL putarr(fidres, "/data/var2d/Ni00/coordkr", krarray(ikrs:ikre), "kr*rho_s0", ionode=0) - ELSE - CALL putarr(fidres, "/data/var2d/Ni00/coordkr", krarray(ikrs:ikre), "kr*rho_s0", pardim=1) - ENDIF - CALL putarr(fidres, "/data/var2d/Ni00/coordkz", kzarray(ikzs:ikze), "kz*rho_s0", ionode=0) - END IF - - IF (nsave_2d .NE. 0) THEN CALL creatg(fidres, "/data/var2d/phi", "phi") IF (num_procs .EQ. 1) THEN + CALL putarr(fidres, "/data/var2d/Ne00/coordkr", krarray(ikrs:ikre), "kr*rho_s0", ionode=0) + CALL putarr(fidres, "/data/var2d/Ni00/coordkr", krarray(ikrs:ikre), "kr*rho_s0", ionode=0) CALL putarr(fidres, "/data/var2d/phi/coordkr", krarray(ikrs:ikre), "kr*rho_s0", ionode=0) ELSE + CALL putarr(fidres, "/data/var2d/Ne00/coordkr", krarray(ikrs:ikre), "kr*rho_s0", pardim=1) + CALL putarr(fidres, "/data/var2d/Ni00/coordkr", krarray(ikrs:ikre), "kr*rho_s0", pardim=1) CALL putarr(fidres, "/data/var2d/phi/coordkr", krarray(ikrs:ikre), "kr*rho_s0", pardim=1) ENDIF - CALL putarr(fidres, "/data/var2d/phi/coordkz", kzarray(ikzs:ikze), "kz*rho_s0", ionode=0) + CALL putarr(fidres, "/data/var2d/Ne00/coordkz", kzarray(ikzs:ikze), "kz*rho_s0", ionode=0) + CALL putarr(fidres, "/data/var2d/Ni00/coordkz", kzarray(ikzs:ikze), "kz*rho_s0", ionode=0) + CALL putarr(fidres, "/data/var2d/phi/coordkz", kzarray(ikzs:ikze), "kz*rho_s0", ionode=0) END IF ! var5d group (moments) rank = 0 CALL creatd(fidres, rank, dims, "/data/var5d/time", "Time t*c_s/R") CALL creatd(fidres, rank, dims, "/data/var5d/cstep", "iteration number") - IF (nsave_5d .NE. 0) THEN + IF (nsave_5d .GT. 0) THEN CALL creatg(fidres, "/data/var5d/moments_e", "moments_e") + CALL creatg(fidres, "/data/var5d/moments_i", "moments_i") + CALL creatg(fidres, "/data/var5d/Sepj", "Sepj") + CALL creatg(fidres, "/data/var5d/Sipj", "Sipj") + CALL putarr(fidres, "/data/var5d/moments_e/coordp", parray_e(ips_e:ipe_e), "p_e", ionode=0) CALL putarr(fidres, "/data/var5d/moments_e/coordj", jarray_e(ijs_e:ije_e), "j_e", ionode=0) - IF (num_procs .EQ. 1) THEN - CALL putarr(fidres, "/data/var5d/moments_e/coordkr", krarray(ikrs:ikre), "kr*rho_s0", ionode=0) - ELSE - CALL putarr(fidres, "/data/var5d/moments_e/coordkr", krarray(ikrs:ikre), "kr*rho_s0", pardim=1) - ENDIF - CALL putarr(fidres, "/data/var5d/moments_e/coordkz", kzarray(ikzs:ikze), "kz*rho_s0", ionode=0) - - CALL creatg(fidres, "/data/var5d/moments_i", "moments_i") CALL putarr(fidres, "/data/var5d/moments_i/coordp", parray_i(ips_i:ipe_i), "p_i", ionode=0) CALL putarr(fidres, "/data/var5d/moments_i/coordj", jarray_i(ijs_i:ije_i), "j_i", ionode=0) - IF (num_procs .EQ. 1) THEN - CALL putarr(fidres, "/data/var5d/moments_i/coordkr", krarray(ikrs:ikre), "kr*rho_s0", ionode=0) - ELSE - CALL putarr(fidres, "/data/var5d/moments_i/coordkr", krarray(ikrs:ikre), "kr*rho_s0", pardim=1) - ENDIF - CALL putarr(fidres, "/data/var5d/moments_i/coordkz", kzarray(ikzs:ikze), "kz*rho_s0", ionode=0) - END IF - - IF (nsave_5d .NE. 0) THEN - CALL creatg(fidres, "/data/var5d/Sepj", "Sepj") CALL putarr(fidres, "/data/var5d/Sepj/coordp", parray_e(ips_e:ipe_e), "p_e", ionode=0) CALL putarr(fidres, "/data/var5d/Sepj/coordj", jarray_e(ijs_e:ije_e), "j_e", ionode=0) - IF (num_procs .EQ. 1) THEN - CALL putarr(fidres, "/data/var5d/Sepj/coordkr", krarray(ikrs:ikre), "kr*rho_s0", ionode=0) - ELSE - CALL putarr(fidres, "/data/var5d/Sepj/coordkr", krarray(ikrs:ikre), "kr*rho_s0", pardim=1) - ENDIF - CALL putarr(fidres, "/data/var5d/Sepj/coordkz", kzarray(ikzs:ikze), "kz*rho_s0", ionode=0) - - CALL creatg(fidres, "/data/var5d/Sipj", "Sipj") CALL putarr(fidres, "/data/var5d/Sipj/coordp", parray_i(ips_i:ipe_i), "p_i", ionode=0) CALL putarr(fidres, "/data/var5d/Sipj/coordj", jarray_i(ijs_i:ije_i), "j_i", ionode=0) IF (num_procs .EQ. 1) THEN + CALL putarr(fidres, "/data/var5d/moments_e/coordkr", krarray(ikrs:ikre), "kr*rho_s0", ionode=0) + CALL putarr(fidres, "/data/var5d/moments_i/coordkr", krarray(ikrs:ikre), "kr*rho_s0", ionode=0) + CALL putarr(fidres, "/data/var5d/Sepj/coordkr", krarray(ikrs:ikre), "kr*rho_s0", ionode=0) CALL putarr(fidres, "/data/var5d/Sipj/coordkr", krarray(ikrs:ikre), "kr*rho_s0", ionode=0) ELSE + CALL putarr(fidres, "/data/var5d/moments_e/coordkr", krarray(ikrs:ikre), "kr*rho_s0", pardim=1) + CALL putarr(fidres, "/data/var5d/moments_i/coordkr", krarray(ikrs:ikre), "kr*rho_s0", pardim=1) + CALL putarr(fidres, "/data/var5d/Sepj/coordkr", krarray(ikrs:ikre), "kr*rho_s0", pardim=1) CALL putarr(fidres, "/data/var5d/Sipj/coordkr", krarray(ikrs:ikre), "kr*rho_s0", pardim=1) ENDIF + CALL putarr(fidres, "/data/var5d/moments_e/coordkz", kzarray(ikzs:ikze), "kz*rho_s0", ionode=0) + CALL putarr(fidres, "/data/var5d/moments_i/coordkz", kzarray(ikzs:ikze), "kz*rho_s0", ionode=0) + CALL putarr(fidres, "/data/var5d/Sepj/coordkz", kzarray(ikzs:ikze), "kz*rho_s0", ionode=0) CALL putarr(fidres, "/data/var5d/Sipj/coordkz", kzarray(ikzs:ikze), "kz*rho_s0", ionode=0) END IF @@ -232,7 +212,7 @@ SUBROUTINE diagnose(kstep) ENDIF ! 2.1 0d history arrays - IF (nsave_0d .NE. 0) THEN + IF (nsave_0d .GT. 0) THEN IF ( MOD(cstep, nsave_0d) == 0 ) THEN CALL diagnose_0d END IF @@ -242,21 +222,21 @@ SUBROUTINE diagnose(kstep) ! empty in our case ! 2.3 2d profiles - IF (nsave_2d .NE. 0) THEN + IF (nsave_2d .GT. 0) THEN IF (MOD(cstep, nsave_2d) == 0) THEN CALL diagnose_2d END IF END IF ! 2.4 3d profiles - IF (nsave_5d .NE. 0) THEN + IF (nsave_5d .GT. 0) THEN IF (MOD(cstep, nsave_5d) == 0) THEN CALL diagnose_5d END IF END IF ! 2.5 Backups - IF (nsave_cp .NE. 0) THEN + IF (nsave_cp .GT. 0) THEN IF (MOD(cstep, nsave_cp) == 0) THEN CALL checkpoint_save(cp_counter) cp_counter = cp_counter + 1 @@ -274,7 +254,9 @@ SUBROUTINE diagnose(kstep) ! Close all diagnostic files CALL closef(fidres) - CALL closef(fidrst) + IF (nsave_cp .GT. 0) THEN + CALL closef(fidrst) + ENDIF END IF diff --git a/wk/marconi_scaling.m b/wk/marconi_scaling.m index ec5aa148..a65e6378 100644 --- a/wk/marconi_scaling.m +++ b/wk/marconi_scaling.m @@ -7,8 +7,8 @@ addpath(genpath('../matlab')) % ... add CLUSTER.TIME = '01:00:00'; % allocation time hh:mm:ss CLUSTER.NODES = '01'; % MPI process CLUSTER.CPUPT = '01'; % CPU per task -CLUSTER.NTPN = '01'; % N tasks per node (openMP) -CLUSTER.PART = 'dbg'; % dbg or prod +CLUSTER.NTPN = '24'; % N tasks per node (openMP) +CLUSTER.PART = 'prod'; % dbg or prod CLUSTER.MEM = '16GB'; % Memory %% PHYSICAL PARAMETERS NU = 1e-1; % Collision frequency @@ -19,23 +19,23 @@ ETAT = 0.0; % Temperature gradient MU = 0e-4; % Hyper diffusivity coefficient NOISE0 = 1.0e-5; %% GRID PARAMETERS -N = 512; % Frequency gridpoints (Nkr = N/2) -L = 100; % Size of the squared frequency domain -PMAXE = 2; % Highest electron Hermite polynomial degree -JMAXE = 1; % Highest '' Laguerre '' -PMAXI = 2; % Highest ion Hermite polynomial degree -JMAXI = 1; % Highest '' Laguerre '' +N = 128; % Frequency gridpoints (Nkr = N/2) +L = 10; % Size of the squared frequency domain +PMAXE = 6; % Highest electron Hermite polynomial degree +JMAXE = 4; % Highest '' Laguerre '' +PMAXI = 6; % Highest ion Hermite polynomial degree +JMAXI = 4; % Highest '' Laguerre '' %% TIME PARAMETERS -TMAX = 5; % Maximal time unit +TMAX = 2; % Maximal time unit DT = 5e-2; % Time step SPS0D = 1/DT; % Sampling per time unit for profiler -SPS2D = 0; % Sampling per time unit for 2D arrays -SPS5D = 0; % Sampling per time unit for 5D arrays -SPSCP = 0; % Sampling per time unit for checkpoints +SPS2D = -1; % Sampling per time unit for 2D arrays +SPS5D = -1; % Sampling per time unit for 5D arrays +SPSCP = -1; % Sampling per time unit for checkpoints RESTART = 0; % To restart from last checkpoint JOB2LOAD= 0; %% OPTIONS -SIMID = ['Scaling__np',num2str(CLUSTER.NTPN)]; % Name of the simulation +SIMID = ['Scaling_np',num2str(CLUSTER.NTPN)]; % Name of the simulation CO = -2; % Collision operator (0 : L.Bernstein, -1 : Full Coulomb, -2 : Dougherty) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/wk/setup.m b/wk/setup.m index b376b7a4..a01bd4dd 100644 --- a/wk/setup.m +++ b/wk/setup.m @@ -77,7 +77,7 @@ BASIC.maxruntime = str2num(CLUSTER.TIME(1:2))*3600 ... % Outputs parameters if RESTART; BASIC.RESTART = '.true.'; else; BASIC.RESTART = '.false.';end; OUTPUTS.nsave_0d = floor(1.0/SPS0D/DT); -OUTPUTS.nsave_1d = 0; +OUTPUTS.nsave_1d = -1; OUTPUTS.nsave_2d = floor(1.0/SPS2D/DT); OUTPUTS.nsave_5d = floor(1.0/SPS5D/DT); OUTPUTS.nsave_cp = floor(1.0/SPSCP/DT); -- GitLab