StarNEig Library  version v0.1-beta.1
A task-based library for solving nonsymmetric eigenvalue problems
ScaLAPACK compatibility / BLACS helpers

Data types and helper functions for BLACS. More...

Functions

void starneig_blacs_pinfo (int *my_rank, int *rank_count)
 Queries process rank information. More...
 
int starneig_blacs_get (starneig_blacs_context_t context, starneig_blacs_query_id_t query)
 Returns BLACS context's internal defaults. More...
 
starneig_blacs_context_t starneig_blacs_gridinit (starneig_blacs_context_t system_context, char *order, int rows, int cols)
 Initializes a BLACS process grid. More...
 
void starneig_blacs_gridinfo (starneig_blacs_context_t context, int *rows, int *cols, int *row, int *col)
 Queries BLACS process grid information. More...
 
void starneig_blacs_pcoord (starneig_blacs_context_t context, int process, int *row, int *col)
 Queries BLACS process grid coordinates. More...
 
void starneig_blacs_gridexit (starneig_blacs_context_t context)
 Releases process grid specific resources. More...
 
void starneig_blacs_exit (int cont)
 Releases all contexts and related resources. More...
 
int starneig_numroc (int n, int nb, int iproc, int isrcproc, int nprocs)
 Computes the number of matrix rows/columns owned by a given process. More...
 
int starneig_descinit (struct starneig_blacs_descr *descr, int m, int n, int sm, int sn, int irsrc, int icsrc, starneig_blacs_context_t context, int ld)
 Initializes a BLACS descriptor. More...
 

Query indeces

typedef int starneig_blacs_query_id_t
 Data type for blacs_get() function query id.
 
#define STARNEIG_BLACS_GET_DEFAULT_CONTEXT   0
 Query id for getting the default system context.
 

Detailed Description

Data types and helper functions for BLACS.

Function Documentation

◆ starneig_blacs_pinfo()

void starneig_blacs_pinfo ( int *  my_rank,
int *  rank_count 
)

Queries process rank information.

Parameters
[out]my_rankAn unique process id (rank).
[out]rank_countThe total number of processes (ranks) available.

◆ starneig_blacs_get()

int starneig_blacs_get ( starneig_blacs_context_t  context,
starneig_blacs_query_id_t  query 
)

Returns BLACS context's internal defaults.

Parameters
[in]contextThe BLACS context.
[in]queryThe query id.
Returns
The internal default value that matches the given query id.

◆ starneig_blacs_gridinit()

starneig_blacs_context_t starneig_blacs_gridinit ( starneig_blacs_context_t  system_context,
char *  order,
int  rows,
int  cols 
)

Initializes a BLACS process grid.

Parameters
[in]system_contextThe system BLACS context to be used in creating the process grid.
[in]orderThe process mapping order. "R" : Use row-major natural ordering. "C" : Use column-major natural ordering. ELSE: Use row-major natural ordering.
[in]rowsThe number of rows in the process grid.
[in]colsThe number of columns in the process grid.
Returns
A handle to the created BLACS context.

◆ starneig_blacs_gridinfo()

void starneig_blacs_gridinfo ( starneig_blacs_context_t  context,
int *  rows,
int *  cols,
int *  row,
int *  col 
)

Queries BLACS process grid information.

Parameters
[in]contextThe BLACS context.
[out]rowsThe number of rows in the process grid.
[out]colsThe number of columns in the process grid.
[out]rowThe row coordinate of the calling process.
[out]colThe column coordinate of the calling process.

◆ starneig_blacs_pcoord()

void starneig_blacs_pcoord ( starneig_blacs_context_t  context,
int  process,
int *  row,
int *  col 
)

Queries BLACS process grid coordinates.

Parameters
[in]contextThe BLACS context.
[in]processThe process id (rank).
[out]rowThe row coordinate of the process.
[out]colThe column coordinate of the process.

◆ starneig_blacs_gridexit()

void starneig_blacs_gridexit ( starneig_blacs_context_t  context)

Releases process grid specific resources.

Parameters
[in]contextThe BLACS context.

◆ starneig_blacs_exit()

void starneig_blacs_exit ( int  cont)

Releases all contexts and related resources.

Parameters
[in]contThe continue flag.

◆ starneig_numroc()

int starneig_numroc ( int  n,
int  nb,
int  iproc,
int  isrcproc,
int  nprocs 
)

Computes the number of matrix rows/columns owned by a given process.

Parameters
[in]nThe number of rows/columns in the distributed matrix.
[in]nbThe block size.
[in]iprocThe coordinate of the process whose local array row or column is to be determined.
[in]isrcprocThe coordinate of the process that possesses the first row or column of the distributed matrix.
[in]nprocsThe total number processes over which the matrix is distributed.
Returns
The number of rows/columns owned by the process.

◆ starneig_descinit()

int starneig_descinit ( struct starneig_blacs_descr descr,
int  m,
int  n,
int  sm,
int  sn,
int  irsrc,
int  icsrc,
starneig_blacs_context_t  context,
int  ld 
)

Initializes a BLACS descriptor.

Parameters
[out]descrThe matrix descriptor.
[in]mThe number of rows in the matrix.
[in]nThe number of columns in the matrix.
[in]smThe number of rows in a distributed block.
[in]snThe number of columns in a distributed block.
[in]irsrcThe process grid row over which the first row is distributed.
[in]icsrcThe process grid column over which the first column is distributed.
[in]contextThe BLACS context.
[in]ldThe local array leading dimension.
Returns
Zero if the initialization was successful, non-zero otherwise.