|
PROGRESS
master
|
The graph module. More...
Data Types | |
| type | subgraph_t |
| Subgraph type. More... | |
| type | graph_partitioning_t |
| Trace per iteration. More... | |
Functions/Subroutines | |
| subroutine, public | prg_initsubgraph (sg, pnum, hsize) |
| Initialize subgraph. More... | |
| subroutine, public | prg_destroysubgraph (sg) |
| Destroy subgraph. More... | |
| subroutine, public | prg_initgraphpartitioning (gp, pname, np, nnodes, nnodes2) |
| Initialize graph partitioning. More... | |
| subroutine, public | prg_destroygraphpartitioning (gp) |
| Destroy graph partitioning. More... | |
| subroutine, public | prg_printgraphpartitioning (gp) |
| Print graph partitioning structure data. More... | |
| subroutine, public | prg_equalpartition (gp, nodesPerPart, nnodes) |
| Create equal graph partitions, based on number of rows/orbitals. More... | |
| real(8) function | time2milliseconds () |
| subroutine, public | prg_setpartition (gp, whichParts, nparts, nnodes, verb) |
| Create a partitioning based on an input assignment of atoms to parts. More... | |
| subroutine, public | prg_sedacspartition (gp, coords, whichParts_guess_saved, g_bml, nparts, nnodes, verb) |
| Create a partitioning based on node flips (as implemented in SEDACS - with several changes) More... | |
| subroutine | do_flips_precomp (whichParts, coords, graph, adj, degs, nnodes, nparts, bal) |
| subroutine | prg_get_balancing (whichParts, np, bal) |
| Get balancing. More... | |
| subroutine | prg_get_parts_indices (gp, nnodes, whichParts) |
| Get part indices. More... | |
| subroutine | prg_get_graphcut (whichParts, degs, graph, cut) |
| Get graph cut. More... | |
| subroutine, public | prg_equalgrouppartition (gp, hindex, ngroup, nodesPerPart, nnodes) |
| Create equal group graph partitions, based on number of atoms/groups. More... | |
| subroutine, public | prg_filepartition (gp, partFile) |
| Read graph partitions from a file, based on number of rows/orbitals. More... | |
| subroutine | prg_readpart (gp, partFile) |
| Read parts (core) from part file. More... | |
| subroutine, public | prg_fnormgraph (gp) |
| Accumulate trace norm across all subgraphs. More... | |
Variables | |
| integer, parameter | dp = kind(1.0d0) |
The graph module.
|
private |
Definition at line 626 of file prg_graph_mod.F90.
| subroutine, public prg_graph_mod::prg_destroygraphpartitioning | ( | type (graph_partitioning_t), intent(inout) | gp | ) |
| subroutine, public prg_graph_mod::prg_destroysubgraph | ( | type (subgraph_t), intent(inout) | sg | ) |
| subroutine, public prg_graph_mod::prg_equalgrouppartition | ( | type (graph_partitioning_t), intent(inout) | gp, |
| integer, dimension(2,ngroup), intent(in) | hindex, | ||
| integer, intent(in) | ngroup, | ||
| integer, intent(in) | nodesPerPart, | ||
| integer, intent(in) | nnodes | ||
| ) |
Create equal group graph partitions, based on number of atoms/groups.
| gp | Graph partitioning |
| hindex | Node indeces that represent ranges of atoms/groups |
| ngroup | Number of group nodes |
| nodesPerPart | Number of core nodes per partition |
| nnodes | Total nodes in Hamiltonian matrix |
Definition at line 913 of file prg_graph_mod.F90.
| subroutine, public prg_graph_mod::prg_equalpartition | ( | type (graph_partitioning_t), intent(inout) | gp, |
| integer, intent(in) | nodesPerPart, | ||
| integer, intent(in) | nnodes | ||
| ) |
Create equal graph partitions, based on number of rows/orbitals.
| gp | Graph partitioning` |
| nodesPerPart | Number of core nodes per partition |
| nnodes | Total nodes in Hamiltonian matrix |
Definition at line 359 of file prg_graph_mod.F90.
| subroutine, public prg_graph_mod::prg_filepartition | ( | type (graph_partitioning_t), intent(inout) | gp, |
| character(len=*), intent(in) | partFile | ||
| ) |
Read graph partitions from a file, based on number of rows/orbitals.
| partFile | File containing core nodes for each partition |
| gp | Graph partitioning |
Definition at line 975 of file prg_graph_mod.F90.
| subroutine, public prg_graph_mod::prg_fnormgraph | ( | type(graph_partitioning_t), intent(inout) | gp | ) |
Accumulate trace norm across all subgraphs.
| gp | Graph partitioning |
Definition at line 1028 of file prg_graph_mod.F90.
|
private |
Get balancing.
| whichParts | Vector containing the "color" (part) of each node. |
| np | Total number of parts |
| bal | Computed balancing |
Definition at line 809 of file prg_graph_mod.F90.
|
private |
Get graph cut.
Get the total cut (edges crossing parts)
| whichParts | Vector containing the "color" (part) of each node. |
| degs | Degrees of every node |
| graph | 2D array containing the information of every connection. graph(i,j): index of the jth neigbor of i. |
| cut | Computed cut |
Definition at line 880 of file prg_graph_mod.F90.
|
private |
Get part indices.
| gp | Graph partitioning type |
| nnods | Number of nodes |
| whichParts | Vector containing the "color" (part) of each node. |
Definition at line 845 of file prg_graph_mod.F90.
| subroutine, public prg_graph_mod::prg_initgraphpartitioning | ( | type (graph_partitioning_t), intent(inout) | gp, |
| character(len=*), intent(in) | pname, | ||
| integer, intent(in) | np, | ||
| integer, intent(in) | nnodes, | ||
| integer, intent(in) | nnodes2 | ||
| ) |
Initialize graph partitioning.
| gp | Graph partitioning |
| pname | Partitioning name |
| np | Number of partitions |
| nnodes | Number of groups/nodes |
| nnodes2 | Number of nodes |
Definition at line 180 of file prg_graph_mod.F90.
| subroutine, public prg_graph_mod::prg_initsubgraph | ( | type (subgraph_t), intent(inout) | sg, |
| integer, intent(in) | pnum, | ||
| integer, intent(in) | hsize | ||
| ) |
Initialize subgraph.
| sg | Subgraph |
| pnum | Part number |
| hsize | Size of full matrix |
Definition at line 149 of file prg_graph_mod.F90.
| subroutine, public prg_graph_mod::prg_printgraphpartitioning | ( | type (graph_partitioning_t), intent(in) | gp | ) |
Print graph partitioning structure data.
| gp | Graph partitioning |
Definition at line 295 of file prg_graph_mod.F90.
|
private |
Read parts (core) from part file.
| gp | Graph partitioning |
| partFile | Partition file |
Definition at line 987 of file prg_graph_mod.F90.
| subroutine, public prg_graph_mod::prg_sedacspartition | ( | type (graph_partitioning_t), intent(inout) | gp, |
| real(dp), dimension(:,:), intent(in), allocatable | coords, | ||
| integer, dimension(:), intent(inout), allocatable | whichParts_guess_saved, | ||
| type (bml_matrix_t), intent(in) | g_bml, | ||
| integer, intent(in) | nparts, | ||
| integer, intent(in) | nnodes, | ||
| integer, intent(in), optional | verb | ||
| ) |
Create a partitioning based on node flips (as implemented in SEDACS - with several changes)
| gp | Graph partitioning type |
| whichParts_guess_saved | Array indicating the "color" a node belongs to |
| g_bml | Adjacency matrix (BML type) |
| nparts | Number of total parts |
| nnodes | Total nodes in the graph (typically consistent with number of atoms) |
| verb | Verbosity level |
Definition at line 472 of file prg_graph_mod.F90.
| subroutine, public prg_graph_mod::prg_setpartition | ( | type (graph_partitioning_t), intent(inout) | gp, |
| integer, dimension(:), intent(inout), allocatable | whichParts, | ||
| integer, intent(in) | nparts, | ||
| integer, intent(in) | nnodes, | ||
| integer, intent(in), optional | verb | ||
| ) |
Create a partitioning based on an input assignment of atoms to parts.
| gp | Graph partitioning type |
| whichParts | Array indicating the "color" a node belongs to |
| nparts | Number of total parts |
| nnodes | Total nodes in the graph (typically consistent with number of atoms) |
| verb | Verbosity level |
Definition at line 420 of file prg_graph_mod.F90.
|
private |
Definition at line 401 of file prg_graph_mod.F90.
|
private |
Definition at line 16 of file prg_graph_mod.F90.