PolyProcessInterface / ppi

2 stars 2 forks source link

déplacer le mpiReciv dans un thread #47

Closed Atlaoui closed 4 years ago

Atlaoui commented 4 years ago

je me demander si ce serais pas trop compliquer de déplacer les wait qui ce font au niveau de Mpi dans des thread et d'avoir une condition de wait dans la boucle pour avoir un exit qui fonctionne quelque soit le momment d'appel

n-peugnet commented 4 years ago

pour le coup normalement c'est déjà le cas. le thread principal de chaque process tourne en boucle sur deux tests qui ne sont pas bloquants, et c'est un thread séparé de celui qui execute les NodeProcess:

while (running.get() || !sendQueue.isEmpty()) {
    Status s = comm.iProbe(MPI.ANY_SOURCE, MPI.ANY_TAG);
    if (s != null) {
        recvMpi(s.getSource(), s.getTag());
    }
    Message m = sendQueue.poll();
    if (m != null) {
        sendMpi(m);
    }
}

(les deux if à l'intérieur de la boucle)

Par contre ce qui est mal géré affectivement c'est la condition d'arrêt du while

n-peugnet commented 4 years ago

Du coup ça c'est bon