Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Iker Martín Álvarez
Proteo
Commits
623dc305
Commit
623dc305
authored
May 17, 2023
by
iker_martin
Browse files
Added new captured time Malleability Time. Is not necesarily equal to the sum of the stages.
parent
a2c41517
Changes
4
Show whitespace changes
Inline
Side-by-side
Codes/IOcodes/results.c
View file @
623dc305
...
...
@@ -41,14 +41,14 @@ void comm_results(results_data *results, int root, size_t resizes, MPI_Comm inte
* En concreto son tres escalares y dos vectores de tamaño "resizes"
*/
void
def_results_type
(
results_data
*
results
,
int
resizes
,
MPI_Datatype
*
results_type
)
{
int
i
,
counts
=
6
;
int
blocklengths
[]
=
{
1
,
1
,
1
,
1
,
1
,
1
};
int
i
,
counts
=
7
;
int
blocklengths
[]
=
{
1
,
1
,
1
,
1
,
1
,
1
,
1
};
MPI_Aint
displs
[
counts
],
dir
;
MPI_Datatype
types
[
counts
];
// Rellenar vector types
types
[
0
]
=
types
[
1
]
=
types
[
2
]
=
types
[
3
]
=
types
[
4
]
=
types
[
5
]
=
MPI_DOUBLE
;
blocklengths
[
2
]
=
blocklengths
[
3
]
=
blocklengths
[
4
]
=
blocklengths
[
5
]
=
resizes
;
types
[
0
]
=
types
[
1
]
=
types
[
2
]
=
types
[
3
]
=
types
[
4
]
=
types
[
5
]
=
types
[
6
]
=
MPI_DOUBLE
;
blocklengths
[
2
]
=
blocklengths
[
3
]
=
blocklengths
[
4
]
=
blocklengths
[
5
]
=
blocklengths
[
6
]
=
resizes
;
// Rellenar vector displs
MPI_Get_address
(
results
,
&
dir
);
...
...
@@ -59,6 +59,7 @@ void def_results_type(results_data *results, int resizes, MPI_Datatype *results_
MPI_Get_address
(
results
->
async_time
,
&
displs
[
3
]);
MPI_Get_address
(
results
->
spawn_real_time
,
&
displs
[
4
]);
MPI_Get_address
(
results
->
spawn_time
,
&
displs
[
5
]);
MPI_Get_address
(
results
->
malleability_time
,
&
displs
[
6
]);
for
(
i
=
0
;
i
<
counts
;
i
++
)
displs
[
i
]
-=
dir
;
...
...
@@ -87,6 +88,7 @@ void set_results_post_reconfig(results_data *results, int grp, int sdr, int adr)
}
else
{
results
->
async_time
[
grp
-
1
]
=
0
;
}
results
->
malleability_time
[
grp
-
1
]
=
results
->
malleability_end
-
results
->
malleability_time
[
grp
-
1
];
}
/*
...
...
@@ -242,6 +244,11 @@ void print_global_results(results_data results, size_t resizes) {
printf
(
"%lf "
,
results
.
async_time
[
i
]);
}
printf
(
"
\n
T_Malleability: "
);
for
(
i
=
0
;
i
<
resizes
;
i
++
)
{
printf
(
"%lf "
,
results
.
malleability_time
[
i
]);
}
printf
(
"
\n
T_total: %lf
\n
"
,
results
.
exec_time
);
}
...
...
@@ -264,6 +271,7 @@ void init_results_data(results_data *results, size_t resizes, size_t stages, siz
results
->
spawn_real_time
=
calloc
(
resizes
,
sizeof
(
double
));
results
->
sync_time
=
calloc
(
resizes
,
sizeof
(
double
));
results
->
async_time
=
calloc
(
resizes
,
sizeof
(
double
));
results
->
malleability_time
=
calloc
(
resizes
,
sizeof
(
double
));
results
->
wasted_time
=
0
;
results
->
iters_size
=
iters_size
+
RESULTS_EXTRA_SIZE
;
...
...
@@ -324,6 +332,10 @@ void free_results_data(results_data *results, size_t stages) {
free
(
results
->
async_time
);
results
->
async_time
=
NULL
;
}
if
(
results
->
malleability_time
!=
NULL
)
{
free
(
results
->
malleability_time
);
results
->
malleability_time
=
NULL
;
}
if
(
results
->
iters_time
!=
NULL
)
{
free
(
results
->
iters_time
);
...
...
Codes/IOcodes/results.h
View file @
623dc305
...
...
@@ -14,8 +14,9 @@ typedef struct {
// Spawn, Thread, Sync, Async and Exec time
double
spawn_start
,
*
spawn_time
,
*
spawn_real_time
;
double
sync_start
,
sync_end
,
*
sync_time
;
double
async_start
,
async_end
,
*
async_time
;
double
sync_end
,
*
sync_time
;
double
async_end
,
*
async_time
;
double
malleability_end
,
*
malleability_time
;
double
exec_start
,
exec_time
;
double
wasted_time
;
// Time spent recalculating iter stages
}
results_data
;
...
...
Codes/malleability/malleabilityManager.c
View file @
623dc305
...
...
@@ -182,6 +182,7 @@ int malleability_checkpoint() {
break
;
case
MALL_NOT_STARTED
:
// Comprobar si se tiene que realizar un redimensionado
mall_conf
->
results
->
malleability_time
[
mall_conf
->
grp
]
=
MPI_Wtime
();
//if(CHECK_RMS()) {return MALL_DENIED;}
state
=
spawn_step
();
...
...
@@ -236,6 +237,7 @@ int malleability_checkpoint() {
break
;
case
MALL_DIST_COMPLETED
:
//TODO No es esto muy feo?
mall_conf
->
results
->
malleability_end
=
MPI_Wtime
();
state
=
MALL_COMPLETED
;
break
;
}
...
...
@@ -548,6 +550,7 @@ void Children_init() {
MPI_Bcast
(
rep_s_data
->
arrays
[
i
],
rep_s_data
->
qty
[
i
],
datatype
,
root_parents
,
mall
->
intercomm
);
}
}
mall_conf
->
results
->
malleability_end
=
MPI_Wtime
();
// Obtener timestamp de cuando termina maleabilidad
// Guardar los resultados de esta transmision
comm_results
(
mall_conf
->
results
,
mall
->
root
,
mall_conf
->
config_file
->
n_resizes
,
mall
->
intercomm
);
...
...
@@ -633,7 +636,6 @@ int start_redistribution() {
/*
* @deprecated
* Comprueba si la redistribucion asincrona ha terminado.
* Si no ha terminado la funcion termina indicandolo, en caso contrario,
* se continua con la comunicacion sincrona, el envio de resultados y
...
...
Exec/CheckRun.sh
View file @
623dc305
...
...
@@ -43,7 +43,7 @@ then
fi
limit_time
=
0
exec_lines_basic
=
6
exec_lines_basic
=
7
iter_lines_basic
=
3
exec_total_lines
=
$((
$exec_lines_basic
+
$total_stages
+
$total_groups
))
iter_total_lines
=
$((
$iter_lines_basic
+
$total_stages
*
2
+
1
))
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment