Commit fabb1c42 authored by Lorenz Huedepohl's avatar Lorenz Huedepohl Committed by Andreas Marek
Browse files

Loop over all possible domain decompositions

We got reports from a user that there were troubles with certain domain
decompositions. So far the tests only looked at (approximately) square
decompositions in column-major process order.

Now, a new class of tests loops over all possible decompositions
(row * col) for a given number of total tasks.

So far, we can not confirm that there are any problems, all
possibilities work as expected.
parent 939020cc
...@@ -248,8 +248,8 @@ program test_complex2_choose_kernel_with_api_double_precision ...@@ -248,8 +248,8 @@ program test_complex2_choose_kernel_with_api_double_precision
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every ! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair). ! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, & call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
nprow, npcol, my_prow, my_pcol) my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.' print '(a)','| Past BLACS_Gridinfo.'
......
...@@ -195,8 +195,8 @@ program test_complex2_default_kernel_double_precision ...@@ -195,8 +195,8 @@ program test_complex2_default_kernel_double_precision
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every ! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair). ! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, & call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
nprow, npcol, my_prow, my_pcol) my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.' print '(a)','| Past BLACS_Gridinfo.'
......
...@@ -191,8 +191,8 @@ program test_complex2_gpu_version_double_precision ...@@ -191,8 +191,8 @@ program test_complex2_gpu_version_double_precision
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every ! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair). ! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, & call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
nprow, npcol, my_prow, my_pcol) my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.' print '(a)','| Past BLACS_Gridinfo.'
......
...@@ -173,8 +173,8 @@ program test_real2_double_precision ...@@ -173,8 +173,8 @@ program test_real2_double_precision
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every ! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair). ! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, & call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
nprow, npcol, my_prow, my_pcol) my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.' print '(a)','| Past BLACS_Gridinfo.'
......
...@@ -257,8 +257,8 @@ program test_real2_choose_kernel_with_api_double_precision ...@@ -257,8 +257,8 @@ program test_real2_choose_kernel_with_api_double_precision
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every ! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair). ! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, & call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
nprow, npcol, my_prow, my_pcol) my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.' print '(a)','| Past BLACS_Gridinfo.'
......
...@@ -189,8 +189,8 @@ program test_real2_default_kernel_double_precision ...@@ -189,8 +189,8 @@ program test_real2_default_kernel_double_precision
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every ! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair). ! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, & call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
nprow, npcol, my_prow, my_pcol) my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.' print '(a)','| Past BLACS_Gridinfo.'
......
...@@ -191,8 +191,8 @@ program test_real2_gpu_version_double_precision ...@@ -191,8 +191,8 @@ program test_real2_gpu_version_double_precision
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every ! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair). ! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, & call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
nprow, npcol, my_prow, my_pcol) my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.' print '(a)','| Past BLACS_Gridinfo.'
......
...@@ -231,8 +231,8 @@ program test_real2_default_kernel_qr_decomposition_double_precision ...@@ -231,8 +231,8 @@ program test_real2_default_kernel_qr_decomposition_double_precision
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every ! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair). ! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, & call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
nprow, npcol, my_prow, my_pcol) my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.' print '(a)','| Past BLACS_Gridinfo.'
......
...@@ -178,8 +178,8 @@ program test_complex2_single_precision ...@@ -178,8 +178,8 @@ program test_complex2_single_precision
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every ! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair). ! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, & call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
nprow, npcol, my_prow, my_pcol) my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.' print '(a)','| Past BLACS_Gridinfo.'
......
...@@ -247,8 +247,8 @@ program test_complex2_choose_kernel_with_api_single_precision ...@@ -247,8 +247,8 @@ program test_complex2_choose_kernel_with_api_single_precision
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every ! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair). ! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, & call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
nprow, npcol, my_prow, my_pcol) my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.' print '(a)','| Past BLACS_Gridinfo.'
......
...@@ -193,8 +193,8 @@ program test_complex2_default_kernel_single_precision ...@@ -193,8 +193,8 @@ program test_complex2_default_kernel_single_precision
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every ! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair). ! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, & call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
nprow, npcol, my_prow, my_pcol) my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.' print '(a)','| Past BLACS_Gridinfo.'
......
...@@ -190,8 +190,8 @@ program test_complex2_gpu_version_single_precision ...@@ -190,8 +190,8 @@ program test_complex2_gpu_version_single_precision
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every ! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair). ! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, & call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
nprow, npcol, my_prow, my_pcol) my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.' print '(a)','| Past BLACS_Gridinfo.'
......
...@@ -173,8 +173,8 @@ program test_real2_single_precision ...@@ -173,8 +173,8 @@ program test_real2_single_precision
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every ! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair). ! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, & call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
nprow, npcol, my_prow, my_pcol) my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.' print '(a)','| Past BLACS_Gridinfo.'
......
...@@ -255,8 +255,8 @@ program test_real2_choose_kernel_with_api_single_precision ...@@ -255,8 +255,8 @@ program test_real2_choose_kernel_with_api_single_precision
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every ! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair). ! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, & call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
nprow, npcol, my_prow, my_pcol) my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.' print '(a)','| Past BLACS_Gridinfo.'
......
...@@ -189,8 +189,8 @@ program test_real2_default_kernel_single_precision ...@@ -189,8 +189,8 @@ program test_real2_default_kernel_single_precision
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every ! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair). ! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, & call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
nprow, npcol, my_prow, my_pcol) my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.' print '(a)','| Past BLACS_Gridinfo.'
......
...@@ -191,8 +191,8 @@ program test_real2_gpu_version_single_precision ...@@ -191,8 +191,8 @@ program test_real2_gpu_version_single_precision
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every ! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair). ! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, & call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
nprow, npcol, my_prow, my_pcol) my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.' print '(a)','| Past BLACS_Gridinfo.'
......
...@@ -235,8 +235,8 @@ program test_real2_default_kernel_qr_decomposition_single_precision ...@@ -235,8 +235,8 @@ program test_real2_default_kernel_qr_decomposition_single_precision
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every ! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair). ! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, & call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
nprow, npcol, my_prow, my_pcol) my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.' print '(a)','| Past BLACS_Gridinfo.'
......
...@@ -169,8 +169,8 @@ program test_real2_double_banded ...@@ -169,8 +169,8 @@ program test_real2_double_banded
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every ! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair). ! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, & call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
nprow, npcol, my_prow, my_pcol) my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.' print '(a)','| Past BLACS_Gridinfo.'
......
...@@ -171,8 +171,8 @@ program test_complex2_single_banded ...@@ -171,8 +171,8 @@ program test_complex2_single_banded
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every ! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair). ! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, & call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
nprow, npcol, my_prow, my_pcol) my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.' print '(a)','| Past BLACS_Gridinfo.'
......
...@@ -168,8 +168,8 @@ program test_real2_single_banded ...@@ -168,8 +168,8 @@ program test_real2_single_banded
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every ! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair). ! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, & call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
nprow, npcol, my_prow, my_pcol) my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.' print '(a)','| Past BLACS_Gridinfo.'
......
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