HW0 Redo Instructions and Guidelines for Lab Reports


As you all know, HW0 is intended to be a learning exercise, and we expect you to redo the assignment. This means that the grade you get of the first submission will not count. It is intended to (i) help you improve the next submission, and (ii) give you feedback.

Here is the grading rubric for HW0 Redo. We will use a similar one for future homework reports (remember, the reports count for 10% of your grade). For the HW1 report of course, we will not be so strict (since you will not have received the feebdack).

  1. Clear title and name in the report. [2pts]

  2. On a similar note, the file name should be meaningful (at least your name and HW number). [2pts]

  3. Start your report with a recap of the objectives as stated in the HW announcement. You should paraphrase and may shorten it if you like, e.g., "To measure and analyze the running times of programs, to deduce functions (of input size or number of processors) that model these running times, and validate them." Don't simply cut and paste it from the lab announcement, or from the previous sentence. [2pts]

  4. Next, state your hypotheses, e.g., "The running times are stable with respect to repeated observations, and we can deduce the functions through simple manipulation and linear least-squares fit." As Computer Scientists, we are often sloppy with the scientific method. This will make you conscious of it. [2pts]

  5. Make sure that your report is self contained: please include all graphs and figures necessary to understand your data and conclusions. However, don't put bash scripts, gnuplot transcripts, etc., right in the middle of running text, but (if you really think you need to include it in your report) leave it as a clearly marked appendix. [2pts]

  6. Avoid repetition. Imagine how you would feel if you had to read a book where portions we simply cut and pasted from chapters you had previously read? [2pts]


    Hints specific to HW0:

  7. Look for ways to shorten your report. Do you need a separate plot for each function? Can some common parts of the description of your thinking for each function be "factored out?" What about the plots themselves? Can similar functions be put into the same figure? [9pts]

  8. Many of you (by default) evaluated all the functions for a fixed x = 1 to 100. Why? What is a good range? Do you need to evaluate the function for every integer in the range? Remember, we want to see the asymptotic behavior of functions 1-7. So a larger range would be better. How high should you go? Use your judgment, and justify your choice. Although this rubric itself counts for only 2 pts, it can severely affect the correctness of the functions that you derive. [2pts]

  9. Significant figures When you report measured data be careful not to report all the digits that your calculator/gnuplot returns. See this brief review. For the measurements that you get from the timer functions, please use no more than three or four significant digits. If you are reporting the degree of a polynomial function that represents asymptotic complexity, it is usually an integer or a rational with small denominator, so no more than two significant figures there please. [2pts]

  10. Number of reps. In this lab, we told you to use 3 as the third argument of tfun. In general, you need to give some thought to it, and at least justify it in subsequent reports. If you take more reps, you should compute the standard deviation of these and use the gnuplot fit function using weighted least squares as explained in this page (thanks to Tom Shearson for pointing this out last year). You may also look up Least Squares at this wiki page [2pts]

    Although it didn't happen in this lab, you will see down the road, that the larger the reps, the more of your carver resources your job uses up. This time that could be better spent getting more information about the function, by sampling at different input size and/or numbers of processors. As this course proceeds, you will get a feel for how many reps you really need. A lot depends on how much interference there is on the machine. In previous years, we had really noisy data and the measurements were often poor. This year, we expect that as few as three to five reps for a single combination of n and p (problem size and number of processors) may be enough because on the NERSC machines, your job is batch submitted and runs exclusively on the requested number of processors.

  11. Avoid repetition. Imagine how you would feel if you had to read a book where portions we simply cut and pasted from chapters you had previously read? Get the point? [1pt; yes, it's cumulative, so having obviously avoidable repetition could cost you 3pts]

  12. Beware of plagiarism. The Writing Center has a good explanation. Remember, cut-and-paste is synonymous with quote, so use quote marks, and say where it came from. [2pts]

  13. Label your plots, and make sure the labels are consistent. When you cut-and-paste-and-edit in your gnuplot script, be sure to edit the caption and comments too, not just the formulas. [2pts]

  14. Use descriptive captions for all your figures. [2pts]

  15. Make sure you label all your graph axes, and the labels are in a large enough font (gnuplot default is notoriously bad). [2pts]

  16. R, Matlab, Mathematica, Octave, etc., are excellent tools, and can do very sophisticated analyses, including least square fits of arbitrary functions (actually, even gnuplot can do that). However, remember that in this lab, we are interested in linear least squares fits, i.e., try to find a straight line that best fits your data (if needed, transformed to some appropriate space). We believe that this give you a real feel for your data, and avoids making you a slave of sophisticated tools. Thinking of what transformations would make the data linear, and then working out the functions from the coefficients of the linear fits of the data will do this. [2pts]

  17. For functions 8 and 9, we want you to plot the speedup, i.e., f(1)/f(x). [2pts]

  18. Technical mistakes and inaccuracies. For example, if you say "exponential funtion" and write f(x) = x^a. [5pts]


Last Modified: Sept 11 2011