Commit 036c6d8e authored by Richard Angersbach's avatar Richard Angersbach
Browse files

CI: Check if par I/O is compatible with optimizations and parallelization...

CI: Check if par I/O is compatible with optimizations and parallelization (poly, vect, OMP, CSE, unrolling)
parent ee51b0d8
...@@ -292,32 +292,38 @@ test:Appl_OptFlow3D: ...@@ -292,32 +292,38 @@ test:Appl_OptFlow3D:
test:ParIO_CheckEquality_2D: test:ParIO_CheckEquality_2D:
extends: .test_template_IO extends: .test_template_IO
tags:
- docker
- AVX2
script: script:
# 2D_Scalar_CheckEquality_ReadAfterWrite # 2D_Scalar_CheckEquality_ReadAfterWrite
- mkdir -p data/2D_Scalar_CheckEquality_ReadAfterWrite - mkdir -p data/2D_Scalar_CheckEquality_ReadAfterWrite
- python3 run_test.py ../Compiler/Compiler.jar:../Compiler/lib 2D_Scalar_CheckEquality_ReadAfterWrite IOTest/2D_Scalar_CheckEquality_ReadAfterWrite.knowledge "IOTest/2D_Scalar_CheckEquality_ReadAfterWrite.exa4" "" 2 1 Platform/random.platform output - python3 run_test.py ../Compiler/Compiler.jar:../Compiler/lib 2D_Scalar_CheckEquality_ReadAfterWrite IOTest/2D_Scalar_CheckEquality_ReadAfterWrite.knowledge "IOTest/2D_Scalar_CheckEquality_ReadAfterWrite.exa4" "" 2 1 Platform/anyavx2.platform output
# 2D_LayoutTrafo_CheckEquality_ReadAfterWrite # 2D_LayoutTrafo_CheckEquality_ReadAfterWrite
- mkdir -p data/2D_LayoutTrafo_CheckEquality_ReadAfterWrite - mkdir -p data/2D_LayoutTrafo_CheckEquality_ReadAfterWrite
- python3 run_test.py ../Compiler/Compiler.jar:../Compiler/lib 2D_LayoutTrafo_CheckEquality_ReadAfterWrite IOTest/2D_LayoutTrafo_CheckEquality_ReadAfterWrite.knowledge "IOTest/2D_LayoutTrafo_CheckEquality_ReadAfterWrite.exa4" "" 2 1 Platform/random.platform output - python3 run_test.py ../Compiler/Compiler.jar:../Compiler/lib 2D_LayoutTrafo_CheckEquality_ReadAfterWrite IOTest/2D_LayoutTrafo_CheckEquality_ReadAfterWrite.knowledge "IOTest/2D_LayoutTrafo_CheckEquality_ReadAfterWrite.exa4" "" 2 1 Platform/anyavx2.platform output
# 2D_Vector_CheckEquality_ReadAfterWrite # 2D_Vector_CheckEquality_ReadAfterWrite
- mkdir -p data/2D_Vector_CheckEquality_ReadAfterWrite - mkdir -p data/2D_Vector_CheckEquality_ReadAfterWrite
- python3 run_test.py ../Compiler/Compiler.jar:../Compiler/lib 2D_Vector_CheckEquality_ReadAfterWrite IOTest/2D_Vector_CheckEquality_ReadAfterWrite.knowledge "IOTest/2D_Vector_CheckEquality_ReadAfterWrite.exa4" "" 4 1 Platform/random.platform output - python3 run_test.py ../Compiler/Compiler.jar:../Compiler/lib 2D_Vector_CheckEquality_ReadAfterWrite IOTest/2D_Vector_CheckEquality_ReadAfterWrite.knowledge "IOTest/2D_Vector_CheckEquality_ReadAfterWrite.exa4" "" 4 1 Platform/anyavx2.platform output
test:ParIO_CheckEquality_3D: test:ParIO_CheckEquality_3D:
extends: .test_template_IO extends: .test_template_IO
tags:
- docker
- AVX2
script: script:
# 3D_Matrix_CheckEquality_ReadAfterWrite # 3D_Matrix_CheckEquality_ReadAfterWrite
- mkdir -p data/3D_Matrix_CheckEquality_ReadAfterWrite - mkdir -p data/3D_Matrix_CheckEquality_ReadAfterWrite
- python3 run_test.py ../Compiler/Compiler.jar:../Compiler/lib 3D_Matrix_CheckEquality_ReadAfterWrite IOTest/3D_Matrix_CheckEquality_ReadAfterWrite.knowledge "IOTest/3D_Matrix_CheckEquality_ReadAfterWrite.exa4" "" 4 1 Platform/random.platform output - python3 run_test.py ../Compiler/Compiler.jar:../Compiler/lib 3D_Matrix_CheckEquality_ReadAfterWrite IOTest/3D_Matrix_CheckEquality_ReadAfterWrite.knowledge "IOTest/3D_Matrix_CheckEquality_ReadAfterWrite.exa4" "" 4 1 Platform/anyavx2.platform output
# 3D_Scalar_CheckEquality_ReadAfterWrite # 3D_Scalar_CheckEquality_ReadAfterWrite
- mkdir -p data/3D_Scalar_CheckEquality_ReadAfterWrite - mkdir -p data/3D_Scalar_CheckEquality_ReadAfterWrite
- python3 run_test.py ../Compiler/Compiler.jar:../Compiler/lib 3D_Scalar_CheckEquality_ReadAfterWrite IOTest/3D_Scalar_CheckEquality_ReadAfterWrite.knowledge "IOTest/3D_Scalar_CheckEquality_ReadAfterWrite.exa4" "" 8 1 Platform/random.platform output - python3 run_test.py ../Compiler/Compiler.jar:../Compiler/lib 3D_Scalar_CheckEquality_ReadAfterWrite IOTest/3D_Scalar_CheckEquality_ReadAfterWrite.knowledge "IOTest/3D_Scalar_CheckEquality_ReadAfterWrite.exa4" "" 8 1 Platform/anyavx2.platform output
# 3D_Vector_CheckEquality_ReadAfterWrite # 3D_Vector_CheckEquality_ReadAfterWrite
- mkdir -p data/3D_Vector_CheckEquality_ReadAfterWrite - mkdir -p data/3D_Vector_CheckEquality_ReadAfterWrite
- python3 run_test.py ../Compiler/Compiler.jar:../Compiler/lib 3D_Vector_CheckEquality_ReadAfterWrite IOTest/3D_Vector_CheckEquality_ReadAfterWrite.knowledge "IOTest/3D_Vector_CheckEquality_ReadAfterWrite.exa4" "" 4 1 Platform/random.platform output - python3 run_test.py ../Compiler/Compiler.jar:../Compiler/lib 3D_Vector_CheckEquality_ReadAfterWrite IOTest/3D_Vector_CheckEquality_ReadAfterWrite.knowledge "IOTest/3D_Vector_CheckEquality_ReadAfterWrite.exa4" "" 4 1 Platform/anyavx2.platform output
# CheckEquality_ReadAfterWrite # CheckEquality_ReadAfterWrite
- mkdir -p data/CheckEquality_ReadAfterWrite - mkdir -p data/CheckEquality_ReadAfterWrite
- python3 run_test.py ../Compiler/Compiler.jar:../Compiler/lib CheckEquality_ReadAfterWrite IOTest/CheckEquality_ReadAfterWrite.knowledge "IOTest/CheckEquality_ReadAfterWrite.exa4" "" 8 1 Platform/random.platform output - python3 run_test.py ../Compiler/Compiler.jar:../Compiler/lib CheckEquality_ReadAfterWrite IOTest/CheckEquality_ReadAfterWrite.knowledge "IOTest/CheckEquality_ReadAfterWrite.exa4" "" 8 1 Platform/anyavx2.platform output
############################################### ###############################################
......
...@@ -36,7 +36,7 @@ Globals { ...@@ -36,7 +36,7 @@ Globals {
Function compareFields@all () : Int { Function compareFields@all () : Int {
// check for equality // check for equality
loop over dest { loop over dest sequentially {
Var diff : Real = fabs(dest - src) Var diff : Real = fabs(dest - src)
if( condition && diff > 0.001 ) { if( condition && diff > 0.001 ) {
print("fields are not equal! src=", src, " dest=", dest) print("fields are not equal! src=", src, " dest=", dest)
......
...@@ -17,9 +17,16 @@ domain_rect_numFragsPerBlock_x = 1 ...@@ -17,9 +17,16 @@ domain_rect_numFragsPerBlock_x = 1
domain_rect_numFragsPerBlock_y = 2 domain_rect_numFragsPerBlock_y = 2
domain_rect_numFragsPerBlock_z = 1 domain_rect_numFragsPerBlock_z = 1
omp_enabled = false omp_enabled = true
omp_numThreads = 1 omp_numThreads = 2
mpi_enabled = true mpi_enabled = true
mpi_numThreads = 2 mpi_numThreads = 2
omp_parallelizeLoopOverFragments = false omp_parallelizeLoopOverFragments = true
omp_parallelizeLoopOverDimensions = false omp_parallelizeLoopOverDimensions = false
poly_optLevel_fine = 3
opt_useAddressPrecalc = true
opt_vectorize = true
opt_unroll = 2
opt_conventionalCSE = true
opt_loopCarriedCSE = true
...@@ -32,7 +32,7 @@ Globals { ...@@ -32,7 +32,7 @@ Globals {
Function compareFields@all () : Int { Function compareFields@all () : Int {
// check for equality // check for equality
loop over dest { loop over dest sequentially {
Var diff : Real = fabs(dest - src) Var diff : Real = fabs(dest - src)
if( condition && diff > 0.001 ) { if( condition && diff > 0.001 ) {
print("fields are not equal! src=", src, " dest=", dest) print("fields are not equal! src=", src, " dest=", dest)
......
...@@ -17,9 +17,16 @@ domain_rect_numFragsPerBlock_x = 1 ...@@ -17,9 +17,16 @@ domain_rect_numFragsPerBlock_x = 1
domain_rect_numFragsPerBlock_y = 2 domain_rect_numFragsPerBlock_y = 2
domain_rect_numFragsPerBlock_z = 1 domain_rect_numFragsPerBlock_z = 1
omp_enabled = false omp_enabled = true
omp_numThreads = 1 omp_numThreads = 2
mpi_enabled = true mpi_enabled = true
mpi_numThreads = 2 mpi_numThreads = 2
omp_parallelizeLoopOverFragments = false omp_parallelizeLoopOverFragments = true
omp_parallelizeLoopOverDimensions = false omp_parallelizeLoopOverDimensions = false
poly_optLevel_fine = 3
opt_useAddressPrecalc = true
opt_vectorize = true
opt_unroll = 2
opt_conventionalCSE = true
opt_loopCarriedCSE = true
\ No newline at end of file
...@@ -24,7 +24,7 @@ Field destVec < global, CellVecWithComm, None >@all ...@@ -24,7 +24,7 @@ Field destVec < global, CellVecWithComm, None >@all
Function compareFields@finest ( ) : Int { Function compareFields@finest ( ) : Int {
// check for equality // check for equality
loop over destVec { loop over destVec sequentially {
compare(srcVec, destVec, 0.001) compare(srcVec, destVec, 0.001)
} }
......
...@@ -17,9 +17,16 @@ domain_rect_numFragsPerBlock_x = 1 ...@@ -17,9 +17,16 @@ domain_rect_numFragsPerBlock_x = 1
domain_rect_numFragsPerBlock_y = 1 domain_rect_numFragsPerBlock_y = 1
domain_rect_numFragsPerBlock_z = 1 domain_rect_numFragsPerBlock_z = 1
omp_enabled = false omp_enabled = true
omp_numThreads = 1 omp_numThreads = 2
mpi_enabled = true mpi_enabled = true
mpi_numThreads = 4 mpi_numThreads = 4
omp_parallelizeLoopOverFragments = false omp_parallelizeLoopOverFragments = true
omp_parallelizeLoopOverDimensions = false omp_parallelizeLoopOverDimensions = false
poly_optLevel_fine = 3
opt_useAddressPrecalc = true
opt_vectorize = true
opt_unroll = 2
opt_conventionalCSE = true
opt_loopCarriedCSE = true
...@@ -24,7 +24,7 @@ Field destMat < global, CellMatWithComm, None >@all ...@@ -24,7 +24,7 @@ Field destMat < global, CellMatWithComm, None >@all
Function compareFields@finest ( ) : Int { Function compareFields@finest ( ) : Int {
// check for equality // check for equality
loop over destMat { loop over destMat sequentially {
compare(srcMat, destMat, 0.001) compare(srcMat, destMat, 0.001)
} }
......
...@@ -17,9 +17,16 @@ domain_rect_numFragsPerBlock_x = 1 ...@@ -17,9 +17,16 @@ domain_rect_numFragsPerBlock_x = 1
domain_rect_numFragsPerBlock_y = 1 domain_rect_numFragsPerBlock_y = 1
domain_rect_numFragsPerBlock_z = 1 domain_rect_numFragsPerBlock_z = 1
omp_enabled = false omp_enabled = true
omp_numThreads = 1 omp_numThreads = 10
mpi_enabled = true mpi_enabled = true
mpi_numThreads = 4 mpi_numThreads = 4
omp_parallelizeLoopOverFragments = false omp_parallelizeLoopOverFragments = false
omp_parallelizeLoopOverDimensions = false omp_parallelizeLoopOverDimensions = true
poly_optLevel_fine = 3
opt_useAddressPrecalc = true
opt_vectorize = true
opt_unroll = 4
opt_conventionalCSE = true
opt_loopCarriedCSE = false
...@@ -24,7 +24,7 @@ Field dest< global, NodeWithComm, None >@all ...@@ -24,7 +24,7 @@ Field dest< global, NodeWithComm, None >@all
Function compareFields@all ( ) : Int { Function compareFields@all ( ) : Int {
// check for equality // check for equality
loop over dest { loop over dest sequentially {
Var diff : Real = fabs(dest - src) Var diff : Real = fabs(dest - src)
if( diff > 0.001 ) { if( diff > 0.001 ) {
print("fields are not equal! src=", src, " dest=", dest) print("fields are not equal! src=", src, " dest=", dest)
......
...@@ -17,9 +17,16 @@ domain_rect_numFragsPerBlock_x = 2 ...@@ -17,9 +17,16 @@ domain_rect_numFragsPerBlock_x = 2
domain_rect_numFragsPerBlock_y = 1 domain_rect_numFragsPerBlock_y = 1
domain_rect_numFragsPerBlock_z = 1 domain_rect_numFragsPerBlock_z = 1
omp_enabled = false omp_enabled = true
omp_numThreads = 1 omp_numThreads = 2
mpi_enabled = true mpi_enabled = true
mpi_numThreads = 8 mpi_numThreads = 8
omp_parallelizeLoopOverFragments = false omp_parallelizeLoopOverFragments = false
omp_parallelizeLoopOverDimensions = false omp_parallelizeLoopOverDimensions = true
poly_optLevel_fine = 3
opt_useAddressPrecalc = true
opt_vectorize = true
opt_unroll = 2
opt_conventionalCSE = true
opt_loopCarriedCSE = true
...@@ -24,7 +24,7 @@ Field destVec < global, CellVecWithComm, None >@all ...@@ -24,7 +24,7 @@ Field destVec < global, CellVecWithComm, None >@all
Function compareFields@finest ( ) : Int { Function compareFields@finest ( ) : Int {
// check for equality // check for equality
loop over destVec { loop over destVec sequentially {
compare(srcVec, destVec, 0.001) compare(srcVec, destVec, 0.001)
} }
......
...@@ -17,10 +17,17 @@ domain_rect_numFragsPerBlock_x = 1 ...@@ -17,10 +17,17 @@ domain_rect_numFragsPerBlock_x = 1
domain_rect_numFragsPerBlock_y = 1 domain_rect_numFragsPerBlock_y = 1
domain_rect_numFragsPerBlock_z = 1 domain_rect_numFragsPerBlock_z = 1
omp_enabled = false omp_enabled = true
omp_numThreads = 1 omp_numThreads = 2
mpi_enabled = true mpi_enabled = true
mpi_numThreads = 4 mpi_numThreads = 4
omp_parallelizeLoopOverFragments = false omp_parallelizeLoopOverFragments = true
omp_parallelizeLoopOverDimensions = false omp_parallelizeLoopOverDimensions = false
poly_optLevel_fine = 3
opt_useAddressPrecalc = true
opt_vectorize = true
opt_unroll = 2
opt_conventionalCSE = true
opt_loopCarriedCSE = true
...@@ -34,7 +34,7 @@ Field dest< global, NodeWithComm, 0.0 >@all ...@@ -34,7 +34,7 @@ Field dest< global, NodeWithComm, 0.0 >@all
Function compareFields@all : Int { Function compareFields@all : Int {
// check for equality // check for equality
loop over dest { loop over dest sequentially {
Var diff : Real = fabs(dest - src) Var diff : Real = fabs(dest - src)
if( diff > 0.001 ) { if( diff > 0.001 ) {
print("fields are not equal! src=", src, " dest=", dest) print("fields are not equal! src=", src, " dest=", dest)
......
...@@ -18,9 +18,16 @@ domain_rect_numFragsPerBlock_x = 2 ...@@ -18,9 +18,16 @@ domain_rect_numFragsPerBlock_x = 2
domain_rect_numFragsPerBlock_y = 1 domain_rect_numFragsPerBlock_y = 1
domain_rect_numFragsPerBlock_z = 1 domain_rect_numFragsPerBlock_z = 1
omp_enabled = false omp_enabled = true
omp_numThreads = 1 omp_numThreads = 2
mpi_enabled = true mpi_enabled = true
mpi_numThreads = 8 mpi_numThreads = 8
omp_parallelizeLoopOverFragments = false omp_parallelizeLoopOverFragments = false
omp_parallelizeLoopOverDimensions = false omp_parallelizeLoopOverDimensions = true
poly_optLevel_fine = 3
opt_useAddressPrecalc = true
opt_vectorize = true
opt_unroll = 2
opt_conventionalCSE = true
opt_loopCarriedCSE = true
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment