Add partition to input for pargen test programs.

ILmat
Salvatore Filippone 8 years ago
parent 6faed403ee
commit 0b4854b6e9

@ -548,7 +548,7 @@ program psb_d_pde2d
integer(psb_ipk_) :: ictxt, iam, np
! solver parameters
integer(psb_ipk_) :: iter, itmax,itrace, istopc, irst
integer(psb_ipk_) :: iter, itmax,itrace, istopc, irst, ipart
integer(psb_epk_) :: amatsize, precsize, descsize, d2size
real(psb_dpk_) :: err, eps
@ -581,14 +581,14 @@ program psb_d_pde2d
!
! get parameters
!
call get_parms(ictxt,kmethd,ptype,afmt,idim,istopc,itmax,itrace,irst)
call get_parms(ictxt,kmethd,ptype,afmt,idim,istopc,itmax,itrace,irst,ipart)
!
! allocate and fill in the coefficient matrix, rhs and initial guess
!
call psb_barrier(ictxt)
t1 = psb_wtime()
call psb_gen_pde2d(ictxt,idim,a,bv,xxv,desc_a,afmt,info)
call psb_gen_pde2d(ictxt,idim,a,bv,xxv,desc_a,afmt,info,partition=ipart)
call psb_barrier(ictxt)
t2 = psb_wtime() - t1
if(info /= psb_success_) then
@ -691,10 +691,10 @@ contains
!
! get iteration parameters from standard input
!
subroutine get_parms(ictxt,kmethd,ptype,afmt,idim,istopc,itmax,itrace,irst)
subroutine get_parms(ictxt,kmethd,ptype,afmt,idim,istopc,itmax,itrace,irst,ipart)
integer(psb_ipk_) :: ictxt
character(len=*) :: kmethd, ptype, afmt
integer(psb_ipk_) :: idim, istopc,itmax,itrace,irst
integer(psb_ipk_) :: idim, istopc,itmax,itrace,irst,ipart
integer(psb_ipk_) :: np, iam
integer(psb_ipk_) :: ip, inp_unit
character(len=1024) :: filename
@ -724,21 +724,26 @@ contains
read(inp_unit,*) idim
if (ip >= 4) then
read(inp_unit,*) ipart
else
ipart = 3
endif
if (ip >= 5) then
read(inp_unit,*) istopc
else
istopc=1
endif
if (ip >= 5) then
if (ip >= 6) then
read(inp_unit,*) itmax
else
itmax=500
endif
if (ip >= 6) then
if (ip >= 7) then
read(inp_unit,*) itrace
else
itrace=-1
endif
if (ip >= 7) then
if (ip >= 8) then
read(inp_unit,*) irst
else
irst=1
@ -746,8 +751,16 @@ contains
write(psb_out_unit,'("Solving matrix : ell1")')
write(psb_out_unit,'("Grid dimensions : ",i5," x ",i5)')idim,idim
write(psb_out_unit,'("Number of processors : ",i0)')np
write(psb_out_unit,'("Data distribution : BLOCK")')
write(psb_out_unit,'("Number of processors : ",i0)') np
select case(ipart)
case(1)
write(psb_out_unit,'("Data distribution : BLOCK")')
case(3)
write(psb_out_unit,'("Data distribution : 2D")')
case default
ipart = 3
write(psb_out_unit,'("Unknown data distrbution, defaulting to 2D")')
end select
write(psb_out_unit,'("Preconditioner : ",a)') ptype
write(psb_out_unit,'("Iterative method : ",a)') kmethd
write(psb_out_unit,'(" ")')
@ -767,6 +780,7 @@ contains
call psb_bcast(ictxt,afmt)
call psb_bcast(ictxt,ptype)
call psb_bcast(ictxt,idim)
call psb_bcast(ictxt,ipart)
call psb_bcast(ictxt,istopc)
call psb_bcast(ictxt,itmax)
call psb_bcast(ictxt,itrace)
@ -782,13 +796,14 @@ contains
integer(psb_ipk_) :: iout
write(iout,*)'incorrect parameter(s) found'
write(iout,*)' usage: pde2d90 methd prec dim &
&[istop itmax itrace]'
&[ipart istop itmax itrace]'
write(iout,*)' where:'
write(iout,*)' methd: cgstab cgs rgmres bicgstabl'
write(iout,*)' prec : bjac diag none'
write(iout,*)' dim number of points along each axis'
write(iout,*)' the size of the resulting linear '
write(iout,*)' system is dim**3'
write(iout,*)' system is dim**2'
write(iout,*)' ipart data partition 1 3 '
write(iout,*)' istop stopping criterion 1, 2 '
write(iout,*)' itmax maximum number of iterations [500] '
write(iout,*)' itrace <=0 (no tracing, default) or '

@ -253,7 +253,7 @@ contains
m = (1_psb_lpk_*idim)*idim*idim
n = m
nnz = ((n*9)/(np))
nnz = ((n*7)/(np))
if(iam == psb_root_) write(psb_out_unit,'("Generating Matrix (size=",i0,")...")')n
t0 = psb_wtime()
select case(partition_)
@ -589,7 +589,7 @@ program psb_d_pde3d
integer(psb_ipk_) :: ictxt, iam, np
! solver parameters
integer(psb_ipk_) :: iter, itmax,itrace, istopc, irst
integer(psb_ipk_) :: iter, itmax,itrace, istopc, irst, ipart
integer(psb_epk_) :: amatsize, precsize, descsize, d2size
real(psb_dpk_) :: err, eps
@ -623,14 +623,14 @@ program psb_d_pde3d
!
! get parameters
!
call get_parms(ictxt,kmethd,ptype,afmt,idim,istopc,itmax,itrace,irst)
call get_parms(ictxt,kmethd,ptype,afmt,idim,istopc,itmax,itrace,irst,ipart)
!
! allocate and fill in the coefficient matrix, rhs and initial guess
!
call psb_barrier(ictxt)
t1 = psb_wtime()
call psb_gen_pde3d(ictxt,idim,a,bv,xxv,desc_a,afmt,info)
call psb_gen_pde3d(ictxt,idim,a,bv,xxv,desc_a,afmt,info,partition=ipart)
call psb_barrier(ictxt)
t2 = psb_wtime() - t1
if(info /= psb_success_) then
@ -733,10 +733,10 @@ contains
!
! get iteration parameters from standard input
!
subroutine get_parms(ictxt,kmethd,ptype,afmt,idim,istopc,itmax,itrace,irst)
subroutine get_parms(ictxt,kmethd,ptype,afmt,idim,istopc,itmax,itrace,irst,ipart)
integer(psb_ipk_) :: ictxt
character(len=*) :: kmethd, ptype, afmt
integer(psb_ipk_) :: idim, istopc,itmax,itrace,irst
integer(psb_ipk_) :: idim, istopc,itmax,itrace,irst,ipart
integer(psb_ipk_) :: np, iam
integer(psb_ipk_) :: ip, inp_unit
character(len=1024) :: filename
@ -766,34 +766,45 @@ contains
read(inp_unit,*) idim
if (ip >= 4) then
read(inp_unit,*) ipart
else
ipart = 3
endif
if (ip >= 5) then
read(inp_unit,*) istopc
else
istopc=1
endif
if (ip >= 5) then
if (ip >= 6) then
read(inp_unit,*) itmax
else
itmax=500
endif
if (ip >= 6) then
if (ip >= 7) then
read(inp_unit,*) itrace
else
itrace=-1
endif
if (ip >= 7) then
if (ip >= 8) then
read(inp_unit,*) irst
else
irst=1
endif
! broadcast parameters to all processors
write(psb_out_unit,'("Solving matrix : ell1")')
write(psb_out_unit,&
& '("Grid dimensions : ",i4," x ",i4," x ",i4)') &
& idim,idim,idim
write(psb_out_unit,'("Number of processors : ",i0)')np
write(psb_out_unit,'("Data distribution : BLOCK")')
select case(ipart)
case(1)
write(psb_out_unit,'("Data distribution : BLOCK")')
case(3)
write(psb_out_unit,'("Data distribution : 3D")')
case default
ipart = 3
write(psb_out_unit,'("Unknown data distrbution, defaulting to 3D")')
end select
write(psb_out_unit,'("Preconditioner : ",a)') ptype
write(psb_out_unit,'("Iterative method : ",a)') kmethd
write(psb_out_unit,'(" ")')
@ -813,6 +824,7 @@ contains
call psb_bcast(ictxt,afmt)
call psb_bcast(ictxt,ptype)
call psb_bcast(ictxt,idim)
call psb_bcast(ictxt,ipart)
call psb_bcast(ictxt,istopc)
call psb_bcast(ictxt,itmax)
call psb_bcast(ictxt,itrace)
@ -835,6 +847,7 @@ contains
write(iout,*)' dim number of points along each axis'
write(iout,*)' the size of the resulting linear '
write(iout,*)' system is dim**3'
write(iout,*)' ipart data partition 1 3 '
write(iout,*)' istop stopping criterion 1, 2 '
write(iout,*)' itmax maximum number of iterations [500] '
write(iout,*)' itrace <=0 (no tracing, default) or '

@ -548,7 +548,7 @@ program psb_s_pde2d
integer(psb_ipk_) :: ictxt, iam, np
! solver parameters
integer(psb_ipk_) :: iter, itmax,itrace, istopc, irst
integer(psb_ipk_) :: iter, itmax,itrace, istopc, irst, ipart
integer(psb_epk_) :: amatsize, precsize, descsize, d2size
real(psb_spk_) :: err, eps
@ -581,14 +581,14 @@ program psb_s_pde2d
!
! get parameters
!
call get_parms(ictxt,kmethd,ptype,afmt,idim,istopc,itmax,itrace,irst)
call get_parms(ictxt,kmethd,ptype,afmt,idim,istopc,itmax,itrace,irst,ipart)
!
! allocate and fill in the coefficient matrix, rhs and initial guess
!
call psb_barrier(ictxt)
t1 = psb_wtime()
call psb_gen_pde2d(ictxt,idim,a,bv,xxv,desc_a,afmt,info)
call psb_gen_pde2d(ictxt,idim,a,bv,xxv,desc_a,afmt,info,partition=ipart)
call psb_barrier(ictxt)
t2 = psb_wtime() - t1
if(info /= psb_success_) then
@ -691,10 +691,10 @@ contains
!
! get iteration parameters from standard input
!
subroutine get_parms(ictxt,kmethd,ptype,afmt,idim,istopc,itmax,itrace,irst)
subroutine get_parms(ictxt,kmethd,ptype,afmt,idim,istopc,itmax,itrace,irst,ipart)
integer(psb_ipk_) :: ictxt
character(len=*) :: kmethd, ptype, afmt
integer(psb_ipk_) :: idim, istopc,itmax,itrace,irst
integer(psb_ipk_) :: idim, istopc,itmax,itrace,irst,ipart
integer(psb_ipk_) :: np, iam
integer(psb_ipk_) :: ip, inp_unit
character(len=1024) :: filename
@ -724,21 +724,26 @@ contains
read(inp_unit,*) idim
if (ip >= 4) then
read(inp_unit,*) ipart
else
ipart = 3
endif
if (ip >= 5) then
read(inp_unit,*) istopc
else
istopc=1
endif
if (ip >= 5) then
if (ip >= 6) then
read(inp_unit,*) itmax
else
itmax=500
endif
if (ip >= 6) then
if (ip >= 7) then
read(inp_unit,*) itrace
else
itrace=-1
endif
if (ip >= 7) then
if (ip >= 8) then
read(inp_unit,*) irst
else
irst=1
@ -746,8 +751,16 @@ contains
write(psb_out_unit,'("Solving matrix : ell1")')
write(psb_out_unit,'("Grid dimensions : ",i5," x ",i5)')idim,idim
write(psb_out_unit,'("Number of processors : ",i0)')np
write(psb_out_unit,'("Data distribution : BLOCK")')
write(psb_out_unit,'("Number of processors : ",i0)') np
select case(ipart)
case(1)
write(psb_out_unit,'("Data distribution : BLOCK")')
case(3)
write(psb_out_unit,'("Data distribution : 2D")')
case default
ipart = 3
write(psb_out_unit,'("Unknown data distrbution, defaulting to 2D")')
end select
write(psb_out_unit,'("Preconditioner : ",a)') ptype
write(psb_out_unit,'("Iterative method : ",a)') kmethd
write(psb_out_unit,'(" ")')
@ -767,6 +780,7 @@ contains
call psb_bcast(ictxt,afmt)
call psb_bcast(ictxt,ptype)
call psb_bcast(ictxt,idim)
call psb_bcast(ictxt,ipart)
call psb_bcast(ictxt,istopc)
call psb_bcast(ictxt,itmax)
call psb_bcast(ictxt,itrace)
@ -782,13 +796,14 @@ contains
integer(psb_ipk_) :: iout
write(iout,*)'incorrect parameter(s) found'
write(iout,*)' usage: pde2d90 methd prec dim &
&[istop itmax itrace]'
&[ipart istop itmax itrace]'
write(iout,*)' where:'
write(iout,*)' methd: cgstab cgs rgmres bicgstabl'
write(iout,*)' prec : bjac diag none'
write(iout,*)' dim number of points along each axis'
write(iout,*)' the size of the resulting linear '
write(iout,*)' system is dim**3'
write(iout,*)' system is dim**2'
write(iout,*)' ipart data partition 1 3 '
write(iout,*)' istop stopping criterion 1, 2 '
write(iout,*)' itmax maximum number of iterations [500] '
write(iout,*)' itrace <=0 (no tracing, default) or '

@ -253,7 +253,7 @@ contains
m = (1_psb_lpk_*idim)*idim*idim
n = m
nnz = ((n*9)/(np))
nnz = ((n*7)/(np))
if(iam == psb_root_) write(psb_out_unit,'("Generating Matrix (size=",i0,")...")')n
t0 = psb_wtime()
select case(partition_)
@ -589,7 +589,7 @@ program psb_s_pde3d
integer(psb_ipk_) :: ictxt, iam, np
! solver parameters
integer(psb_ipk_) :: iter, itmax,itrace, istopc, irst
integer(psb_ipk_) :: iter, itmax,itrace, istopc, irst, ipart
integer(psb_epk_) :: amatsize, precsize, descsize, d2size
real(psb_spk_) :: err, eps
@ -623,14 +623,14 @@ program psb_s_pde3d
!
! get parameters
!
call get_parms(ictxt,kmethd,ptype,afmt,idim,istopc,itmax,itrace,irst)
call get_parms(ictxt,kmethd,ptype,afmt,idim,istopc,itmax,itrace,irst,ipart)
!
! allocate and fill in the coefficient matrix, rhs and initial guess
!
call psb_barrier(ictxt)
t1 = psb_wtime()
call psb_gen_pde3d(ictxt,idim,a,bv,xxv,desc_a,afmt,info)
call psb_gen_pde3d(ictxt,idim,a,bv,xxv,desc_a,afmt,info,partition=ipart)
call psb_barrier(ictxt)
t2 = psb_wtime() - t1
if(info /= psb_success_) then
@ -733,10 +733,10 @@ contains
!
! get iteration parameters from standard input
!
subroutine get_parms(ictxt,kmethd,ptype,afmt,idim,istopc,itmax,itrace,irst)
subroutine get_parms(ictxt,kmethd,ptype,afmt,idim,istopc,itmax,itrace,irst,ipart)
integer(psb_ipk_) :: ictxt
character(len=*) :: kmethd, ptype, afmt
integer(psb_ipk_) :: idim, istopc,itmax,itrace,irst
integer(psb_ipk_) :: idim, istopc,itmax,itrace,irst,ipart
integer(psb_ipk_) :: np, iam
integer(psb_ipk_) :: ip, inp_unit
character(len=1024) :: filename
@ -766,34 +766,45 @@ contains
read(inp_unit,*) idim
if (ip >= 4) then
read(inp_unit,*) ipart
else
ipart = 3
endif
if (ip >= 5) then
read(inp_unit,*) istopc
else
istopc=1
endif
if (ip >= 5) then
if (ip >= 6) then
read(inp_unit,*) itmax
else
itmax=500
endif
if (ip >= 6) then
if (ip >= 7) then
read(inp_unit,*) itrace
else
itrace=-1
endif
if (ip >= 7) then
if (ip >= 8) then
read(inp_unit,*) irst
else
irst=1
endif
! broadcast parameters to all processors
write(psb_out_unit,'("Solving matrix : ell1")')
write(psb_out_unit,&
& '("Grid dimensions : ",i4," x ",i4," x ",i4)') &
& idim,idim,idim
write(psb_out_unit,'("Number of processors : ",i0)')np
write(psb_out_unit,'("Data distribution : BLOCK")')
select case(ipart)
case(1)
write(psb_out_unit,'("Data distribution : BLOCK")')
case(3)
write(psb_out_unit,'("Data distribution : 3D")')
case default
ipart = 3
write(psb_out_unit,'("Unknown data distrbution, defaulting to 3D")')
end select
write(psb_out_unit,'("Preconditioner : ",a)') ptype
write(psb_out_unit,'("Iterative method : ",a)') kmethd
write(psb_out_unit,'(" ")')
@ -813,6 +824,7 @@ contains
call psb_bcast(ictxt,afmt)
call psb_bcast(ictxt,ptype)
call psb_bcast(ictxt,idim)
call psb_bcast(ictxt,ipart)
call psb_bcast(ictxt,istopc)
call psb_bcast(ictxt,itmax)
call psb_bcast(ictxt,itrace)
@ -835,6 +847,7 @@ contains
write(iout,*)' dim number of points along each axis'
write(iout,*)' the size of the resulting linear '
write(iout,*)' system is dim**3'
write(iout,*)' ipart data partition 1 3 '
write(iout,*)' istop stopping criterion 1, 2 '
write(iout,*)' itmax maximum number of iterations [500] '
write(iout,*)' itrace <=0 (no tracing, default) or '

@ -1,8 +1,9 @@
7 Number of entries below this
8 Number of entries below this
BICGSTAB Iterative method BICGSTAB CGS BICG BICGSTABL RGMRES FCG CGR
BJAC Preconditioner NONE DIAG BJAC
CSR Storage format for matrix A: CSR COO
040 Domain size (acutal system is this**3 (pde3d) or **2 (pde2d) )
004 Domain size (acutal system is this**3 (pde3d) or **2 (pde2d) )
1 Partition: 1 BLOCK 3 3D
2 Stopping criterion 1 2
1000 MAXIT
-1 ITRACE

Loading…
Cancel
Save