|
|
COMP4300 Assignment 1
COMP4300 Assignment 1 Marking
There were 45 submissions to be marked. Assuming 20mins per assignment
that means 15 hours. First lesson - make sure your submission is
easy to mark!
- Gather initial impressions
- cd to directory
- untar submission
- inspect to see if you submitted lots of irrelevant stuff
- type make and look for use of optimisation flags (or lack in most cases)
- inspect readme file (does it provide useful information, what each
file contains, how to build and run code)
- Simple Testing
BASIC
mpirun -np 2 ./flow -x 50 -y 50 -r 125 -b 125 -d 2
mpirun -np 3 ./flow -x 150 -y 150 -r 4500 -b 4500 -d 2
SPECIAL
mpirun -np 4 ./flow -x 999999 -y 3 -r 400000 -b 400000 -d 1
mpirun -np 5 ./flow -x 5 -y 999999 -r 653 -b 457 -d 8
I'm looking to determine if program ran without any strange messages and
whether the results are numerically correct. Gauge what performance
looks like. Results at 10 iterations and good timings are as follows
10 2.54400 1.53103 8 0.00378
10 9.92511 2.83752 21 0.03125
10 2.24614 1.43516 8 0.84766
10 0.02523 0.15681 1 0.02001
- Large Testing
SCALING
mpirun -np 1 ./flow -x 1000 -y 1000 -r 400000 -b 400000 -d 5
mpirun -np 2 ./flow -x 1000 -y 1000 -r 400000 -b 400000 -d 5
mpirun -np 4 ./flow -x 1000 -y 1000 -r 400000 -b 400000 -d 5
result at step 3
stp 3 96.00335 4.48950 114
LARGE
mpirun -np 6 ./flow -x 15658 -y 2876 -r 357869 -b 456781 -d 2
result at step 10
stp 10 0.44233 0.66184 6
Good timing for scalability test is less than 2 seconds on 4
processors. For large test less than 10seconds at 10 interations.
- Writeup inspection: read the writeup, does it give a sense of what
was done, does it provide some performance data, does it talk about
maximum size. Does it contain lots of irrelevant information. Is the
performance data just cut and paste of output - not summary tables.
Too long and verbose is bad.
- Look at code. From what was written in the writeup can I
understand what you did in the code. What range of MPI functions did
you use. How long is the code.
- Assign marks
- Simple to compile and run, useful readme, not too much other
rubbish in your tar file: 3 Marks
- What you did, in terms of code and algorithm attempted: 7 Marks
- Performance from tests: 5 Marks
- Writeup how useful/accurate: 5 Marks
Only whole marks were used. Assignment between four categories not
perfect. In few cases individual categories were not used (not
meaningful given what was done).
What you were required to submit
You should submit a tar file called "assign1.tar", which should untar to
contain the following
- A README file detailing the content of the tar file.
- The source code for your program, complete with comments.
- A makefile that will build the code by typing "make" on Saratoga
and produce a binary called "flow" that also runs on the Saratoga cluster.
- A plain text file containing a write up of what you did, analysis
of the performance you observe, and details of what you believe to be
the largest calculation you can run. Name this file "writeup.txt".
Stated Marking Scheme
Below is a rough indication of how marks will be allocated:
- Content of readme file, that the code compiles, builds and runs
without obvious errors (2-4 marks)
- What the code does as problem characteristics and number of
processes used is changed. Your mark here will be
derived from running the code and checking the results are correct,
looking at the source, and reading the content of the writeup.
(5-7 marks).
- Observed Performance obtained and maximum system size possible.
(5-7 marks)
- Content of writeup and analysis. (4-6 marks)
|