From e3333b8b015c3f9acb1c29d55d9d6c38f96c4817 Mon Sep 17 00:00:00 2001 From: KyleKlenk <kyle.c.klenk@gmail.com> Date: Wed, 7 Dec 2022 13:10:57 -0600 Subject: [PATCH] added some error handling --- bin/submission_one.sh | 14 ++++- .../cpp_code/file_access_actor.cpp | 3 + .../fortran_code/output_structure.f90 | 63 ++++++++++--------- 3 files changed, 46 insertions(+), 34 deletions(-) diff --git a/bin/submission_one.sh b/bin/submission_one.sh index d7ac8b2..f768c5d 100755 --- a/bin/submission_one.sh +++ b/bin/submission_one.sh @@ -5,9 +5,17 @@ #SBATCH --job-name=Summa-Actors #SBATCH --mail-user=kyle.klenk@usask.ca #SBATCH --mail-type=ALL -#SBATCH --output=/scratch/gwf/gwf_cmt/kck540/Summa-Actors/slurm/Summa-Actors%A.out +#SBATCH --output=/scratch/gwf/gwf_cmt/kck540/Summa-Actors/slurm/Summa-Actors%A_%a.out #SBATCH --account=hpc_c_giws_clark +SBATCH --array=0-1 -# /globalhome/kck540/HPC/Summa-Projects/Summa-Actors/bin/summaMain -g 1 -n 15 -c /project/gwf/gwf_cmt/kck540/domain_NorthAmerica/summa_actors_input/Summa_Actors_Settings.json +# offset=$SLURM_ARRAY_TASK_ID +# if [ $offset -eq 0 ] +# then +# /globalhome/kck540/HPC/Summa-Projects/Summa-Actors/bin/summaMain -g 1 -n 1 -c /project/gwf/gwf_cmt/kck540/domain_NorthAmerica/summa_actors_input/Summa_Actors_Settings.json -/globalhome/kck540/HPC/Summa-Projects/Summa-Actors/build/summa/bin/summa.exe -g 1 15 -m /project/gwf/gwf_cmt/kck540/domain_NorthAmerica/summa_actors_input/OutputTesting/fileManager_SummaOriginal.txt \ No newline at end of file +# else +# /globalhome/kck540/HPC/Summa-Projects/Summa-Actors/build/summa/bin/summa.exe -g 1 1 -m /project/gwf/gwf_cmt/kck540/domain_NorthAmerica/summa_actors_input/OutputTesting/fileManager_SummaOriginal.txt + +# fi +/globalhome/kck540/HPC/Summa-Projects/Summa-Actors/bin/summaMain -g 1 -n 50 -c /project/gwf/gwf_cmt/kck540/domain_NorthAmerica/summa_actors_input/Summa_Actors_Settings.json diff --git a/build/source/actors/file_access_actor/cpp_code/file_access_actor.cpp b/build/source/actors/file_access_actor/cpp_code/file_access_actor.cpp index 0f2662f..df1e7a7 100644 --- a/build/source/actors/file_access_actor/cpp_code/file_access_actor.cpp +++ b/build/source/actors/file_access_actor/cpp_code/file_access_actor.cpp @@ -35,6 +35,9 @@ behavior file_access_actor(stateful_actor<file_access_state>* self, int start_gr initalizeFileAccessActor(self); + if (self->state.file_access_actor_settings.num_partitions_in_output_buffer > num_gru) { + self->state.file_access_actor_settings.num_partitions_in_output_buffer = num_gru; + } // Setup output container initArrayOfOuputPartitions(self->state.output_partitions, diff --git a/build/source/actors/file_access_actor/fortran_code/output_structure.f90 b/build/source/actors/file_access_actor/fortran_code/output_structure.f90 index 01ad49e..22ba71b 100644 --- a/build/source/actors/file_access_actor/fortran_code/output_structure.f90 +++ b/build/source/actors/file_access_actor/fortran_code/output_structure.f90 @@ -249,37 +249,38 @@ subroutine deallocateOutputStructure(err) bind(C, name="deallocateOutputStructur err = 0 ! Time - call deallocateData_output(outputStructure(1)%timeStruct(1)); deallocate(outputStructure(1)%timeStruct) - ! Forc - call deallocateData_output(outputStructure(1)%forcStat(1)); deallocate(outputStructure(1)%forcStat) - call deallocateData_output(outputStructure(1)%forcStruct(1)); deallocate(outputStructure(1)%forcStruct) - ! prog - call deallocateData_output(outputStructure(1)%progStat(1)); deallocate(outputStructure(1)%progStat) - call deallocateData_output(outputStructure(1)%progStruct(1)); deallocate(outputStructure(1)%progStruct) - ! diag - call deallocateData_output(outputStructure(1)%diagStat(1)); deallocate(outputStructure(1)%diagStat) - call deallocateData_output(outputStructure(1)%diagStruct(1)); deallocate(outputStructure(1)%diagStruct) - ! flux - call deallocateData_output(outputStructure(1)%fluxStat(1)); deallocate(outputStructure(1)%fluxStat) - call deallocateData_output(outputStructure(1)%fluxStruct(1)); deallocate(outputStructure(1)%fluxStruct) - ! indx - call deallocateData_output(outputStructure(1)%indxStat(1)); deallocate(outputStructure(1)%indxStat) - call deallocateData_output(outputStructure(1)%indxStruct(1)); deallocate(outputStructure(1)%indxStruct) - ! bvar - call deallocateData_output(outputStructure(1)%bvarStat(1)); deallocate(outputStructure(1)%bvarStat) - call deallocateData_output(outputStructure(1)%bvarStruct(1)); deallocate(outputStructure(1)%bvarStruct) - ! id - call deallocateData_output(outputStructure(1)%idStruct(1)); deallocate(outputStructure(1)%idStruct) - ! attr - call deallocateData_output(outputStructure(1)%attrStruct(1)); deallocate(outputStructure(1)%attrStruct) - ! type - call deallocateData_output(outputStructure(1)%typeStruct(1)); deallocate(outputStructure(1)%typeStruct) - ! mpar - call deallocateData_output(outputStructure(1)%mparStruct(1)); deallocate(outputStructure(1)%mparStruct) - ! bpar - call deallocateData_output(outputStructure(1)%bparStruct(1)); deallocate(outputStructure(1)%bparStruct) - ! finalize stats - call deallocateData_output(outputStructure(1)%finalizeStats(1)); deallocate(outputStructure(1)%finalizeStats) + deallocate(outputStructure) + ! call deallocateData_output(outputStructure(1)%timeStruct(1)); deallocate(outputStructure(1)%timeStruct) + ! ! Forc + ! call deallocateData_output(outputStructure(1)%forcStat(1)); deallocate(outputStructure(1)%forcStat) + ! call deallocateData_output(outputStructure(1)%forcStruct(1)); deallocate(outputStructure(1)%forcStruct) + ! ! prog + ! call deallocateData_output(outputStructure(1)%progStat(1)); deallocate(outputStructure(1)%progStat) + ! call deallocateData_output(outputStructure(1)%progStruct(1)); deallocate(outputStructure(1)%progStruct) + ! ! diag + ! call deallocateData_output(outputStructure(1)%diagStat(1)); deallocate(outputStructure(1)%diagStat) + ! call deallocateData_output(outputStructure(1)%diagStruct(1)); deallocate(outputStructure(1)%diagStruct) + ! ! flux + ! call deallocateData_output(outputStructure(1)%fluxStat(1)); deallocate(outputStructure(1)%fluxStat) + ! call deallocateData_output(outputStructure(1)%fluxStruct(1)); deallocate(outputStructure(1)%fluxStruct) + ! ! indx + ! call deallocateData_output(outputStructure(1)%indxStat(1)); deallocate(outputStructure(1)%indxStat) + ! call deallocateData_output(outputStructure(1)%indxStruct(1)); deallocate(outputStructure(1)%indxStruct) + ! ! bvar + ! call deallocateData_output(outputStructure(1)%bvarStat(1)); deallocate(outputStructure(1)%bvarStat) + ! call deallocateData_output(outputStructure(1)%bvarStruct(1)); deallocate(outputStructure(1)%bvarStruct) + ! ! id + ! call deallocateData_output(outputStructure(1)%idStruct(1)); deallocate(outputStructure(1)%idStruct) + ! ! attr + ! call deallocateData_output(outputStructure(1)%attrStruct(1)); deallocate(outputStructure(1)%attrStruct) + ! ! type + ! call deallocateData_output(outputStructure(1)%typeStruct(1)); deallocate(outputStructure(1)%typeStruct) + ! ! mpar + ! call deallocateData_output(outputStructure(1)%mparStruct(1)); deallocate(outputStructure(1)%mparStruct) + ! ! bpar + ! call deallocateData_output(outputStructure(1)%bparStruct(1)); deallocate(outputStructure(1)%bparStruct) + ! ! finalize stats + ! call deallocateData_output(outputStructure(1)%finalizeStats(1)); deallocate(outputStructure(1)%finalizeStats) end subroutine deallocateOutputStructure -- GitLab