Computer Science Department, Bucknell University

CSCI 320 Computer Architecture
Homework 1
Due Wednesday August 29, 2007

  1. Exploring Moore's Law.
    1. 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?

    2. 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.

  2. 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?

  3. 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?

  4. 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.
  5. 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?

  6. 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
    
    1. 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.

    2. 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.

    3. Create a chart that presents the results of the previous two parts. Write several sentences to describe what you conclude.

    4. 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.


Page maintained by Dan Hyde, hyde at bucknell.edu Last update August 22, 2007
Back to CSCI 320's home page.