This source file includes following definitions.
- main
1
2 #include <stdio.h>
3 #include <stdlib.h>
4 #include <unistd.h>
5 #include "mpi.h"
6 #include <pthread.h>
7 #include <signal.h>
8 #include <sys/time.h>
9 #include <errno.h>
10 #define EXE_TEST "./loop_child"
11
12
13 int main(int argc, char **argv)
14 {
15 int iter, itermax, err, rank, size;
16 MPI_Comm comm, merged;
17
18
19
20 if (2 == argc) {
21 itermax = atoi(argv[1]);
22 } else {
23 itermax = 100;
24 }
25
26 printf("parent*******************************\n");
27 printf("parent: Launching MPI*\n");
28
29 MPI_Init( &argc, &argv);
30
31 for (iter = 0; iter < itermax; ++iter) {
32 MPI_Comm_spawn(EXE_TEST, NULL, 1, MPI_INFO_NULL,
33 0, MPI_COMM_WORLD, &comm, &err);
34 printf("parent: MPI_Comm_spawn #%d return : %d\n", iter, err);
35
36 MPI_Intercomm_merge(comm, 0, &merged);
37 MPI_Comm_rank(merged, &rank);
38 MPI_Comm_size(merged, &size);
39 printf("parent: MPI_Comm_spawn #%d rank %d, size %d\n",
40 iter, rank, size);
41 MPI_Comm_free(&merged);
42 MPI_Comm_disconnect(&comm);
43 }
44
45 MPI_Finalize();
46 printf("parent: End .\n" );
47 return 0;
48 }