跳转至

评分细则

评测方式

正常情况下,当你在仓库的根目录执行 git push 将本地仓库 push 到远端仓库后, gitlab 即会将你的评测任务加入到执行队列中。

文件修改

除了必须完成的代码和部分 CMake 文件以外,原则上不允许修改任何文件(如有修改的必要,请在实验报告中指出),特别是 .gitlab-ci.yml 文件。如果修改了 .gitlab-ci.yml 导致评测出现异常,在没有给出合理缘由的情况下,你的实验成绩会被记为0分。

评测流程

评测过程中执行的脚本可在 .gitlab-ci.yml 中看到,分为编译和执行 checker 两个阶段。不可修改!

评测任务包括一个 CI Job ,依次对必做和选做内容进行测试。每个测试会依次执行 selection-sort, merge-sort, nttmatmul,对实现的模拟器在各类型任务上进行测试。4 个测试任务的其中两个已经下发在仓库中。

当你执行了 git push 后,CI可能会出现以下情况:

  • 如果你的代码实现正确,CI理论上会在 5 分钟内结束。(Success)
  • 如果你的代码出现了错误,CI会失败,日志中可看到 checker 输出的 log 信息。(Failed)
  • 如果你的任务运行时间超过 15 分钟,CI会认为你的代码没有正确实现需求而停止任务。 (Failed)
  • 如果你的任务超过 15 分钟却仍然没有评测结果,有可能是因为评测队列很长。爱护评测机,不要卡DDL做实验哦!

评分方式

本次实验总分为10分,由以下三个部分组成。

必做功能(6分)

若通过了 CI Job 1bash check_tomasulo.sh 中的所有测试,则获得这部分的所有6分。

若仅通过了 nttselection_sort 中的 k(0\leq k\leq 2) 个且代码思路正确,则获得2+k分。ntt 测例需要在 report 中单独进行汇报。

若代码思路不正确且没有通过任何测试,则无法得到这部分的分数。

注意,CI Job 1 在测试完必做功能之后,会继续测试选做功能。因此,只完成必做功能仍会导致 CI 失败。

选做功能(2分)

对于必做功能中通过了的测试,在选做功能中也全都通过了,并且运行的周期数小于未实现分支预测的CPU,则可以获得该2分。否则无法得到这部分的分数。

实验报告(2分)

你需要在报告中汇报如下内容:

  • 实现了的功能;
  • 实现代码的思路;
  • 最终的 git commit hash

其他内容可自行组织汇报。


最后更新: 2024年5月26日
作者:cuibst (18.0%), hogura (78.0%), hogura (4.0%)