Skip to content
Extraits de code Groupes Projets
Valider 5198c0e1 rédigé par JordanHanotiaux's avatar JordanHanotiaux
Parcourir les fichiers

Update distributedmatrix.cpp

parent c7ac8bef
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -79,19 +79,25 @@ int DistributedMatrix::localColIndex(int globalColIndex) const {
}
int DistributedMatrix::ownerProcess(int globalColIndex) const {
// Vecteur pour stocker les startCols de chaque processus
std::vector<int> localStartProcesses(numProcesses);
// Synchroniser les startCols de tous les processus
MPI_Allgather(&startCol, 1, MPI_INT, localStartProcesses.data(), 1, MPI_INT, MPI_COMM_WORLD);
// Vérifier à quel processus appartient globalColIndex
for (int p = 1; p < numProcesses; ++p) {
// Si globalColIndex est entre deux startCols, le processus p-1 est le propriétaire
if (globalColIndex >= localStartProcesses[p-1] && globalColIndex < localStartProcesses[p]) {
return p - 1;
}
}
// Si aucune condition n'est remplie, cela signifie que globalColIndex appartient au dernier processus
return numProcesses - 1;
}
const Matrix& DistributedMatrix::getLocalData() const {
return localData;
}
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter