mpicc.mpich main.c -o out
(out est le nom de mon exécutable) et pour exéctuer mon code sur 10 machines je dois écrire
mpirun.mpich -np 10 out
Donc où dois modifier mon Makefile pour compiler et exécuter mon prgm ? Je vous envoie mon Makefile qui correspond à mon code séquentiel.
# inspire de http://gl.developpez.com/tutoriel/outil/makefile/ # compilateur utilise CC=gcc #CPP pour le C++ et CC pour le C CFLAGS=-Wall -W -O LDFLAGS=-Wall -O2 -lm -static # on inclut tous les headers INCLUDE_DIR1=../include/includeCVode INCLUDE_DIR2=../include/myinclude # EXEC contient le nom des executables a generer. EXEC=out # Fichiers sources SRC= $(wildcard ../source/sourceCVode/*.c) $(wildcard ../source/mysource/*.c) main.c # Fichiers objets le .c est remplace par un .o OBJ=$(SRC:.c=.o) # Regles de compilation: all: $(EXEC) out: $(OBJ) @$(CC) -o $@ $^ $(LDFLAGS) # Creation des .o a partir des .c qui se verront appeles par defaut. %.o: %.c @$(CC) -o $@ -c $< -I$(INCLUDE_DIR1) -I$(INCLUDE_DIR2) $(CFLAGS) clean: @rm -rfv $(EXEC) $(OBJ) *~
Merci



La fonction MPI_Init est pourtant la toute première fonction à écrire (initialisation de l'environement MPI pour le calcul parallèle). J'ai bien mis mon #include "mpi.h" avant.
Ce qui est bizarre est que sur un prgm tout bête (envoi et réception d'un taleau) MPI_Init marche...
D'où pourrait provenir le problème ?
Merci.