评分细则
评测方式
正常情况下,当你在仓库的根目录执行 git push
将本地仓库 push 到远端仓库后, gitlab 即会将你的评测任务加入到执行队列中。
文件修改
除了必须完成的代码和部分 CMake 文件以外,原则上不允许修改任何文件(如有修改的必要,请在实验报告中指出),特别是 .gitlab-ci.yml
文件。如果修改了 .gitlab-ci.yml
导致评测出现异常,在没有给出合理缘由的情况下,你的实验成绩会被记为0分。
评测流程
评测过程中执行的脚本可在 .gitlab-ci.yml
中看到,分为编译和执行 checker
两个阶段。不可修改!
评测任务包括一个 CI Job
,依次对必做和选做内容进行测试。每个测试会依次执行 selection-sort
, merge-sort
, ntt
和 matmul
,对实现的模拟器在各类型任务上进行测试。4 个测试任务的其中两个已经下发在仓库中。
当你执行了 git push
后,CI可能会出现以下情况:
- 如果你的代码实现正确,CI理论上会在 5 分钟内结束。(Success)
- 如果你的代码出现了错误,CI会失败,日志中可看到
checker
输出的 log 信息。(Failed) - 如果你的任务运行时间超过 15 分钟,CI会认为你的代码没有正确实现需求而停止任务。 (Failed)
- 如果你的任务超过 15 分钟却仍然没有评测结果,有可能是因为评测队列很长。爱护评测机,不要卡DDL做实验哦!
评分方式
本次实验总分为10分,由以下三个部分组成。
必做功能(6分)
若通过了 CI Job 1
中 bash check_tomasulo.sh
中的所有测试,则获得这部分的所有6分。
若仅通过了 ntt
和 selection_sort
中的 k(0\leq k\leq 2) 个且代码思路正确,则获得2+k分。ntt
测例需要在 report 中单独进行汇报。
若代码思路不正确且没有通过任何测试,则无法得到这部分的分数。
注意,CI Job 1
在测试完必做功能之后,会继续测试选做功能。因此,只完成必做功能仍会导致 CI 失败。
选做功能(2分)
对于必做功能中通过了的测试,在选做功能中也全都通过了,并且运行的周期数小于未实现分支预测的CPU,则可以获得该2分。否则无法得到这部分的分数。
实验报告(2分)
你需要在报告中汇报如下内容:
- 实现了的功能;
- 实现代码的思路;
- 最终的
git commit hash
。
其他内容可自行组织汇报。