INGOR
Public Attributes | List of all members
NNSRWork Struct Reference

Working structure for the NNSR algorithm. More...

Public Attributes

int rank
 MPI rank ID. This is copied from Args.
 
int procs
 total number of MPI processes (MPI size), copied from Args.
 
int p
 total number of variables copied from Args.
 
int selfLoop
 true for enabling self loops, copied from Args.
 
ytRNGrng
 ytRNG instance copied from Args. More...
 
int moduleSize
 module (subnetwork) size.
 
int subNodes
 The number of variables (nodes) stored and managed by this process. More...
 
int subNodesMax
 The max size of the split sub nodes. More...
 
int * nodeSetBuff
 Node set buffer for sub network estimation.
 
int * subGraph
 Adjacent matrix for the sub graph. More...
 
int mrows
 The number of rows in the sub graph matrix subGraph.
 
int * cntGraph
 Count graph that maintains the co-occurrences of variables. More...
 
int iterations
 The number of subnetwork estimation.
 
int exchangeInterval
 Interval between exchaning the sub graphs and updating the global structure. More...
 
ytPCGraph ** subG
 Pointers to the estimated sub graphs.
 
int BNRCOtoLv
 BNRC score precalculation level for one-to-one calculation.
 
int BNRCLv
 BNRC score precalculation level for subnetwork estimation.
 
ytKeyValuesalgoArgs
 Arguments for the sub network estimation algorithm.
 
int algoVerbose
 Verbose level for the sub network estimation algorithm.
 
int scoreVerbose
 Verbose level for the score function.
 
int maxParents
 Maximum parants in sub network estimation.
 
int bsCheck
 true for checking the consistency of the secondary ID lengths.
 
ytArraybsListSet
 List set for the list bootstrap mode.
 
double * oto
 One-to-one matrix (p-length column major matrix).
 
double otoExponent
 One-to-one exponent coefficient.
 
int otoInterval
 One-to-one interval. -1 for disable, 0 for only once, and > 0 for 1-to-1 score interval.
 
double randomWalkRatio
 Node number ratio to the module size for node sampling by random walk.
 
int randomWalkLimit
 Loop limit for random walk.
 
int randomWalkResetPosition
 1 for reset the start position.
 
ytIntArrayrandomWalkW
 Work area for random walk 1.
 
ytDoubleArrayrandomWalkP
 Work area for random walk 2.
 
double randomWalkThreshold
 Threshold for exchanging the global network for random walk.
 
double outputThreshold
 Threshold for the final structure.
 
int minCount
 Minimum number of the edge count for exchanging edges.
 
ytIntArraysendBuff
 Sending buffer for MPI.
 
ytDoubleArraysendFreqBuff
 Sending buffer for MPI.
 
int * sizeBuff
 procs-size vector
 
int * sendDispls
 Sending displacement for MPI.
 
int * recvCounts
 Receive count buffer for MPI.
 
ytIntArrayrecvBuff
 Receiving buffer for MPI.
 
int * recvDispls
 Receiving displacement for MPI.
 
ytDoubleArrayrecvFreqBuff
 Receiving buffer for MPI.
 
ytPCGraphg
 Global network structure.
 
ytDoubleArraygPaFreq
 Frequencies of edges in g. More...
 
ytDoubleArraygChFreq
 Frequencies of edges in g. More...
 
NNSRNodeRanknodeRanks
 Buffer for sorting nodes and their ranks.
 
ytIntArraychBuff
 Working are for exchanging the global structure.
 
ytDoubleArraychFreqBuff
 Working are for exchanging the global structure.
 
ytDatafullData
 the original full dataset.
 
ytGraphfullConstrain
 the original constrain graph
 
int verbose
 verbose level. 0 for the base level.
 
char * nodeSetFile
 
FILE * nodeSetFP
 
char * graphFile
 
FILE * graphFP
 

Detailed Description

Working structure for the NNSR algorithm.

See also
NNSR

Member Data Documentation

◆ cntGraph

int* NNSRWork::cntGraph

Count graph that maintains the co-occurrences of variables.

cntGraph[u + i * p] maintains the number of occurrences where two nodes u and v (uv) are selected for the same sub network by the neighbor node sampling, where v = i * procs + rank. Note that only the upper triangular region is used.

◆ exchangeInterval

int NNSRWork::exchangeInterval

Interval between exchaning the sub graphs and updating the global structure.

Exchainging the accumulated network and sub graphs, and updating the global structure are performed in every this number of subnetwork estimations. If -1 is set, this is automatically determined.

◆ gChFreq

ytDoubleArray* NNSRWork::gChFreq

Frequencies of edges in g.

This is similar to gPaFreq. Instead of edges of parents, this contains edges for children.

◆ gPaFreq

ytDoubleArray* NNSRWork::gPaFreq

Frequencies of edges in g.

This is an array of ytDoubleArray instances. Thus gPaFreq + j represents the pointer to the ytDoubleArray instance containing frequecies of edges from the j-th node's parents.

◆ rng

ytRNG* NNSRWork::rng

ytRNG instance copied from Args.

This is used in node sampling for subnetwork estimation.

◆ subGraph

int* NNSRWork::subGraph

Adjacent matrix for the sub graph.

subGraph[u + i * mrows] represents the number of occurrences of (uv) edge estimated where uv, v = i * procs + rank, and mrows is a member of NNSRWork (see mrows). (vu) edge is also managed in this matrix subGraph[uu + ii * mrows] where uu = mrows - 1 - u, and ii = subNodes - 1 - i.

◆ subNodes

int NNSRWork::subNodes

The number of variables (nodes) stored and managed by this process.

All the variables are split and assigned into the processes. The cyclic distribution is employed for this.

◆ subNodesMax

int NNSRWork::subNodesMax

The max size of the split sub nodes.

The variables (nodes) are split into blocks whose size is 'subNodes' or 'subNodesMax'. Only the last ranks are responsible for the different number of variables.


The documentation for this struct was generated from the following file: