Je souhaite imprimer le contenu du tableau d'entiers de chaque processus. Le problème est, tout est encombré en raison de l'état de la course.MPI: Verrouiller le stdout - 1 processus à la fois?
Quelle est la solution la plus simple? Je ne veux pas déboguer. Je veux montrer le contenu parce que je fais l'algorithme de tri. Il est donc utile de montrer avant et après le tri.
J'ajouté ceci dans lock.c:
#include <stdio.h>
static int lock=0; //Don't use if timing execution
void capture(int rank) {
while(lock!=0);
lock = 1;
printf("\nCaptured by %d\n", rank);
}
void release() {
lock = 0;
}
et capture appel() avant l'impression des choses, puis relâchez() après l'impression. Oui, c'est un hack de type sémaphore. Mais ça ne marche pas, des idées?
Quand vous dites que "ça ne marche pas", que voulez-vous dire: personnellement, je suppose que vous voulez dire que la sortie de différents threads est en train de se mélanger? C'est ce que tu veux dire? –
Oui, condition de concurrence. Le verrou – syaz