PaStiX Handbook 6.4.0
Loading...
Searching...
No Matches
simu_task.c
Go to the documentation of this file.
1/**
2 *
3 * @file simu_task.c
4 *
5 * PaStiX simulation task basic functions.
6 *
7 * @copyright 2004-2024 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
8 * Univ. Bordeaux. All rights reserved.
9 *
10 * @version 6.4.0
11 * @author Pascal Henon
12 * @author Pierre Ramet
13 * @author Mathieu Faverge
14 * @date 2024-07-05
15 *
16 **/
17#include <stdio.h>
18#include <math.h>
19
20#include "common.h"
21#include "symbol/symbol.h"
22#include "queue.h"
23#include "extendVector.h"
24#include "elimintree.h"
25#include "cost.h"
26#include "cand.h"
27#include "blendctrl.h"
28#include "blend/solver.h"
29#include "simu.h"
30
31/**
32 *******************************************************************************
33 *
34 * @ingroup blend_dev_simu
35 *
36 * @brief Initialize the tasktab array of the simulation structure.
37 *
38 *******************************************************************************
39 *
40 * @param[inout] simuctrl
41 * The main simulation structure. On exit, the tasktab array is built
42 * and initialized with default values.
43 *
44 * @param[in] symbptr
45 * The pointer to the symbol matrix structure studied.
46 *
47 *******************************************************************************/
48void
50 const symbol_matrix_t *symbptr )
51{
52 pastix_int_t i, j;
53 pastix_int_t tasknbr = 0;
54 SimuTask *task = NULL;
55
56 /* One task per cblk */
57 simuctrl->tasknbr = symbptr->cblknbr;
58
59 MALLOC_INTERN( simuctrl->tasktab, simuctrl->tasknbr, SimuTask );
60 assert( simuctrl->tasktab );
61
62 task = simuctrl->tasktab;
63 tasknbr = 0;
64 for(i=0;i<symbptr->cblknbr;i++)
65 {
66 task->prionum = -1;
67 task->cblknum = i;
68 task->bloknum = symbptr->cblktab[i].bloknum;
69 task->bloknum2 = -1;
70 task->ctrbcnt = 0;
71 task->ftgtcnt = 0;
72 task->facebloknum = -1;
73 task->cost = -1;
74 timerSet(&(task->time), 0.0);
75 task->mesglen = 0.0;
76 task->tasknext = -1;
77 for(j = symbptr->cblktab[i].bloknum;
78 j < symbptr->cblktab[i+1].bloknum; j++ )
79 {
80 simuctrl->bloktab[j].tasknum = tasknbr;
81 }
82 tasknbr++;
83 task++;
84 }
85}
BEGIN_C_DECLS typedef int pastix_int_t
Definition datatypes.h:51
pastix_int_t tasknum
Definition simu.h:87
SimuTask * tasktab
Definition simu.h:121
pastix_int_t ctrbcnt
Definition simu.h:108
pastix_int_t cblknum
Definition simu.h:101
SimuBlok * bloktab
Definition simu.h:126
SimuTimer time
Definition simu.h:105
pastix_int_t mesglen
Definition simu.h:106
double cost
Definition simu.h:107
pastix_int_t facebloknum
Definition simu.h:104
pastix_int_t bloknum
Definition simu.h:102
pastix_int_t tasknext
Definition simu.h:110
pastix_int_t ftgtcnt
Definition simu.h:109
pastix_int_t prionum
Definition simu.h:100
pastix_int_t tasknbr
Definition simu.h:119
static void timerSet(SimuTimer *timer, double t)
Set the timer value.
Definition simu_timer.h:84
void simuTaskBuild(SimuCtrl *, const symbol_matrix_t *)
Initialize the tasktab array of the simulation structure.
Definition simu_task.c:49
Task structure for the simulation.
Definition simu.h:99
Control structure for the simulation.
Definition simu.h:116
symbol_cblk_t * cblktab
Definition symbol.h:83
pastix_int_t bloknum
Definition symbol.h:48
pastix_int_t cblknbr
Definition symbol.h:79
Symbol matrix structure.
Definition symbol.h:77