Skip to content
GitLab
Explorer
Connexion
Navigation principale
Rechercher ou aller à…
Projet
C
COAV2023
Gestion
Activité
Membres
Labels
Programmation
Tickets
Tableaux des tickets
Jalons
Wiki
Wiki externe
Code
Requêtes de fusion
Dépôt
Branches
Validations
Étiquettes
Graphe du dépôt
Comparer les révisions
Extraits de code
Compilation
Pipelines
Jobs
Planifications de pipeline
Artéfacts
Déploiement
Releases
Registre de paquets
Registre de conteneurs
Registre de modèles
Opération
Environnements
Modules Terraform
Surveillance
Incidents
Analyse
Données d'analyse des chaînes de valeur
Analyse des contributeurs
Données d'analyse CI/CD
Données d'analyse du dépôt
Expériences du modèle
Aide
Aide
Support
Documentation de GitLab
Comparer les forfaits GitLab
Forum de la communauté GitLab
Contribuer à GitLab
Donner votre avis
Raccourcis clavier
?
Extraits de code
Groupes
Projets
Afficher davantage de fils d'Ariane
Anzo
COAV2023
Comparer les révisions
a9ff9f3fb53dcea1466fb3bd0f86e8024bb924a5 to 20c788f2185ac3ad1e82a47c2f8869fb0d1c62b6
Comparer les révisions
Les modifications sont affichées comme si la révision
source
était fusionnée avec la révision
cible
.
En savoir plus sur la comparaison des révisions.
Source
de-carva2021/coav2023
Sélectionner le projet cible
No results found
20c788f2185ac3ad1e82a47c2f8869fb0d1c62b6
Sélectionner une révision Git
Loading items
Échanger
Cible
de-carva2021/coav2023
Sélectionner le projet cible
de-carva2021/coav2023
1 résultat
a9ff9f3fb53dcea1466fb3bd0f86e8024bb924a5
Sélectionner une révision Git
Loading items
Afficher les modifications
Uniquement les modifications entrantes de la source
Inclure les modifications apportées à la cible depuis la création de la source
Comparer
Validations sur la source (2)
remove unused algos
· 10334fa6
Nicolas MARIE
a rédigé
Il y a 1 an
10334fa6
remove unused algos
· 20c788f2
Nicolas MARIE
a rédigé
Il y a 1 an
20c788f2
Afficher les modifications d'espaces
En ligne
Côte à côte
Affichage de
3 fichiers modifiés
include/mpi_collective.hpp
+1
-7
1 ajout, 7 suppressions
include/mpi_collective.hpp
src/mpi_collective_graph_utils.cpp
+0
-99
0 ajout, 99 suppressions
src/mpi_collective_graph_utils.cpp
src/mpi_collective_warnings.cpp
+0
-54
0 ajout, 54 suppressions
src/mpi_collective_warnings.cpp
avec
1 ajout
et
160 suppressions
include/mpi_collective.hpp
Voir le fichier @
20c788f2
...
...
@@ -89,10 +89,7 @@ public:
void
reset_bb_mark
(
function
*
fun
);
void
alloc_edge_aux
(
function
*
fun
);
void
free_edge_aux
(
function
*
fun
);
// loop detection algorithms
void
__mark_edge_naif
(
function
*
fun
);
void
__mark_edge_naif
(
basic_block
bb
);
void
__mark_edge_test
(
function
*
fun
);
// loop detection algorithm
void
mark_edge
(
function
*
fun
);
void
mark_edge
(
basic_block
bb
);
...
...
@@ -121,9 +118,6 @@ public:
// functions that rank mpi collectives
void
rank_collective
(
function
*
fun
);
void
__rank_collective
(
basic_block
bb
);
void
better_rank_collective
(
function
*
fun
);
int
__better_rank_collective
(
basic_block
bb
,
mpi_collective_code
mpi_code
,
int
rank
);
// function that calculate agregate a mpi collective
// with the same rank in a bitmap
void
get_mpi_coll_rank
(
...
...
Ce diff est replié.
Cliquez pour l'agrandir.
src/mpi_collective_graph_utils.cpp
Voir le fichier @
20c788f2
...
...
@@ -92,105 +92,6 @@ void pass_mpi_collective::free_edge_aux(function *fun)
}
// loop detection
// naive version of mark_edge (work but Omax(2^n))
void
pass_mpi_collective
::
__mark_edge_naif
(
function
*
fun
)
{
__mark_edge_naif
(
ENTRY_BLOCK_PTR_FOR_FN
(
fun
));
}
void
pass_mpi_collective
::
__mark_edge_naif
(
basic_block
bb
)
{
edge
e
;
edge_iterator
ei
;
((
bb_data
*
)
bb
->
aux
)
->
mark1
=
1
;
FOR_EACH_EDGE
(
e
,
ei
,
bb
->
succs
)
{
if
(((
bb_data
*
)
e
->
dest
->
aux
)
->
mark1
)
{
((
edge_data
*
)
e
->
aux
)
->
loop
=
true
;
}
else
{
__mark_edge_naif
(
e
->
dest
);
}
}
((
bb_data
*
)
bb
->
aux
)
->
mark1
=
0
;
}
void
pass_mpi_collective
::
__mark_edge_test
(
function
*
fun
)
{
edge
e1
;
edge_iterator
ei1
;
std
::
list
<
basic_block
>
nodes1
;
basic_block
bb
;
edge
e2
;
edge_iterator
ei2
;
std
::
list
<
basic_block
>
nodes2
;
basic_block
cursor
;
int
index
;
index
=
0
;
nodes1
.
push_back
(
ENTRY_BLOCK_PTR_FOR_FN
(
fun
));
((
bb_data
*
)
ENTRY_BLOCK_PTR_FOR_FN
(
fun
)
->
aux
)
->
mark1
=
1
;
while
(
!
nodes1
.
empty
())
{
bb
=
nodes1
.
front
();
nodes1
.
pop_front
();
FOR_EACH_EDGE
(
e1
,
ei1
,
bb
->
succs
)
{
if
(((
bb_data
*
)
e1
->
dest
->
aux
)
->
mark1
)
{
continue
;
}
((
bb_data
*
)
bb
->
aux
)
->
mark1
=
1
;
nodes1
.
push_back
(
e1
->
dest
);
}
if
(
EDGE_COUNT
(
bb
->
preds
)
<
2
)
{
continue
;
}
++
index
;
nodes2
.
clear
();
nodes2
.
push_back
(
bb
);
((
bb_data
*
)
bb
->
aux
)
->
mark2
=
index
;
while
(
!
nodes2
.
empty
())
{
cursor
=
nodes2
.
front
();
nodes2
.
pop_front
();
FOR_EACH_EDGE
(
e2
,
ei2
,
cursor
->
succs
)
{
if
(
e2
->
dest
==
bb
)
{
((
edge_data
*
)
e2
->
aux
)
->
loop
=
true
;
}
if
(((
edge_data
*
)
e2
->
aux
)
->
loop
)
{
continue
;
}
if
(((
bb_data
*
)
e2
->
dest
->
aux
)
->
mark2
>=
index
)
{
continue
;
}
((
bb_data
*
)
cursor
->
aux
)
->
mark2
=
index
;
nodes2
.
push_back
(
e2
->
dest
);
}
}
}
reset_bb_mark
(
fun
);
}
void
pass_mpi_collective
::
mark_edge
(
function
*
fun
)
{
mark_edge
(
ENTRY_BLOCK_PTR_FOR_FN
(
fun
));
...
...
Ce diff est replié.
Cliquez pour l'agrandir.
src/mpi_collective_warnings.cpp
Voir le fichier @
20c788f2
...
...
@@ -47,60 +47,6 @@ void pass_mpi_collective::__rank_collective(basic_block bb)
}
}
void
pass_mpi_collective
::
better_rank_collective
(
function
*
fun
)
{
size_t
i
;
int
next_rank
=
0
;
for
(
i
=
0
;
i
<
LAST_AND_UNUSED_MPI_COLLECTIVE_CODE
;
++
i
)
{
next_rank
=
__better_rank_collective
(
EXIT_BLOCK_PTR_FOR_FN
(
fun
),
(
enum
mpi_collective_code
)
i
,
next_rank
);
}
reset_bb_mark
(
fun
);
}
int
pass_mpi_collective
::
__better_rank_collective
(
basic_block
bb
,
mpi_collective_code
mpi_code
,
int
rank
)
{
edge
e
;
edge_iterator
ei
;
int
next_rank
;
next_rank
=
rank
;
((
bb_data
*
)
bb
->
aux
)
->
mark1
=
mpi_code
+
1
;
FOR_EACH_EDGE
(
e
,
ei
,
bb
->
preds
)
{
if
(((
edge_data
*
)
e
->
aux
)
->
loop
)
{
continue
;
}
// cache or travell
if
(((
bb_data
*
)
e
->
src
->
aux
)
->
mark1
<=
mpi_code
)
{
next_rank
=
std
::
max
(
next_rank
,
__better_rank_collective
(
e
->
src
,
mpi_code
,
rank
));
}
else
{
next_rank
=
std
::
max
(
next_rank
,
((
bb_data
*
)
e
->
src
->
aux
)
->
collective_rank
[
mpi_code
]);
}
}
// set mpi code
if
(((
bb_data
*
)
bb
->
aux
)
->
mpi_code
==
mpi_code
)
{
next_rank
++
;
}
((
bb_data
*
)
bb
->
aux
)
->
collective_rank
[
mpi_code
]
=
next_rank
;
return
next_rank
;
}
void
pass_mpi_collective
::
get_mpi_coll_rank
(
function
*
fun
,
int
rank
,
int
mpi_code
,
bitmap
mpi_coll
)
{
...
...
Ce diff est replié.
Cliquez pour l'agrandir.