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
*******************************************************************************/
48
void
49
simuTaskBuild
(
SimuCtrl
*simuctrl,
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
}
blendctrl.h
cand.h
cost.h
pastix_int_t
BEGIN_C_DECLS typedef int pastix_int_t
Definition
datatypes.h:51
elimintree.h
extendVector.h
simu_blok_s::tasknum
pastix_int_t tasknum
Definition
simu.h:87
simuctrl_s::tasktab
SimuTask * tasktab
Definition
simu.h:121
simu_task_s::ctrbcnt
pastix_int_t ctrbcnt
Definition
simu.h:108
simu_task_s::cblknum
pastix_int_t cblknum
Definition
simu.h:101
simuctrl_s::bloktab
SimuBlok * bloktab
Definition
simu.h:126
simu_task_s::time
SimuTimer time
Definition
simu.h:105
simu_task_s::mesglen
pastix_int_t mesglen
Definition
simu.h:106
simu_task_s::cost
double cost
Definition
simu.h:107
simu_task_s::facebloknum
pastix_int_t facebloknum
Definition
simu.h:104
simu_task_s::bloknum
pastix_int_t bloknum
Definition
simu.h:102
simu_task_s::tasknext
pastix_int_t tasknext
Definition
simu.h:110
simu_task_s::ftgtcnt
pastix_int_t ftgtcnt
Definition
simu.h:109
simu_task_s::prionum
pastix_int_t prionum
Definition
simu.h:100
simuctrl_s::tasknbr
pastix_int_t tasknbr
Definition
simu.h:119
timerSet
static void timerSet(SimuTimer *timer, double t)
Set the timer value.
Definition
simu_timer.h:84
simuTaskBuild
void simuTaskBuild(SimuCtrl *, const symbol_matrix_t *)
Initialize the tasktab array of the simulation structure.
Definition
simu_task.c:49
simu_task_s
Task structure for the simulation.
Definition
simu.h:99
simuctrl_s
Control structure for the simulation.
Definition
simu.h:116
symbol_matrix_s::cblktab
symbol_cblk_t * cblktab
Definition
symbol.h:83
symbol_cblk_s::bloknum
pastix_int_t bloknum
Definition
symbol.h:48
symbol_matrix_s::cblknbr
pastix_int_t cblknbr
Definition
symbol.h:79
symbol_matrix_s
Symbol matrix structure.
Definition
symbol.h:77
queue.h
simu.h
solver.h
symbol.h
blend
simu_task.c
Generated by
1.9.8