- Exploring Moore's Law.
- Moore's Law states that the number of transistors on an integrated chip
(IC) doubles every 18
months. Assuming the same rate, how much does it increase each year?
- You have a neat idea for a processor that would be six times
faster than current processors. However, it will take you four
years to bring it to market. Is this idea worth pursuing?
Explain why or why not. Assume because of Moore's Law that the processor
speed across the industry doubles every 18 months.
- In the previous problem, we assumed because of Moore's Law that the processor
speed doubles every 18 months. However, since about 2002 this is no longer true
(See Figure 1.1 page 3 in text). In your own words explain why. What has the
processor manufacturers such as Intel done to adjust to this fact? How will this
affect programmers?
- Assume you have to do your wash and you have four loads.
Assume it takes a half hour each to wash, dry and fold (Recall this example
from the CS206 Text?) Must show work in all parts.
A). How long does it take if you do all the steps sequentially?
That is with one washing machine, one dryer and one person folding.
B). Replication: What if you are allowed to replicate hardware
(or agents)? You now are allowed to have two washers, two dryers and
two people to fold. How long does it take? What is the speedup?
C). Pipeline: What if you have only one washer, one dryer and
one person to fold but are allowed to overlap operations? How long
does it take? What is the speedup?
- Redo the three parts of previous problem assuming it takes 25 minutes
for wash, 40 minutes to dry and 20 minutes to fold. In a few sentences
reflect on what you have learned from this problem.
- In this exercise, assume that we are considering enhancing a machine
by adding vector hardware to it. When a computation is run in vector mode
on the vector hardware, it is 10 times faster than the normal mode of execution.
We call the percentage of time that could be spent using vector mode as the
percentage of vectorization. Vector processors are discussed in
Appendix F of our text, but you don't need to know anything about how they
work to answer this question!
A. Draw a graph that plots the speedup as a percentage of the computation
performed in vector mode. Label the y-axis "Net Speedup" and label the
x-axis "Percent vectorization."
B. What percentage of vectorization is needed to achieve a speedup of 2?
C. What percentage of vectorization is needed to achieve one-half the maximum
speedup attainable from using vector mode?
D. Suppose you have measured the percentage of vectorization for programs to
be 70%. The hardware design group says they can double the speed of the vector
hardware with a significant engineering investment. You wonder whether the
compiler crew could increase the use of vector mode as another approach to
increasing performance. How much of an increase in the percentage of
vectorization (relative to current usage) would you need to obtain the same performance gain as doubling vector hardware speed? Which investment would you recommend?
- In this exercise you gain experience in running and analyzing a
benchmark. You will use a modified version of a standard benchmark to
compute for a computer platform
the floating point performance in Millions of Floating-point OPerations
per Second (MFLOPS). Copy into your own directory the
Fortran 77 program found at
~cs320/Hw1/mflops.f
To compile and run, type the following at a Unix prompt:
g77 mflops.f -o mflops
mflops
- Compile and run the benchmark three times each on three Linux
machines - one
in room 213 Dana, one in room 164 Breakiron and on the compute server
linuxcomp5. Record the name of the hosts used as well as the MFLOPS.
- Read man g77 to learn how to have the Fortran g77 compiler
optimize the code further. Find the compiler options that give you the
best speedup and the same answer in IEEE Standard Arithmetic.
Be warned that some compiler optimization options sacrifice correctness for
speed. Also what compiler options give you the best speedup but allow the answer
to be only close. Record the options used. Repeat the previous part
of the exercise on the same three Linux machines in part 1.
- Create a chart that presents the results of the previous two
parts. Write several sentences to describe what you conclude.
- Analyze the Fortran program and in the context of Chapter 1 of
our text, discuss if this is a good benchmark and why. Give
references to pages in text.