Mercurial > hg > what-is-octave
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 |
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 |