gpt4 book ai didi

c++ - 如何实现在线裁判机器人?(例如TopCoder、Uva、ACM-ICPC)

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:02:47 25 4
gpt4 key购买 nike

有许多在线判断网站可以通过将其输出与正确答案进行比较来验证您的程序。此外,他们还会检查运行时间和内存使用情况,以确保您的程序没有超过最大限制。

那么问题来了,有些在线评委网站同时运行多个测试程序,他们是如何做到性能隔离的呢?以及他们如何在另一个时间运行的同一程序上实现相同的运行时间?

我认为存在诸如“VMware”或“Sandbox”之类的隔离环境进程,它们总是返回相同的结果。它是否正确?以及关于如何实现这些东西的任何想法?

当前解决方案

我正在使用 docker用于沙盒。这是一种极其简单且最安全的方法。

最佳答案

不幸的是,即使在专用机器上与 VM 上相比,也很难真正保证一致的运行时间。如果你确实想像上面提到的那样实现这样的东西,你可能想要一个虚拟机来保留所有将在沙盒中运行的代码。通常您不想为每个内核处理超过几个请求,所以我会说对于内存和 CPU 绑定(bind)的算法,每个机器的物理内核最多使用 2 个 VM。

虽然我只能推测为什么不在每个内核上尝试不同数量的 VM 并查看它的性能。尝试以大约 90% 或更高的 SLO 合规率(或者 98-99,如果你真的需要的话)为目标,你应该没问题。同样,很难准确地告诉您该怎么做,因为其中很多事情只需要对其进行测试并查看其效果。

关于c++ - 如何实现在线裁判机器人?(例如TopCoder、Uva、ACM-ICPC),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8768537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com