Bonjour,
J'ai un programme parallèle (largement vérifié) pour lequel je dois ajouter une petite fonctionnalité, tous les processus doivent écrire dans un unique fichier. Autant dire que pour l'instant c'est la catastrophe, tout est mélangé.
J'ai consulté une tonne de site et on trouve que MPI propose la fonction mpi_file_write pour régler ces problèmes mais y a rien à faire même si je copie le code le plus simple ça ne fonctionne pas. Le fichier test_resultat.txt est crée mais les caractères sont illisibles comme si on ouvrait un fichier compilé.
Voilà un extrait simplifié du code en question :
Il compile très bien avec mpicc et les options -Wextra -Wall -ansi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 void compute_mpi(int argc, char **argv, char **files_path, int activity, int group, int debug, int port) { /* Lance le calcul du recuit simule par les methodes mpi */ int tab[2]={0,0}, desc=0, pid=(int)getpid(),i; char s[255]; int Buff[BUFSIZE]; MPI_File test; /* Lancement de la procedure mpi */ Mpi_init(log, argc, argv, tab); MPI_File_open(MPI_COMM_WORLD,"test_resultat.txt",MPI_MODE_WRONLY | MPI_MODE_CREATE,MPI_INFO_NULL,&test); for (i=0;i<BUFSIZE;i++){ Buff[i]=i; } MPI_File_write_shared(test,Buff,BUFSIZE,MPI_INT,MPI_STATUS_IGNORE); MPI_File_close(&test); MPI_Barrier(MPI_COMM_WORLD); MPI_Finalize();
Dans l'idéal, je ne veux pas utiliser de set view.
Voilà je pense que j'ai dû louper un petit truc mais je vois pas où c'est.
Merci pour votre aide
Partager