CPSC 3300 - Fall 2015 Project 3 - Training video for locality improvement technique Due date: Friday, December 4, by midnight Submission: use handin.cs.clemson.edu website Concepts needed: memory reference behavior, locality, gcc compiler Grading weights: see scoring chart below [if doing again: 1. arrays should be declared globally to prevent dead code elimination 2. hand-optimized code should clearly do same amount of work (and should be reflected in scoring as correctness line item) 3. be more explicit about gcc flag 4. originality should be split into original technique and original approach to the video (warn that a cheesy approach doesn't guarantee the latter score) 5. possible score line item for usefulness of example? ] This project can be done individually or by a team of at most two people. Create a video aimed at an audience of your peers that shows a locality improvement technique (other than loop interchange for matrix multiply). Your video should contain: 1. Introduction and motivation 2. Original C code 3. Run time for plain gcc 4. Run time for gcc -O3 5. Locality improvement technique 6. Rewritten C code with locality improvement 7. Run time for gcc -O3 for improved C code 8. Animation or visual explanation for performance improvement 9. Run time for gcc with compiler flag if optimization is available 10. Bibliographic references and video credits For run times, show that you are the only user, then run each case three times each, and report the median times. Example times for 1000x1000 matrix multiple on koala24 gcc ijk.c 2.44 seconds gcc -O3 ijk.c 0.50 seconds gcc -O3 ikj.c 0.30 seconds gcc -floop-nest-optimize -O3 ijk.c 0.87 seconds // ikj.c is mmgen-generated code for interchanged loops // -floop-interchange not available See www.whitman.edu/content/wcts/support/advanced/video-basics for a link to a helpful video planning document. The Adobe Digital Studio (coe.clemson.edu/adobe-digital-studio/) in the Cooper Library may be also be helpful in creating the video. Grading Does Not Partially Meets Exceeds Meet Meets Requirement Requirement intro/motivation 0 1 2 3 4 5 6 original C shown 0 1 2 3 4 5 6 gcc run time 0 1 2 3 4 5 6 gcc -O3 run time 0 1 2 3 4 5 6 identify technique 0 1 2 3 4 5 6 rewritten C code 0 1 2 3 4 5 6 gcc -O3 run time 0 1 2 3 4 5 6 verbal explanation 0 2 4 6 8 10 12 visual explanation 0 2 4 6 8 10 12 available gcc flag 0 1 2 3 4 5 6 bibliography 0 1 2 3 4 5 6 originality 0 1 2 3 4 5 6 smooth flow 0 1 2 3 4 5 6 visually attractive 0 1 2 3 4 5 6 image quality 0 1 2 3 4 5 6 audio quality 0 1 2 3 4 5 6 screen/code readable 0 1 2 3 4 5 6 narration match 0 1 2 3 4 5 6