---
# System prepended metadata

title: HW1 Grading Policy

---

$$ 
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`


