annotate FEMTEC2013/examples/Pi.m @ 8:50abddcc3409 default tip

Presentation delivered by cdf at OctConf 2013.
author Carlo de Falco <cdf@users.sourceforge.net>
date Mon, 22 Jul 2013 21:54:27 +0200
parents 60233b0075a9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4
0a1567794b40 [mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
1 T=clock;
0a1567794b40 [mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
2 MPI_ANY_SOURCE = -1;
0a1567794b40 [mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
3 MPI_Init ();
0a1567794b40 [mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
4 MPI_COMM_WORLD = MPI_Comm_Load ("NEWORLD");
0a1567794b40 [mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
5 rnk = MPI_Comm_rank (MPI_COMM_WORLD);
0a1567794b40 [mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
6 siz = MPI_Comm_size (MPI_COMM_WORLD);
0a1567794b40 [mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
7 SLV = logical(rnk);
0a1567794b40 [mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
8 MST = ~ SLV;
0a1567794b40 [mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
9 width=1/N; lsum=0;
0a1567794b40 [mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
10 i=rnk:siz:N-1;
0a1567794b40 [mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
11 x=(i+0.5)*width;
0a1567794b40 [mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
12 lsum=sum(4./(1+x.^2));
0a1567794b40 [mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
13 TAG=7;
0a1567794b40 [mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
14 if SLV
0a1567794b40 [mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
15 MPI_Send (lsum, 0, TAG, MPI_COMM_WORLD);
0a1567794b40 [mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
16 else
0a1567794b40 [mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
17 Sum =lsum;
0a1567794b40 [mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
18 for slv=1:siz-1
0a1567794b40 [mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
19 lsum = MPI_Recv (MPI_ANY_SOURCE, TAG, MPI_COMM_WORLD);
0a1567794b40 [mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
20 Sum += lsum;
0a1567794b40 [mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
21 endfor
0a1567794b40 [mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
22 endif
0a1567794b40 [mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
23 MPI_Finalize ();
0a1567794b40 [mq]: folder_reorganization
Carlo de Falco <cdf@users.sourceforge.net>
parents:
diff changeset
24