sopalin3d.h

Contains structures used in sopalin and declarations of functions of sopalin3d.h

Summary
sopalin3d.hContains structures used in sopalin and declarations of functions of sopalin3d.h
Enumerations
SOPALIN_TASKtasks wich will be computed in current PaStiX call
SopalinParam_Parameters for factorisation, updown and reffinement.
Variables
epsilonraffepsilon to stop reffinement
rberror
espilondiagepsilon critere for diag control
bb vector (RHS and solution)
transcsctranspose csc
itermaxmax number of iteration
diagchangenumber of change of diag
gmresimKrylov subspace size for GMRES
fakefactFlag indicating if we want fake factorisation
usenocscFlag indicating if we want to use the intern CSC
factotypeType of factorization
symmetricSymmetric
pastix_commMPI communicator
type_commCommunication mode
nbthrdcommCommunication’s thread number
iparmIn/Out integer parameters
dparmIn/Out float parameters
bindtabDefine where to bin threads
stopthrd
schurIf API_YES won’t compute last diag
nsize of the matrix
gN
Pastix_Allreduce_Structure used for MPI_Allreduce operations in Thread Funneled mode.
Variables
sendbufSending buffer
recvbufreceiving buffer
countNumber of elements to reduce
datatypeMPI Datatype to reduce
opMPI operation
Thread_Data_Structure used to contain data local to each thread.
Variables
sop_clkClock
sop_clk_commCommunication clock
nbpivotNumber of pivoting performed
flag_bindIndicate if threads are binded on processors
ptbusyNumber of mutexes in use
ptfreeNomber of free mutexes
ptwaitNombre de cond_wait appele
firstbloktabFirst block index to compute stride in maxbloktab
stridebloktabTemporary tabulars maxblokttab’s stride copy
maxbloktab1Temporary tabular to add contributions
maxbloktab2Temporary tabular to add contributions (for LU)
send_block_requestssent blocks requests
send_block_targetsent blocks targets
send_fanin_requestssent fanins requests
send_fanin_mpitypessent fanins mpi types
send_fanin_infotabsent fanins mpi types
send_fanin_targetsent fanins targets
send_fanin_target_extraextra sent fanin targets
recv_fanin_requestreceiving fanin requests
recv_block_requestreceiving blocks requests
recv_fanin_bufferfanin reception buffers
recv_block_bufferblocks reception buffers
maxsrequest_faninMaximum number of send requests used
maxsrequest_blockMaximum number of send requests used
recv_bufferreception buffer
gtabsizesize of the data type to send
gtaboffsoffsize of the data type to send
gtabtypeType of data to send
gtaboffspointer to the data to send
gtabtypeSize of the data to send
send_fanin_bufferFanins sending buffers
send_block_bufferBlocks sending buffers
send_fanin_buffer_sizeFanins sending buffers size
send_block_buffer_sizeBlocks sending buffers size
tracefileTracing file for the solver
traceactiveFlag indicating if trace is active
traceidFlag indicating if trace is active
stridebloktab2
esp
stack
Sopalin_Data_Data common to all threads.
Variables
datacodeSolver matrix
soparSopalin parameters
thread_dataThreads data
fanintgtsendqueueFanins to send queue
blocktgtsendqueueBlocks to send queue
taskmarkTask marking for 2D
tracefileTracing file for the solver
timestampOriginal time for trace
current_allocCurrent allocated memory
max_allocMaximum allocated memory
alloc_initInitial allocated memory
mutex_allocMutex on allocated memory variable
critereStopping threshold for refinement
stopFlag to stop threads on refinement
berrError in refinement
lberrLast error in refinement
raffnbrNumber of iterations in refinement
count_iterNumber of iterations in refinement
flag_gmresFlag to continue in static pivoting
gmresout_flagFlag for GMRES outter loop
gmresin_flagFlag for GMRES inner loop
gmresroNorm of GMRES residue
mutex_taskMutex on each task
cond_taskCond for each task
mutex_faninMutex on each fanin
cond_faninCond for each fanin
mutex_blokMutex on each block
mutex_queue_faninMutex on the fanins queue
mutex_queue_blockMutex on the blocks queue
taskqueueTask queue for NOSMP version
barrierThreads synchronisation barrier
mutex_commMutex on communication variables
cond_commCondition on step_comm
step_commCurrent step indicator
allreduceData structure for MPi_Allreduce
sendqueueReady to send data queue
grhsData storage tabular
flagtabIndicate received cblk in up step
mutex_flagtabMutex on flagtab
cond_flagtabcond on flagtab
ptr_cscpointer to data used by each threads in csc_code
common_fltCommon pointer to share a float between threads
mutex_raffmutex on common tabulars during csc operations
cond_raffcond corresponding to mutex_raff
tasktab_mutex
tasktab_cond
tasktab_indice
tasktab_nbthrd
taskqueue
oocData structure needed for Out-of-core
starpu_trf_data_
Variables
cblknum
starpu_gemm_data_
Variables
cblknum
bloknum
fcblknum
nblocs
Usopalin_launch
Usopalin_thread
Usopalin_updo_thread
Usopalin_updo_gmres_thread
Usopalin_updo_grad_thread
Usopalin_updo_pivot_thread
Uupdo_thread
Upivot_thread
Ugmres_thread
Ugrad_thread
Dsopalin_launch
Dsopalin_thread
Dsopalin_updo_thread
Dsopalin_updo_gmres_thread
Dsopalin_updo_grad_thread
Dsopalin_updo_pivot_thread
Dupdo_thread
Dpivot_thread
Dgmres_thread
Dgrad_thread
Lsopalin_launch
Lsopalin_thread
Lsopalin_updo_thread
Lsopalin_updo_gmres_thread
Lsopalin_updo_grad_thread
Lsopalin_updo_pivot_thread
Lupdo_thread
Lpivot_thread
Lgmres_thread
Lgrad_thread

Enumerations

SOPALIN_TASK

enum SOPALIN_TASK

tasks wich will be computed in current PaStiX call

constants

SOPALIN_ONLYOnly runs factorisation.
SOPALIN_UPDORuns factorisation and up down.
SOPALIN_UPDO_GMRESRuns factorisation, up down and GMRES.
SOPALIN_UPDO_GRADRuns factorisation, up down and conjugate gradient.
SOPALIN_UPDO_PIVOTRuns factorisation, up down and simple iterative raffinement.
UPDO_ONLYOnly up down.
RAFF_GMRESOnly GMRES.
RAFF_GRADOnly conjugate gradient.
RAFF_PIVOTOnly simple iterative raffinement.
SOPALIN_NBTASKSNumber of existing tasks.

SopalinParam_

Parameters for factorisation, updown and reffinement.

Summary
Variables
epsilonraffepsilon to stop reffinement
rberror
espilondiagepsilon critere for diag control
bb vector (RHS and solution)
transcsctranspose csc
itermaxmax number of iteration
diagchangenumber of change of diag
gmresimKrylov subspace size for GMRES
fakefactFlag indicating if we want fake factorisation
usenocscFlag indicating if we want to use the intern CSC
factotypeType of factorization
symmetricSymmetric
pastix_commMPI communicator
type_commCommunication mode
nbthrdcommCommunication’s thread number
iparmIn/Out integer parameters
dparmIn/Out float parameters
bindtabDefine where to bin threads
stopthrd
schurIf API_YES won’t compute last diag
nsize of the matrix
gN

Variables

epsilonraff

double epsilonraff

epsilon to stop reffinement

rberror

double rberror
|r||/||b||

espilondiag

double espilondiag

epsilon critere for diag control

b

b vector (RHS and solution)

transcsc

transpose csc

itermax

INT itermax

max number of iteration

diagchange

INT diagchange

number of change of diag

gmresim

INT gmresim

Krylov subspace size for GMRES

fakefact

INT fakefact

Flag indicating if we want fake factorisation

usenocsc

INT usenocsc

Flag indicating if we want to use the intern CSC

factotype

int factotype

Type of factorization

symmetric

int symmetric

Symmetric

pastix_comm

MPI_Comm pastix_comm

MPI communicator

type_comm

int type_comm

Communication mode

nbthrdcomm

int nbthrdcomm

Communication’s thread number

iparm

In/Out integer parameters

dparm

In/Out float parameters

bindtab

Define where to bin threads

stopthrd

int stopthrd

schur

int schur

If API_YES won’t compute last diag

n

INT n

size of the matrix

gN

INT gN

Pastix_Allreduce_

Structure used for MPI_Allreduce operations in Thread Funneled mode.

Summary
Variables
sendbufSending buffer
recvbufreceiving buffer
countNumber of elements to reduce
datatypeMPI Datatype to reduce
opMPI operation

Variables

sendbuf

Sending buffer

recvbuf

receiving buffer

count

int count

Number of elements to reduce

datatype

MPI_Datatype datatype

MPI Datatype to reduce

op

MPI_Op op

MPI operation

Thread_Data_

Structure used to contain data local to each thread.  These datas do not need to be protected by mutexes.

Summary
Variables
sop_clkClock
sop_clk_commCommunication clock
nbpivotNumber of pivoting performed
flag_bindIndicate if threads are binded on processors
ptbusyNumber of mutexes in use
ptfreeNomber of free mutexes
ptwaitNombre de cond_wait appele
firstbloktabFirst block index to compute stride in maxbloktab
stridebloktabTemporary tabulars maxblokttab’s stride copy
maxbloktab1Temporary tabular to add contributions
maxbloktab2Temporary tabular to add contributions (for LU)
send_block_requestssent blocks requests
send_block_targetsent blocks targets
send_fanin_requestssent fanins requests
send_fanin_mpitypessent fanins mpi types
send_fanin_infotabsent fanins mpi types
send_fanin_targetsent fanins targets
send_fanin_target_extraextra sent fanin targets
recv_fanin_requestreceiving fanin requests
recv_block_requestreceiving blocks requests
recv_fanin_bufferfanin reception buffers
recv_block_bufferblocks reception buffers
maxsrequest_faninMaximum number of send requests used
maxsrequest_blockMaximum number of send requests used
recv_bufferreception buffer
gtabsizesize of the data type to send
gtaboffsoffsize of the data type to send
gtabtypeType of data to send
gtaboffspointer to the data to send
gtabtypeSize of the data to send
send_fanin_bufferFanins sending buffers
send_block_bufferBlocks sending buffers
send_fanin_buffer_sizeFanins sending buffers size
send_block_buffer_sizeBlocks sending buffers size
tracefileTracing file for the solver
traceactiveFlag indicating if trace is active
traceidFlag indicating if trace is active
stridebloktab2
esp
stack

Variables

sop_clk

Clock sop_clk

Clock

sop_clk_comm

Clock sop_clk_comm

Communication clock

nbpivot

INT nbpivot

Number of pivoting performed

flag_bind

INT flag_bind

Indicate if threads are binded on processors

ptbusy

INT ptbusy

Number of mutexes in use

ptfree

INT ptfree

Nomber of free mutexes

ptwait

INT ptwait

Nombre de cond_wait appele

firstbloktab

INT firstbloktab

First block index to compute stride in maxbloktab

stridebloktab

INT stridebloktab

Temporary tabulars maxblokttab’s stride copy

maxbloktab1

Temporary tabular to add contributions

maxbloktab2

Temporary tabular to add contributions (for LU)

send_block_requests

sent blocks requests

send_block_target

sent blocks targets

send_fanin_requests

sent fanins requests

send_fanin_mpitypes

sent fanins mpi types

send_fanin_infotab

sent fanins mpi types

send_fanin_target

sent fanins targets

send_fanin_target_extra

extra sent fanin targets

recv_fanin_request

receiving fanin requests

recv_block_request

receiving blocks requests

recv_fanin_buffer

fanin reception buffers

recv_block_buffer

blocks reception buffers

maxsrequest_fanin

INT maxsrequest_fanin

Maximum number of send requests used

maxsrequest_block

INT maxsrequest_block

Maximum number of send requests used

recv_buffer

reception buffer

gtabsize

size of the data type to send

gtaboffs

offsize of the data type to send

gtabtype

Type of data to send

gtaboffs

pointer to the data to send

gtabtype

Size of the data to send

send_fanin_buffer

Fanins sending buffers

send_block_buffer

Blocks sending buffers

send_fanin_buffer_size

Fanins sending buffers size

send_block_buffer_size

Blocks sending buffers size

tracefile

Tracing file for the solver

traceactive

int traceactive

Flag indicating if trace is active

traceid

int traceid

Flag indicating if trace is active

stridebloktab2

INT stridebloktab2

esp

INT esp

stack

faststack_t stack

Sopalin_Data_

Data common to all threads.

Summary
Variables
datacodeSolver matrix
soparSopalin parameters
thread_dataThreads data
fanintgtsendqueueFanins to send queue
blocktgtsendqueueBlocks to send queue
taskmarkTask marking for 2D
tracefileTracing file for the solver
timestampOriginal time for trace
current_allocCurrent allocated memory
max_allocMaximum allocated memory
alloc_initInitial allocated memory
mutex_allocMutex on allocated memory variable
critereStopping threshold for refinement
stopFlag to stop threads on refinement
berrError in refinement
lberrLast error in refinement
raffnbrNumber of iterations in refinement
count_iterNumber of iterations in refinement
flag_gmresFlag to continue in static pivoting
gmresout_flagFlag for GMRES outter loop
gmresin_flagFlag for GMRES inner loop
gmresroNorm of GMRES residue
mutex_taskMutex on each task
cond_taskCond for each task
mutex_faninMutex on each fanin
cond_faninCond for each fanin
mutex_blokMutex on each block
mutex_queue_faninMutex on the fanins queue
mutex_queue_blockMutex on the blocks queue
taskqueueTask queue for NOSMP version
barrierThreads synchronisation barrier
mutex_commMutex on communication variables
cond_commCondition on step_comm
step_commCurrent step indicator
allreduceData structure for MPi_Allreduce
sendqueueReady to send data queue
grhsData storage tabular
flagtabIndicate received cblk in up step
mutex_flagtabMutex on flagtab
cond_flagtabcond on flagtab
ptr_cscpointer to data used by each threads in csc_code
common_fltCommon pointer to share a float between threads
mutex_raffmutex on common tabulars during csc operations
cond_raffcond corresponding to mutex_raff
tasktab_mutex
tasktab_cond
tasktab_indice
tasktab_nbthrd
taskqueue
oocData structure needed for Out-of-core

Variables

datacode

Solver matrix

sopar

Sopalin parameters

thread_data

Threads data

fanintgtsendqueue

Fanins to send queue

blocktgtsendqueue

Blocks to send queue

taskmark

Task marking for 2D

tracefile

Tracing file for the solver

timestamp

double timestamp

Original time for trace

current_alloc

INT current_alloc

Current allocated memory

max_alloc

INT max_alloc

Maximum allocated memory

alloc_init

INT alloc_init

Initial allocated memory

mutex_alloc

pthread_mutex_t mutex_alloc

Mutex on allocated memory variable

critere

Stopping threshold for refinement

stop

Flag to stop threads on refinement

berr

Error in refinement

lberr

Last error in refinement

raffnbr

Number of iterations in refinement

count_iter

Number of iterations in refinement

flag_gmres

Flag to continue in static pivoting

gmresout_flag

Flag for GMRES outter loop

gmresin_flag

Flag for GMRES inner loop

gmresro

Norm of GMRES residue

mutex_task

Mutex on each task

cond_task

Cond for each task

mutex_fanin

Mutex on each fanin

cond_fanin

Cond for each fanin

mutex_blok

Mutex on each block

mutex_queue_fanin

Mutex on the fanins queue

mutex_queue_block

Mutex on the blocks queue

taskqueue

Queue taskqueue

Task queue for NOSMP version

barrier

sopthread_barrier_t barrier

Threads synchronisation barrier

mutex_comm

pthread_mutex_t mutex_comm

Mutex on communication variables

cond_comm

pthread_cond_t cond_comm

Condition on step_comm

step_comm

int step_comm

Current step indicator

allreduce

Pastix_Allreduce_t allreduce

Data structure for MPi_Allreduce

sendqueue

Ready to send data queue

grhs

Data storage tabular

flagtab

Indicate received cblk in up step

mutex_flagtab

Mutex on flagtab

cond_flagtab

cond on flagtab

ptr_csc

pointer to data used by each threads in csc_code

common_flt

Common pointer to share a float between threads

mutex_raff

pthread_mutex_t mutex_raff

mutex on common tabulars during csc operations

cond_raff

pthread_cond_t cond_raff

cond corresponding to mutex_raff

tasktab_mutex

Sopalin_Data_t

tasktab_cond

tasktab_indice

tasktab_nbthrd

taskqueue

ooc

Data structure needed for Out-of-core

starpu_trf_data_

Variables

cblknum

INT cblknum

Variables

cblknum

INT cblknum

bloknum

INT bloknum

fcblknum

INT fcblknum

nblocs

INT nblocs

Usopalin_launch

void Usopalin_launch (SolverMatrix *,
SopalinParam *,
INT cas)

Usopalin_thread

void Usopalin_thread (SolverMatrix *,
SopalinParam *)

Usopalin_updo_thread

void Usopalin_updo_thread (SolverMatrix *,
SopalinParam *)

Usopalin_updo_gmres_thread

void Usopalin_updo_gmres_thread(SolverMatrix *,
SopalinParam *)

Usopalin_updo_grad_thread

void Usopalin_updo_grad_thread (SolverMatrix *,
SopalinParam *)

Usopalin_updo_pivot_thread

void Usopalin_updo_pivot_thread(SolverMatrix *,
SopalinParam *)

Uupdo_thread

void Uupdo_thread (SolverMatrix *,
SopalinParam *)

Upivot_thread

void Upivot_thread (SolverMatrix *,
SopalinParam *)

Ugmres_thread

void Ugmres_thread (SolverMatrix *,
SopalinParam *)

Ugrad_thread

void Ugrad_thread (SolverMatrix *,
SopalinParam *)

Dsopalin_launch

void Dsopalin_launch (SolverMatrix *,
SopalinParam *,
INT cas)

Dsopalin_thread

void Dsopalin_thread (SolverMatrix *,
SopalinParam *)

Dsopalin_updo_thread

void Dsopalin_updo_thread (SolverMatrix *,
SopalinParam *)

Dsopalin_updo_gmres_thread

void Dsopalin_updo_gmres_thread(SolverMatrix *,
SopalinParam *)

Dsopalin_updo_grad_thread

void Dsopalin_updo_grad_thread (SolverMatrix *,
SopalinParam *)

Dsopalin_updo_pivot_thread

void Dsopalin_updo_pivot_thread(SolverMatrix *,
SopalinParam *)

Dupdo_thread

void Dupdo_thread (SolverMatrix *,
SopalinParam *)

Dpivot_thread

void Dpivot_thread (SolverMatrix *,
SopalinParam *)

Dgmres_thread

void Dgmres_thread (SolverMatrix *,
SopalinParam *)

Dgrad_thread

void Dgrad_thread (SolverMatrix *,
SopalinParam *)

Lsopalin_launch

void Lsopalin_launch (SolverMatrix *,
SopalinParam *,
INT cas)

Lsopalin_thread

void Lsopalin_thread (SolverMatrix *,
SopalinParam *)

Lsopalin_updo_thread

void Lsopalin_updo_thread (SolverMatrix *,
SopalinParam *)

Lsopalin_updo_gmres_thread

void Lsopalin_updo_gmres_thread(SolverMatrix *,
SopalinParam *)

Lsopalin_updo_grad_thread

void Lsopalin_updo_grad_thread (SolverMatrix *,
SopalinParam *)

Lsopalin_updo_pivot_thread

void Lsopalin_updo_pivot_thread(SolverMatrix *,
SopalinParam *)

Lupdo_thread

void Lupdo_thread (SolverMatrix *,
SopalinParam *)

Lpivot_thread

void Lpivot_thread (SolverMatrix *,
SopalinParam *)

Lgmres_thread

void Lgmres_thread (SolverMatrix *,
SopalinParam *)

Lgrad_thread

void Lgrad_thread (SolverMatrix *,
SopalinParam *)
Contains structures used in sopalin and declarations of functions of sopalin3d.h
enum SOPALIN_TASK
tasks wich will be computed in current PaStiX call
double epsilonraff
epsilon to stop reffinement
double rberror
double espilondiag
epsilon critere for diag control
INT itermax
max number of iteration
INT diagchange
number of change of diag
INT gmresim
Krylov subspace size for GMRES
INT fakefact
Flag indicating if we want fake factorisation
INT usenocsc
Flag indicating if we want to use the intern CSC
int factotype
Type of factorization
int symmetric
Symmetric
MPI_Comm pastix_comm
MPI communicator
int type_comm
Communication mode
int nbthrdcomm
Communication’s thread number
int stopthrd
int schur
If API_YES won’t compute last diag
INT n
size of the matrix
INT gN
int count
Number of elements to reduce
MPI_Datatype datatype
MPI Datatype to reduce
MPI_Op op
MPI operation
Clock sop_clk
Clock
Clock sop_clk_comm
Communication clock
INT nbpivot
Number of pivoting performed
INT flag_bind
Indicate if threads are binded on processors
INT ptbusy
Number of mutexes in use
INT ptfree
Nomber of free mutexes
INT ptwait
Nombre de cond_wait appele
INT firstbloktab
First block index to compute stride in maxbloktab
INT stridebloktab
Temporary tabulars maxblokttab’s stride copy
INT maxsrequest_fanin
Maximum number of send requests used
INT maxsrequest_block
Maximum number of send requests used
int traceactive
Flag indicating if trace is active
int traceid
Flag indicating if trace is active
INT stridebloktab2
INT esp
faststack_t stack
double timestamp
Original time for trace
INT current_alloc
Current allocated memory
INT max_alloc
Maximum allocated memory
INT alloc_init
Initial allocated memory
pthread_mutex_t mutex_alloc
Mutex on allocated memory variable
Queue taskqueue
Task queue for NOSMP version
sopthread_barrier_t barrier
Threads synchronisation barrier
pthread_mutex_t mutex_comm
Mutex on communication variables
pthread_cond_t cond_comm
Condition on step_comm
int step_comm
Current step indicator
Pastix_Allreduce_t allreduce
Data structure for MPi_Allreduce
pthread_mutex_t mutex_raff
mutex on common tabulars during csc operations
pthread_cond_t cond_raff
cond corresponding to mutex_raff
Sopalin_Data_t
INT cblknum
INT cblknum
INT bloknum
INT fcblknum
INT nblocs
void Usopalin_launch (SolverMatrix *,
SopalinParam *,
INT cas)
void Usopalin_thread (SolverMatrix *,
SopalinParam *)
void Usopalin_updo_thread (SolverMatrix *,
SopalinParam *)
void Usopalin_updo_gmres_thread(SolverMatrix *,
SopalinParam *)
void Usopalin_updo_grad_thread (SolverMatrix *,
SopalinParam *)
void Usopalin_updo_pivot_thread(SolverMatrix *,
SopalinParam *)
void Uupdo_thread (SolverMatrix *,
SopalinParam *)
void Upivot_thread (SolverMatrix *,
SopalinParam *)
void Ugmres_thread (SolverMatrix *,
SopalinParam *)
void Ugrad_thread (SolverMatrix *,
SopalinParam *)
void Dsopalin_launch (SolverMatrix *,
SopalinParam *,
INT cas)
void Dsopalin_thread (SolverMatrix *,
SopalinParam *)
void Dsopalin_updo_thread (SolverMatrix *,
SopalinParam *)
void Dsopalin_updo_gmres_thread(SolverMatrix *,
SopalinParam *)
void Dsopalin_updo_grad_thread (SolverMatrix *,
SopalinParam *)
void Dsopalin_updo_pivot_thread(SolverMatrix *,
SopalinParam *)
void Dupdo_thread (SolverMatrix *,
SopalinParam *)
void Dpivot_thread (SolverMatrix *,
SopalinParam *)
void Dgmres_thread (SolverMatrix *,
SopalinParam *)
void Dgrad_thread (SolverMatrix *,
SopalinParam *)
void Lsopalin_launch (SolverMatrix *,
SopalinParam *,
INT cas)
void Lsopalin_thread (SolverMatrix *,
SopalinParam *)
void Lsopalin_updo_thread (SolverMatrix *,
SopalinParam *)
void Lsopalin_updo_gmres_thread(SolverMatrix *,
SopalinParam *)
void Lsopalin_updo_grad_thread (SolverMatrix *,
SopalinParam *)
void Lsopalin_updo_pivot_thread(SolverMatrix *,
SopalinParam *)
void Lupdo_thread (SolverMatrix *,
SopalinParam *)
void Lpivot_thread (SolverMatrix *,
SopalinParam *)
void Lgmres_thread (SolverMatrix *,
SopalinParam *)
void Lgrad_thread (SolverMatrix *,
SopalinParam *)
Close