forked from johannesgerer/jburkardt-m
-
Notifications
You must be signed in to change notification settings - Fork 0
/
cg_distributed.html
227 lines (195 loc) · 7.2 KB
/
cg_distributed.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
<html>
<head>
<title>
CG_DISTRIBUTED - Distributed Version of the NAS Conjugate Gradient Benchmark
</title>
</head>
<body bgcolor="#EEEEEE" link="#CC0000" alink="#FF3300" vlink="#000055">
<h1 align = "center">
CG_DISTRIBUTED <br> Distributed Version of the NAS Conjugate Gradient Benchmark
</h1>
<hr>
<p>
<b>CG_DISTRIBUTED</b>
is a MATLAB program which
implements a version of the NAS Conjugate Gradient (CG) Benchmark, using
distributed memory.
</p>
<p>
This is not the true benchmark, since the distributed sparse array that
is created is made of random elements, rather than using the values and
locations specified by the NAS CG benchmark. Thus, the example is
primarily a demonstration that a MATLAB linear algebra program that uses
arrays distributed across multiple processors can look almost identical
to a single processor version.
</p>
<h3 align = "center">
Licensing:
</h3>
<p>
The computer code and data files described and made available on this web page
are distributed under
<a href = "../../txt/gnu_lgpl.txt">the GNU LGPL license.</a>
</p>
<h3 align = "center">
Languages:
</h3>
<p>
<b>CG_DISTRIBUTED</b> is available in
<a href = "../../m_src/cg_distributed/cg_distributed.html">a MATLAB version</a>.
</p>
<h3 align = "center">
Related Data and Programs:
</h3>
<p>
<a href = "../../m_src/cg/cg.html">
CG</a>,
a MATLAB library which
implements a simple version of the conjugate gradient (CG) method
for solving a system of linear equations of the form A*x=b,
suitable for situations in which the matrix A is positive definite
(only real, positive eigenvalues) and symmetric.
</p>
<p>
<a href = "../../m_src/cg_rc/cg_rc.html">
CG_RC</a>,
a MATLAB library which
implements the conjugate gradient (CG) method for solving
a positive definite sparse linear system A*x=b, using reverse communication.
</p>
<p>
<a href = "../../m_src/fmincon_parallel/fmincon_parallel.html">
FMINCON_PARALLEL</a>,
a MATLAB program which
demonstrates the use of MATLAB's FMINCON constrained minimization
function, taking advantage of MATLAB's Parallel Computing Toolbox
for faster execution.
</p>
<p>
<a href = "../../m_src/linear_solve_distributed/linear_solve_distributed.html">
LINEAR_SOLVE_DISTRIBUTED</a>,
a MATLAB program which
solves a linear system <b>A*x=b</b> using MATLAB's <b>spmd</b> facility,
so that the matrix <b>A</b> is "distributed" across multiple MATLAB workers.
</p>
<p>
<a href = "../../m_src/lyrics_remote/lyrics_remote.html">
LYRICS_REMOTE</a>,
a MATLAB program which
runs in parallel, using three workers which cooperate "systolically", that is,
as through they were on an assembly line. The output from worker 1 is passed to
worker 2 for further processing, and so on. This includes
instructions on how to run the job, via MATLAB's BATCH facility,
on a remote system such as Virginia Tech's ITHACA cluster.
</p>
<p>
<a href = "../../m_src/matlab_distcomp/matlab_distcomp.html">
MATLAB_DISTCOMP</a>,
a MATLAB program which
remotely runs a set of 5 jobs on the Ithaca cluster.
These jobs are equivalent to the BIRTHDAY_REMOTE, COLOR_REMOTE,
KNAPSACK_REMOTE, LYRICS_REMOTE and MD_REMOTE jobs.
</p>
<p>
<a href = "../../m_src/matlab_parallel/matlab_parallel.html">
MATLAB_PARALLEL</a>,
MATLAB programs which
illustrate "local" parallel programming on a single computer
with MATLAB's Parallel Computing Toolbox.
</p>
<p>
<a href = "../../m_src/matlab_remote/matlab_remote.html">
MATLAB_REMOTE</a>,
MATLAB programs which
illustrate the use of remote job execution, in which a desktop copy of
MATLAB sends programs and data to a remote machine for execution.
Included is information needed to properly configure the local machine.
</p>
<p>
<a href = "../../m_src/md_parfor/md_parfor.html">
MD_PARFOR</a>,
a MATLAB program which
carries out a molecular dynamics simulation,
running in parallel using MATLAB's "PARFOR" feature.
</p>
<h3 align = "center">
Reference:
</h3>
<p>
The web site for the NAS Parallel Benchmarks is
<a href = "http://www.nas.nasa.gov/Resources/Software/npb.html">
http://www.nas.nasa.gov/Resources/Software/npb.html</a>
<p>
The User's Guide for the Parallel Computing Toolbox is available at
<a href = "http://www.mathworks.com/access/helpdesk/help/pdf_doc/distcomp/distcomp.pdf">
http://www.mathworks.com/access/helpdesk/help/pdf_doc/distcomp/distcomp.pdf</a>
</p>
<p>
<ol>
<li>
David Bailey, Eric Barszcz, John Barton, D Browning, Robert Carter, Leonardo Dagum,
Rod Fatoohi, Samuel Fineberg, Paul Frederickson, Thomas Lasinski, Robert Schreiber,
Horst Simon, V Venkatakrishnan, Sisira Weeratunga,<br>
The NAS Parallel Benchmarks,<br>
RNR Technical Report RNR-94-007, March 1994.
</li>
<li>
Gaurav Sharma, Jos Martin,<br>
MATLAB: A Language for Parallel Computing,<br>
International Journal of Parallel Programming,<br>
Volume 37, Number 1, pages 3-36, February 2009.
</li>
</ol>
</p>
<h3 align = "center">
Source Code:
</h3>
<p>
<ul>
<li>
<a href = "cg_it.m">cg_it.m</a>,
a MATLAB function which carries out the conjugate gradient iteration.
</li>
<li>
<a href = "cg_fun.m">cg_fun.m</a>,
a MATLAB function which uses CG_IT in an eigenvalue iteration.
</li>
<li>
<a href = "cg_pool.m">cg_pool.m</a>
a script which uses the MATLABPOOL command to run the function locally and
interactively.
</li>
<li>
<a href = "cg_script.m">cg_script.m</a>,
a MATLAB script file which simply invokes the function.
</li>
<li>
<a href = "cg_batch_local.m">cg_batch_local.m</a>,
a batch command to run the job indirectly on the local system,
plus a few more commands
to monitor its progress, print the diary, and destroy the job at the end.
</li>
<li>
<a href = "cg_batch_ithaca.m">cg_batch_ithaca.m</a>,
a batch command to run the job indirectly on the Ithaca cluster,
plus a few more commands
to monitor its progress, print the diary, and destroy the job at the end.
</li>
<li>
<a href = "cg_fsu.m">cg_fsu.m</a>
a script which uses the fsuClusterMatlab command to run the function
indirectly on the FSU HPC cluster.
</li>
</ul>
</p>
<p>
You can go up one level to <a href = "../m_src.html">
the MATLAB source codes</a>.
</p>
<hr>
<i>
Last revised on 01 April 2010.
</i>
<!-- John Burkardt -->
</body>
</html>