(git:66ce584)
Loading...
Searching...
No Matches
cp_fm_struct Module Reference

represent the structure of a full matrix More...

Data Types

type  cp_fm_struct_type
 keeps the information about the structure of a full matrix More...
type  cp_fm_struct_p_type

Functions/Subroutines

subroutine, public cp_fm_struct_create (fmstruct, para_env, context, nrow_global, ncol_global, nrow_block, ncol_block, descriptor, first_p_pos, local_leading_dimension, template_fmstruct, square_blocks, force_block)
 allocates and initializes a full matrix structure
subroutine, public cp_fm_struct_retain (fmstruct)
 retains a full matrix structure
subroutine, public cp_fm_struct_release (fmstruct)
 releases a full matrix structure
logical function, public cp_fm_struct_equivalent (fmstruct1, fmstruct2)
 returns true if the two matrix structures are equivalent, false otherwise.
subroutine, public cp_fm_struct_get (fmstruct, para_env, context, descriptor, ncol_block, nrow_block, nrow_global, ncol_global, first_p_pos, row_indices, col_indices, nrow_local, ncol_local, nrow_locals, ncol_locals, local_leading_dimension)
 returns the values of various attributes of the matrix structure
subroutine, public cp_fm_struct_write_info (fmstruct, io_unit)
 Write nicely formatted info about the FM struct to the given I/O unit.
subroutine, public cp_fm_struct_double (fmstruct, struct, context, col, row)
 creates a struct with twice the number of blocks on each core. If matrix A has to be multiplied with B anc C, a significant speedup of pdgemm can be acchieved by joining the matrices in a new one with this structure (see arnoldi in rt_matrix_exp)
subroutine, public cp_fm_struct_config (nrow_block, ncol_block, force_block)
 allows to modify the default settings for matrix creation
integer function, public cp_fm_struct_get_nrow_block ()
 ...
integer function, public cp_fm_struct_get_ncol_block ()
 ...

Detailed Description

represent the structure of a full matrix

History
08.2002 created [fawzi]
Author
Fawzi Mohamed

Function/Subroutine Documentation

◆ cp_fm_struct_create()

subroutine, public cp_fm_struct::cp_fm_struct_create ( type(cp_fm_struct_type), pointer fmstruct,
type(mp_para_env_type), optional, target para_env,
type(cp_blacs_env_type), optional, target context,
integer, intent(in), optional nrow_global,
integer, intent(in), optional ncol_global,
integer, intent(in), optional nrow_block,
integer, intent(in), optional ncol_block,
integer, dimension(9), intent(in), optional descriptor,
integer, dimension(2), optional first_p_pos,
integer, intent(in), optional local_leading_dimension,
type(cp_fm_struct_type), optional, target template_fmstruct,
logical, intent(in), optional square_blocks,
logical, intent(in), optional force_block )

allocates and initializes a full matrix structure

Parameters
fmstructthe pointer that will point to the new structure
para_envthe parallel environment
contextthe blacs context of this matrix
nrow_globalthe number of row of the full matrix
ncol_globalthe number of columns of the full matrix
nrow_blockthe number of rows of a block of the matrix, omit or set to -1 to use the built-in defaults
ncol_blockthe number of columns of a block of the matrix, omit or set to -1 to use the built-in defaults
descriptorthe scalapack descriptor of the matrix (if not given a new one is allocated
first_p_pos...
local_leading_dimensionthe leading dimension of the locally stored data block
template_fmstructa matrix structure where to take the default values
square_blocks...
force_block...
History
08.2002 created [fawzi]
Author
Fawzi Mohamed

Definition at line 129 of file cp_fm_struct.F.

Here is the call graph for this function:

◆ cp_fm_struct_retain()

subroutine, public cp_fm_struct::cp_fm_struct_retain ( type(cp_fm_struct_type), intent(inout) fmstruct)

retains a full matrix structure

Parameters
fmstructthe structure to retain
History
08.2002 created [fawzi]
Author
Fawzi Mohamed

Definition at line 340 of file cp_fm_struct.F.

Here is the caller graph for this function:

◆ cp_fm_struct_release()

subroutine, public cp_fm_struct::cp_fm_struct_release ( type(cp_fm_struct_type), pointer fmstruct)

releases a full matrix structure

Parameters
fmstructthe structure to release
History
08.2002 created [fawzi]
Author
Fawzi Mohamed

Definition at line 354 of file cp_fm_struct.F.

Here is the call graph for this function:

◆ cp_fm_struct_equivalent()

logical function, public cp_fm_struct::cp_fm_struct_equivalent ( type(cp_fm_struct_type), pointer fmstruct1,
type(cp_fm_struct_type), pointer fmstruct2 )

returns true if the two matrix structures are equivalent, false otherwise.

Parameters
fmstruct1one of the full matrix structures to compare
fmstruct2the second of the full matrix structures to compare
Returns
...
History
08.2002 created [fawzi]
Author
Fawzi Mohamed

Definition at line 391 of file cp_fm_struct.F.

Here is the caller graph for this function:

◆ cp_fm_struct_get()

subroutine, public cp_fm_struct::cp_fm_struct_get ( type(cp_fm_struct_type), intent(in) fmstruct,
type(mp_para_env_type), optional, pointer para_env,
type(cp_blacs_env_type), optional, pointer context,
integer, dimension(9), intent(out), optional descriptor,
integer, intent(out), optional ncol_block,
integer, intent(out), optional nrow_block,
integer, intent(out), optional nrow_global,
integer, intent(out), optional ncol_global,
integer, dimension(2), intent(out), optional first_p_pos,
integer, dimension(:), optional, pointer row_indices,
integer, dimension(:), optional, pointer col_indices,
integer, intent(out), optional nrow_local,
integer, intent(out), optional ncol_local,
integer, dimension(:), optional, pointer nrow_locals,
integer, dimension(:), optional, pointer ncol_locals,
integer, intent(out), optional local_leading_dimension )

returns the values of various attributes of the matrix structure

Parameters
fmstructthe structure you want info about
para_env...
context...
descriptor...
ncol_block...
nrow_block...
nrow_global...
ncol_global...
first_p_pos...
row_indices...
col_indices...
nrow_local...
ncol_local...
nrow_locals...
ncol_locals...
local_leading_dimension...
History
08.2002 created [fawzi]
Author
Fawzi Mohamed

Definition at line 439 of file cp_fm_struct.F.

Here is the caller graph for this function:

◆ cp_fm_struct_write_info()

subroutine, public cp_fm_struct::cp_fm_struct_write_info ( type(cp_fm_struct_type), intent(in) fmstruct,
integer, intent(in) io_unit )

Write nicely formatted info about the FM struct to the given I/O unit.

Parameters
fmstructa cp_fm_struct_type instance
io_unitthe I/O unit to use for writing

Definition at line 481 of file cp_fm_struct.F.

Here is the caller graph for this function:

◆ cp_fm_struct_double()

subroutine, public cp_fm_struct::cp_fm_struct_double ( type(cp_fm_struct_type), pointer fmstruct,
type(cp_fm_struct_type), intent(inout) struct,
type(cp_blacs_env_type), intent(inout), target context,
logical, intent(in) col,
logical, intent(in) row )

creates a struct with twice the number of blocks on each core. If matrix A has to be multiplied with B anc C, a significant speedup of pdgemm can be acchieved by joining the matrices in a new one with this structure (see arnoldi in rt_matrix_exp)

Parameters
fmstructthe struct to create
structstruct of either A or B
context...
colin which direction the matrix should be enlarged
rowin which direction the matrix should be enlarged
History
06.2009 created [fschiff]
Author
Florian Schiffmann

Definition at line 526 of file cp_fm_struct.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cp_fm_struct_config()

subroutine, public cp_fm_struct::cp_fm_struct_config ( integer, intent(in), optional nrow_block,
integer, intent(in), optional ncol_block,
logical, intent(in), optional force_block )

allows to modify the default settings for matrix creation

Parameters
nrow_block...
ncol_block...
force_block...

Definition at line 622 of file cp_fm_struct.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cp_fm_struct_get_nrow_block()

integer function, public cp_fm_struct::cp_fm_struct_get_nrow_block

...

Returns
...

Definition at line 647 of file cp_fm_struct.F.

Here is the caller graph for this function:

◆ cp_fm_struct_get_ncol_block()

integer function, public cp_fm_struct::cp_fm_struct_get_ncol_block

...

Returns
...

Definition at line 657 of file cp_fm_struct.F.

Here is the caller graph for this function: