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
......@@ -170,8 +170,8 @@ program test_real_double_precision
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, &
nprow, npcol, my_prow, my_pcol)
call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.'
......
......@@ -135,8 +135,8 @@ program test_cholesky
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, &
nprow, npcol, my_prow, my_pcol)
call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.'
......
......@@ -170,8 +170,8 @@ program test_real_gpu_version_double_precision
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, &
nprow, npcol, my_prow, my_pcol)
call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.'
......
......@@ -135,8 +135,8 @@ program test_invert_trm
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, &
nprow, npcol, my_prow, my_pcol)
call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.'
......
......@@ -131,8 +131,8 @@ program test_transpose_multiply
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, &
nprow, npcol, my_prow, my_pcol)
call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.'
......
......@@ -174,8 +174,8 @@ program test_complex_single_precision
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, &
nprow, npcol, my_prow, my_pcol)
call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.'
......
......@@ -138,8 +138,8 @@ program test_cholesky
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, &
nprow, npcol, my_prow, my_pcol)
call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.'
......
......@@ -173,8 +173,8 @@ program test_complex_gpu_version_single_precision
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, &
nprow, npcol, my_prow, my_pcol)
call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.'
......
......@@ -138,8 +138,8 @@ program test_invert_trm
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, &
nprow, npcol, my_prow, my_pcol)
call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.'
......
......@@ -132,8 +132,8 @@ program test_transpose_multiply
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, &
nprow, npcol, my_prow, my_pcol)
call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.'
......
......@@ -170,8 +170,8 @@ program test_real_single_precision
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, &
nprow, npcol, my_prow, my_pcol)
call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.'
......
......@@ -135,8 +135,8 @@ program test_cholesky
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, &
nprow, npcol, my_prow, my_pcol)
call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.'
......
......@@ -170,8 +170,8 @@ program test_real_gpu_version_single_precision
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, &
nprow, npcol, my_prow, my_pcol)
call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.'
......
......@@ -135,8 +135,8 @@ program test_invert_trm
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, &
nprow, npcol, my_prow, my_pcol)
call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.'
......
......@@ -132,8 +132,8 @@ program test_transpose_multiply
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, &
nprow, npcol, my_prow, my_pcol)
call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.'
......
......@@ -153,8 +153,8 @@ program test_solve_tridi_single
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, &
nprow, npcol, my_prow, my_pcol)
call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.'
......
......@@ -152,8 +152,8 @@ program test_solve_tridi
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, &
nprow, npcol, my_prow, my_pcol)
call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.'
......
......@@ -171,8 +171,8 @@ program test_complex2_double_banded
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, &
nprow, npcol, my_prow, my_pcol)
call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then
print '(a)','| Past BLACS_Gridinfo.'
......
......@@ -102,8 +102,8 @@ program test_interface
my_prow = mod(myid, np_cols)
my_pcol = myid / np_cols
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, &
nprow, npcol, my_prow, my_pcol)
call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
my_blacs_ctxt, my_prow, my_pcol)
call set_up_blacs_descriptor(na, nblk, my_prow, my_pcol, np_rows, np_cols, &
na_rows, na_cols, sc_desc, my_blacs_ctxt, info)
......
......@@ -178,8 +178,8 @@ program test_complex2_double_precision
! consistent (i.e. 0<=my_prow<np_rows, 0<=my_pcol<np_cols and every
! process has a unique (my_prow,my_pcol) pair).
call set_up_blacsgrid(mpi_comm_world, my_blacs_ctxt, np_rows, np_cols, &
nprow, npcol, my_prow, my_pcol)
call set_up_blacsgrid(mpi_comm_world, np_rows, np_cols, 'C', &
my_blacs_ctxt, my_prow, my_pcol)
if (myid==0) then
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