Some hints for writing your Lab Reports


  1. Don't forget a title and your name. Just because the report is in a tarball emailed from your account, don't assume that we will know from just the report who wrote it.

  2. On a similar note, when you email us a tarball or a report, please use a file name that identifies you and the assignment, e.g., SanjayLab0Report.pdf.

  3. Start your report with a recap of the objectives as stated in the Lab 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 (see discussion below on plagiarism).

  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 I explained in class, we Computer Scientists are often sloppy with the scientific method. This will make you think outside the box.

  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 need to include it in your report) leave it as a clearly marked appendix.

  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?


    Hints specific to Lab 0:

  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?"

  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 the function. So a larger range would be better. How high should you go? Use your judgement.

  9. Many of you (by default) evaluated the function for 3 repetitions. Why? What is a good number of reps? Although it didn't happen in this lab, you will see down the road that the larger the reps, the longer you job takes to run. 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 can you "get away with." A lot depends on how much intereferennce 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 beccause on the NERSC machines, your job is batch submitted and runs exclusively on the requested number of processors.

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

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

  12. 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. Use descriptive captions for all your figures.

  13. 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 not get you dependnent on sophisiticated 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.

  14. For tfun8 and tfun9, we want you to plot the speeedup, i.e., f(1)/f(x).

Last Modified: Aug 27 2007