|
Home Contact Syllabus Homework Classnotes Calendar Cluster Exam Sampler Exam Sampler II Exam Sampler III
Check your grades on Eagle
| |
Description: Examines basic techniques for designing parallel
algorithms, such as balanced trees, pointer jumping, partitioning, pipelining,
accelerated cascading, list ranking, and tree contraction. Consideration
of classis parallel algorithms in graphs, merging, sorting, planar geometry,
string matching, and randomized techniques. Prerequisite: CS2200.
(3cr)
Text: Parallel Programming: Techniques and Applications. Barry
Wilkinson and Michael Allen (second edition).
Prentice Hall; ISBN: 0131405632

Announcements:
 | Here is the mandelbrot ppt from
earlier this semester
|
 | For the first few lectures, we will be using material from a
supplemental source: Introduction to Parallel Computing, by V. Kumar,
et al., which can be found in the USU library course reserves. See
http://library.usu.edu/ and follow to
the link to the course reserves.
|
 | I'm getting a few worries about the last homework -- worries about how
detailed a report, how much research to do, etc. I understand the
reason for the concern, and how taking this as a distance-ed course
exacerbates the situation. I am not terribly worried because I know
that questions of this type will largely be attenuated as we all get used to
working with each other, but as a general rule, you should remember that the
primary goal of the homework assignments is to get you to think about
different aspects of the subject, to use that as a starting point.
Think about the question, decide on a course of action, make some
assumptions if need be, and write a reasoned response. The
days of the weed-out courses are long gone. Let your desire to learn
be your guide.
Here is my specific response to one query: |
On 1.10, I'm just looking for a back-of-the-envelope type of
calculation. Here's an example: Choose a minimum performance level --
say... 25%. Let it be your policy that when a processor gets to only
25% of the best processor in the system, that you'll surplus the old
processors. Furthermore, let your policy be that you'll buy mid-line
PCs to add to your system each year. About how long could you expect a
PC to "live" in your system? Would your system achieve a relatively
steady state, or would it continue to grow, or would it shrink in size
over time? Use Moore's law to make projections. Snoop around on the
web to see what the cost of PCs has been, and is likely to be. How can
you expect the performance to increase over time? Major guessing is
allowed. No more than a page.
As for web resources for processor prices, there are many -- probably
too many. I looked at newegg.com for an idea of current prices, and
found http://www.cpuscorecard.com as a nice reference for performance of
past systems, plus a few other Google finds. About 5 minutes of looking
around garnered the following data points:
Pentiums II processors - can't buy anymore
old Intel Pentium III 1GHz - $26
Pentium 4 single core 3GHz - $82
Pentium 4 single core 3.2GHz - $88
Pentium 4 single core 3.4GHz - $99
Pentium D dual core 2.8GHz - $98
Pentium D dual core 3.2GHz - $147
Pentium Extreme dual core 3.73GHz - $969
A text version of the resulting graph (best viewed with constant-width
font) is
clock rate (GHZ)
4.0 |
3.8 | o
3.6 |
3.4 | *
3.2 | * o
3.0 | *
2.8 | o
2.6 |
2.4 | * - single core
2.2 | o - dual core
2.0 |
1.8 |
1.6 |
1.4 |
1.2 |
1.0 |*
0.8 |
------------------------------------------
000 100 200 300 400 500 600 700 800 900 1000
cost ($)
Which illustrates that old processors are essentially free, the absolute
best processors are outrageously expensive, and that most of the
offerings are right at the price/performance knee, where everybody wants
to buy them.
|