$$ score = correctness * 0.4 + performance * 0.3 + report $$ ## Correctness (40%) - $X$: passed tests - $N$: total number of tests $$ correctness = \frac{X}{N} * 100 $$ ## Performance (30%) - $T$: time + panelty (from the scoreboard) - $T_{i, j}$: student $i$'s $T$ of test $j$ - $T_{best, j}$: the minimum $T_j$ of all the students $$ performance = \sum_{j=1}^N \frac{T_{best, j}}{T_{i, j}} * \frac{1}{N} * 100 $$ ## Report (30%) 1. (8%) Describe your implementation. How did you distribute your workload across different threads? - (4%) Describe the design/overview of the program breifly - (2%) Describe which scheduling algorithm you choose and why (static/ dynamic / guided...) - (2%) Other efforts you make in your program. 2. (8%) What are the difficulties encountered in this homework? How did you solve them? - (4%) Discuss at least 1 difficulty - (2%) Elaborate on your attempts to solve it - (2%) Analyze the cause of difficulty / Discuss 2nd difficulty and your attempts to solve it 3. (6%) What are the strengths and weaknesses of pthread and OpenMP? - (3%) at least 1 pthread pros and 1 pthread cons - (3%) at least 1 OpenMP pros and 1 OpenMP cons 4. (8%) Performance Analysis - (4%) Draw a plot showing the relationship between the number of cores used and the program execution time. - (4%) Analyze the plot: Is the relationship linear? If not, provide reasons for the observed behavior. 5. (0-10%) Any suggestions or feedback for the homework are welcome. 5% for each meaningful suggestions or constructive feedback. ###### tags: `grading policy`