Final Report (final exam) Instructions
Contents:
-
June 4:
If you get me a final or semifinal draft by NOON (not midnight) of
June 4, I will give it a tentative grade right away. If there are
any deficiencies, you will have the right to remedy them and then
submit a revised version. If on the other hand your draft is already
of A quality, I will treat that as your formal submission.
-
June 8:
Report due noon, June 8. No late submissions!
Here you will analyze optimized code produced by GCC. The details are
as follows:
- You will work with the same partners you had for the Homework
assignments. Each person should not need to put in more than three
hours of work on this project.
- Choose a C or C++ program that you have written. You will
probably want to use (or revise) one from a previous course you've
taken. Make sure it has a good representation of C/C++ constructs,
especially two-dimensional arrays and function calls with arguments.
- You then compile the program twice, both times using the
-S option to produce .s files,
but in the second case using one or more of GCC's optimization flags,
such as -O3. (Run gcc -help=optimizers
to get a list.)
- Compare the two .s files, and analyze the
changes. What changes were there? Why would the changes make the
code faster (or possibly conserve memory)?
- You need not analyze every single line, e.g. those at the very
beginning of main(), but you should analyze the
majority of the code changes.
- You must fully cite any material you use from the Web and the
like.
- Your report should have a minimum of 1200 words. (Missing this
slightly is not a problem.)
- You are required to use LaTeX to write up your report. I have a
very quick (5-10 minutes) tutorial here.
Given the importance of the deadlines, you should make sure you
familiarize yourself with LaTeX as soon as possible, rather than waiting
until the last minute and then finding that something doesn't work
right.
- If you decide to include images in your report, make sure that are
in either .jpg or .pdf format.
- Include listings of your C/C++ and .s files as
appendices (LaTeX \appendix command) to your report.
- Place instruction names, e.g. andl,
in bold face or other different font.
- Include another appendix that gives a brief account of "who did
what" in this project among the various group members.
- Your group submits just ONE copy of the report.
- Make sure that all partners' names are on the report.
- Place your report PDF file, your .tex source,
and any .jpg or code files, into a directory whose
name is your name, e.g. JohnMaynardKeynes.
Just one of your group members' names is fine, but make sure it's
unique. Or, name the directory after your group members' surnames,
e.g. TinkerEversChance. Create a
.tar file from that directory, e.g.
JohnMaynardKeynes.tar. Then e-mail that file
to ALL of the following addresses:
- matloff@cs.ucdavis.edu
- normmatloff@gmail.com
- normmatloff@yahoo.com
- Adherence to instructions.
- Clarity. This is very difficult, but quite achievable if you
work at it. Ask a friend not in the class to read it and tell you if
it makes sense.
- Correct spelling and grammar.
- Professional-quality presentation. It doesn't have to be fancy,
but should not look sloppy.
- In Spring 2010 there were several truly outstanding reports.
I've placed one of them (with permission of the authors)
here.