从实验室服务器资源占用机制看“公平”和“效率”


从去年开始,我们实验室里的服务器资源越来越紧张,每个人都声称自己几乎申请不到资源,有时候即使连一个调试节点上的device也占不到,每每只能唉声叹气的在自己的cpu上调试和测试。

事实上,我们实验室满打满算GPU资源已经相当丰富,从node1到node13,共55个device(其中18个4g显存,37个12g显存),拢共30个人使用(不会同时使用),因此即使按照平均分配也能保证每个人有1个device使用。但是是什么原因导致了有人没有申请到资源?

从实验室拟定的服务器使用条例中可以看到,规则上采用如下的机制:

1. 使用数量:每个人最多可以同时使用6块显卡,如果使用的显卡数目超过4块,而此时显卡数目不够用,则采用A1方案:让显卡使用量最多的人主动让出显卡使用权,如果使用量最多的人数超过一人,则让出最早被预约的显卡。为了保证每人都随时有一块显卡可以使用,如果出现有人没有显卡可用的情况,采用A1方案
2. 使用时间:每次预约成功一块显卡后,只要当前使用的显卡数目不超过4块,那么72小时内不能被强制让出显卡使用权
3. 预约方式:每隔72小时,15点,提供一张清空的在线表格,大家将自己的名字填到对应的显卡所在行,如果多人预约同一张显卡,根据表格修改记录,按照谁先提交谁得到显卡使用权的原则来分配显卡。每个人在十分钟内的预约数目不能超过六块显卡,以免出现有人一次性将20张显卡全部预约的情况。在72小时内,可以随时放弃显卡使用权,并删除表格中显卡对应的使用人。在72小时内,如果还有空余显卡,也可以随时预约。
4. 考虑到Titan X显卡的运算性能优于GTX 980,故不对每块显卡的显存使用量做要求,但是尽量秉承用Titan X运行高显存使用量程序的原则。
5. 如果需要做超过72小时的运算,并且切换显卡不方便,需提前告知大家尽量不要预约在使用的显卡。
6. 考虑到目前深度学习的框架对于CPU以及内存的使用量不会有过高的要求,所以尽量不要占用太多CPU以及内存资源。
7. 需要自己让出显卡使用权的时候,请自觉停掉程序

整体的方案从分配的角度上,基本上保证了众多用户的权限,既能让高需求用户同时满足多达6块device的使用需求,也能保证低需求用户1块device的最小需要。从理论上讲,这样还是可行的,“多退少补”的原则也能够让没有资源的用户得到最大的保障。

从某种意义上讲,这种机制更加注重效率,需要使用更多device的用户可以得到尽可能多的device,6片,基本上同时可以跑多达6个实验或6组参数,甚至更多。这样的机制使得占用很多资源的学生能够更快的得到更多的结果,加快科研的进展,也就是“效率优先”。但正是这种效率优先的策略,正导致了在长达半年到一年时间内的哀声哉道——没有人会主动吐出自己占有的资源,因为没有人愿意承认自己占用了最多的资源,且并没有充分利用起来。这就导致了多数资源占用不那么频繁的用户,经常性的占用不到任何资源。

实验室的发展确实要以学生的科研结果作为基础,因此必须有效的推动学生的科研进展,因此“效率优先”在一定程度上是可以理解的,但是如果这种策略阻碍了更多学生的研究工作,或者对他们的工作造成困扰,那么这就违背了效率的意义,从而造成了某种程度上的“垄断”。事实上,在过去的半年里,经常会有用户直接使用6块device甚至8块device(战时条例),这绝对是对其他用户资源的一种不道德侵占。

分析一下上述机制失败之处,主要在于“让用户吐出使用的device”是难以实现,不可操作的。在新机制的讨论期间部分同学提出修改上限数字为4甚至3,但是从我的观点来看,如果有数量较多的用户(比如6个)同时使用4个device的情况下,仍然难以解决该问题。

实验室里在没有大的利益冲突下,就存在这样的资源分配问题,而在社会上更严重的资源分配不均更是显而易见。“效率”与“公平”从来都是一对难以协调的因子,在邓之后,社会氛围明显趋于"效率优先,兼顾公平”的发展策略,所谓“兼顾公平”的情况,也多是“效率”的胜利。

而我,作为社会的一份子,实验室的一成员,为了让自己能够获得更多的资源,也就只好在提高“效率”的路上渐行渐远,努力的让自己成为“效率”的那部分社会组成,远离“公平”。

你可能感兴趣的:(从实验室服务器资源占用机制看“公平”和“效率”)