多核系统的公厕悖论

Sina WeiboBaiduLinkedInQQGoogle+RedditEvernote分享




我把自己定义为一个优秀的系统软件工程师。而且以此为自豪。基本上在生活中的许多场景,都会联想到系统软件。。。

谈谈我隐藏很久的一个想法。没有去申请专利。天下之大智慧,乃Open Source。

前年的圣诞节,全家去LV旅游。回来的时候,在I-5的一个高速休息处下来,加油,休息,吃饭和上厕所。。。

赫然发现,Man的队为0;Woman的对很长。生理原因这里省略250字。不理解的请补充初二的生理卫生课本。。。

一般人看到这里,基本上就是暗自高兴。什么也不想。或者想的很猥琐。

这就是为什么一个苹果砸在大多数同学的头上,除了苹果被吃之外,这个世界没有变化的主要原因。

陈首席看到这里,灵光一现。类似与爱因斯坦同学回头看钟表的那一霎那。。。

这就是多核系统软件的本质!这就是多核系统不能充分发挥性能的本质!

世界上本来没有科学。有了数学,才有了科学;

可怜的女同学无奈的等着,等着。男同学站在外面无奈的看着。

这一切的原因就是:资源被固定的分类和划分,导致资源的浪费。

首席当时想到:一个理想的高速休息处的公厕的调度算法应该是这样的:
0. 假设总共有N个位置
1. 不分男(M)女(F)
2. 3个队列(M和F和S)。S::=Special。注:Special为Senior和Kids(老年人和孩子)。
【注:Special队列估计在有着尊老爱幼传统的大宋估计行不通。。。这也算一个悖论吧。。。】
3. 每个队列调度算法为FIFO
4. 如果一个人进入,关门。门上有一个指示灯和一个数字。
-指示灯显示目前在里面的是M或者F.
-数字显示的是(1-N),表示厕所还有几个位置。
5. 如果指示灯是M/F,数字是i,相应队列的M/F可以进入。最多为为(N-i)人。

这个算法基本上能解决公厕的一些问题。

当然,这个算法有一个缺点,就是在某种极端情况下,F/M/F队列可能Starving其他的队列。可以在上述的算法基础上,做一些变种,例如,每个队列的上限值。从而,当任何一个队列的长度达到一个值的时候,系统必须到空公厕,然后让过长的队列开始上厕所。当然,S队列优先。

(6个打分, 平均:4.67 / 5)

雁过留声

“多核系统的公厕悖论”有48个回复

  1. anonymous 于 2011-03-08 8:25 下午

    哈哈哈,KISS原则,是否再简化点,M/F全进一个FIFO队列,再设一个优先队列(Senior和Kids, 在大宋,公务员进此队列)。

    首席在设备商工作时间太长,有倾向把问题复杂化,想多收钱。

  2. 一日三省 于 2011-03-08 8:42 下午

    银行的排队系统就是这样的吧,银行N个柜台同时服务,然后所有人在排号系统里取号,哪个柜台空了,排最前面的就上去接受服务。

  3. kevin 于 2011-03-08 8:50 下午

    恩。。。infrastructure的效率也跟application scenario有关。。。hotchip chair一开始就说了,我们的男厕所和女厕所一样大,不过并不是什么big problem,因为看上去场下的群众男同志要远远多于女同志。。。。

    学习carpool也可以增加类似peepool的机制,两人以上可以优先去。。。

  4. anonymous 于 2011-03-08 9:17 下午

    其实这个问题还是迈复杂的。首席考虑得对。我能想到的:
    1. 资源利用率,同样的面积供一个F的任务可以完成3个M的任务
    2. 任务分大任务和小任务
    3. 任务还有集合问题,如单个M的任务,单个F的任务,M+F的任务,M+F+Child作为家庭的任务。

    首席再想想??

  5. kernelchina 于 2011-03-08 9:21 下午

    进去就是独占,又不能被换出来,时间长的阻塞时间短的,还有就是男女不分是不是有点浪费,是做成男式哪,还是女式哪?这些问题在Job scheduling已经考虑过很多了吧。

  6. 陈怀临 于 2011-03-08 9:24 下午

    kernelchina一看就是城里人出身。一谈厕所就暴露了阶级成分。。。农村厕所有男女之分??

  7. Jack 于 2011-03-08 9:49 下午

    火车上就是这样的,不分男女。
    农村厕所一般都是自家使用,所以没有标识~

  8. 公厕问题 于 2011-03-08 11:02 下午

    首席的前提是男女厕是一样的,但厕所是分公母的,男士都是站着撒尿,可以节约空间,快尽快出。

  9. Sting 于 2011-03-08 11:04 下午

    增加一个业务分析:M的小便属于fast path,其他的都是slow path。

  10. Elizabeth 于 2011-03-09 12:24 上午
  11. 不分男女 于 2011-03-09 1:10 上午

    既然坑位不分男女, 男女站一队是否效率更高? 老弱病残孕还是在高优先级的另一队。

  12. Will Chie 于 2011-03-09 1:14 上午

    坑位不分男女,但next是分男女的,试想一下next是F,但前面有N个M。
    另外分两队也能做到首席的扩展想法:负载均衡。

  13. kevin 于 2011-03-09 1:16 上午

    把不明真相的群众map-reduce一下。

  14. 理客 于 2011-03-09 1:24 上午

    方便女性站着小便的装置已经商用

  15. Will Chie 于 2011-03-09 1:26 上午

    理客兄,

    额,

    这个,

    您咋关注这个问题捏?呵呵。

  16. shuyong 于 2011-03-09 1:58 上午

    呵呵,14楼的是从算法上根本解决问题。

  17. ken 于 2011-03-09 2:18 上午

    其实男的也是可以坐着的,应该不会影响速度,这样把所有的空间做出小隔间,只要用空的隔间就可以进,FIFO就可以了。

  18. 理客 于 2011-03-09 2:19 上午

    看新闻看到的,但能否普及被接受,就不知道了

  19. Jie 于 2011-03-09 4:42 上午

    @理客与首席对解决同一问题有不同的解决方法.

    假设有两个Startup分别采用了这两种方法, 哪个会成功呢?

  20. 不分男女 于 2011-03-09 6:05 上午

    考虑到:
    1. 成本
    2. Time-to-market,
    3. 基层群众的接受性。

    首席成功的可能性稍稍大一点。

    不过话说回来, 两人都在试图改变人们数千年养成的上厕所习惯。 两人都失败的可能性最大。

    最实际的还是女厕所比男厕所的坑位多三倍。 问题解决了, 而且人们上厕所的习惯没变。 当然, 厕所建设费用至少翻翻, 适合富二代的startup.

  21. 陈怀临 于 2011-03-09 6:49 上午

    你的算法的问题是三倍的值是如何得出的。

  22. netsitter 于 2011-03-09 7:30 上午

    20楼的方案不具普适性,例如IT公司,女厕所如果是男厕所3倍,会是啥情况啊?

    那好,如果你说IT公司的比例要调过来,那么问题又来了,如果这个IT公司搬走了,来了个call center……

    我猜其实首席是批评现在的多核系统的资源分配问题,例如core0上面MP和DP切换,其他core上统统都跑DP,对于防火墙是没有问题的,但如果继承IPS,当然可以把IPS集成到DP中,如果放到MP,那么IPS性能就悲剧了,SSL VPN模块也一样。

  23. 29 于 2011-03-09 7:36 上午

    @10给的研究报告:
    1999年初笔者曾先后在北京飞机场、燕莎商场以及东单某胡同的公厕外作调查,计算男女在不必排队的情况下如厕所需的时间,每次统计为30人次。结果发现,上述三个公厕男女如厕的平均时间分别为:男52秒、女2分20秒,男50秒、女2分55秒,男33秒、女75秒。平均起来,女人一般上公厕的时间约为130秒,大约是男人的三倍(45秒)。

    这个貌似现在的系统架构师(城市规划)考虑了这个FIFO深度(坑的数量)问题了。
    @20 费用不会增加,把M和F的FIFO深度匀一下,让M FIFO的反压频率高一点就行。你把这个关键数据透露了,估计陈首席的胜算有高了一个八度了。

  24. 不分男女 于 2011-03-09 7:38 上午

    出自十楼的文章:http://www.douban.com/group/topic/13610036/

    “换言之,若按照男女上厕所需要的时间,每间女厕的人数容纳量应该是男厕的三倍左右,才能真正公平照顾男女的不同需要”

  25. netsitter 于 2011-03-09 7:49 上午

    那有没有统计过机场的厕所的男女性比例?
    国内的机场的男女比例肯定不是1:1, 也许是3:2。

  26. 理客 于 2011-03-09 9:02 上午

    不错的文章,厕所小事确实大问题,笔者首次工作的单位,一鬼子老板来访,临走前中方老板问鬼子有啥建议,鬼子说:你把厕所管好了,就能把管理做好了(大意),此为事后老板给大家说的。直到现在的单位,厕所问题仍然没管好,中国人,2百年穷的时间太长,有钱了臭毛病都不容易改,还是需要一点时间培养好习惯

  27. 不分男女 于 2011-03-09 11:22 上午

    to 22 楼,

    非常典型的书呆子的想法。 基本上除了编程, 干不了别的。要是女监呢? 那还要男厕所干嘛?

    首席访问的是公众场所, 我的答案也是针对公众场所。 一个问题的答案, 只要普适60%就不错。 如果是开公司, 你的产品或服务能适应60%要求, 你就能发财。 总是钻牛角尖, 一事无成。

  28. kevin 于 2011-03-09 1:54 下午

    还是模型不一样。

    一种模型是厕所没有性别。类似银行的柜台
    一种模型是现在大多数的厕所,厕所有性别。比如男厕有尿池。

    似乎需要在一种模型上讨论。

  29. 知迷不悟 于 2011-03-09 5:38 下午

    还是Kevin看得仔细,公厕之喻的妙处。
    既是公厕,不象银行排队,公厕队明显地考虑了有排队者显著差异存在,即公厕本身有差异,类似于多核分大小核(特殊功能核);与此同时,排队者有差异,类似于在核上执行的任务/程序有显著差异。哈哈哈…,公厕者,妙喻啊。

    不知首席对于公厕排队出现如下情况时如何改进:
    1、拉肚子或内急者;(time critical task/rt-task)
    2、等公厕看到队伍过长,中途放弃不排了,或转战其他Park了,甚至于不顾公德路边解决了;
    即有损失制排队

    首席的公厕排除论,高,实在是高!

  30. Will Chie 于 2011-03-09 6:53 下午

    胡人非常有意思,现在的胡人其实都不知道自己祖上是谁,因为当初他们看到繁荣的中原后,都开始改姓,改名,恬不知耻的到处认祖宗,给人装孙子,没准今天装个“房地产商”的孙子,明天就是无名氏了。

  31. 理客 于 2011-03-09 10:49 下午

    历史上统治中原最强的是满人,结果现在连会满语的都成稀有动物了;再看另外一个四大文明古国印度,官方语言却是英语,现在说印度语,都不知道啥是印度语。整个古代文明到现在的历史,是很有意思的一个大历史,有时间会攒一片业余的关于这方面的札记

  32. Tech 于 2011-03-09 11:06 下午

    何不改造一下女厕,做出一排蹲下的小便池,占地和男的一样,容量却大了很多哦,当然需要改变一下习惯咯。

  33. 不分男女 于 2011-03-10 12:53 上午

    饮食男女, 吃喝拉撒, 越是基本的需求, 越是难改变。

  34. boblee2000 于 2011-03-10 1:04 上午

    有多个坑位,如何来按照需要排队比较总要,如何能够在保证正常的处理流程,又可能把每个公厕用到最佳,这一点C公司的tag机制做的比较好

  35. 知迷不悟 于 2011-03-11 2:19 上午

    To 34楼:
    C公司的tag机制可以理解为预先对上厕所的人做个排队整形而不需要占用厕所资源。这个听上去不错,但不好的地方是出厕所时也必须通过这个机制,IPD/PKO在passthrough情况下问题还不大,但在pipeline情况下时,这个机制就好象是有个厕所管理员(不称职的那种),打TAG后排队的唯一好处是可以比较方便地评估出较好服务能力,但对于厕所能提供的个人差异化要求处理并不见得是有利的。嘻嘻。

  36. 卖龙 于 2011-03-21 12:36 上午

    如果厕所不分男女,大家站一个队,效率倒是高了。但是……但是……男人的优越性就没有了,有点挑战公众伦理的观念了。

  37. 卖龙 于 2011-03-21 12:39 上午

    对于多核系统,如果只有一个管道来排队,没有特权,那也是行不通的。最好NXM排队,N个队列排在M个核外面。

  38. 一点 于 2011-03-21 3:37 上午

    最好还是弄成银行那种排队系统吧,那个柜台弄完了叫号就行了,貌似效率最好。所以咱们最好把厕所围起来,或者做个门或者浪费一个厕所做取号机,人在外面排一个队,有人完事,像停车场一样电子屏显示有个空坑,进一个。所有人都从后门出去。

  39. zeroflag 于 2011-03-21 6:49 下午

    @38楼 一点:

    你说的这个其实就是不分男女在一个队列里面排队,其问题是如果是连续若干个女士,那么后面一系列本可以快速处理的男士就等候时间太长,整体的效率很低。

  40. 浅谈高端CPU Cache Page-Coloring(1) : 弯曲评论 于 2011-04-12 8:28 上午

    [...] 最好的学术一定是来源于生活。例如,陈首席的多核与公厕的悖论原理。 [...]

  41. RINEHART 于 2011-04-16 2:27 上午

    -.- 弯曲上的人说话都爱蹦单词

  42. Puppy 于 2011-04-24 11:00 下午

    感觉陈首席没看过QOS

  43. chinomango 于 2011-04-28 2:47 下午

    不知说啥好,首席要注意形象吧?
    在总资源一定的情况下分类可以视资源使用和处理时间长短分3-4个类。首席看到的问题是资源分配不当,没有考虑处理时间长短。
    目前的问题是,为了减轻速度需求用并行,但数据交换就多了数据带宽要求高,整体效率低。好像一个人开发项目要4年,要求是一年就得找25个人,但办公室只有7张桌子。

  44. banboo 于 2011-06-01 10:27 下午

    我这么聪明的人都看不懂,不知道陈首席是否是外星人?

  45. Stduolc 于 2014-05-26 8:33 下午

    问题是,男女构造的不同导致男女厕所的构造不同。结果就是,厕所没法通用。

  46. xian_wang 于 2014-05-26 11:39 下午

    没这么复杂,厕所是为了解决人的内急,修建人需要考虑成本、场地等因素,所以需要花最少的钱,固定的场地大小,容纳的人最多。所以,修一个站着的小便池,密度大点。修一个需要蹲下的大便池,这个就不分男女。与现在的不同就是,将男厕的蹲便拿出来共享给女性了,提高了利用率。

  47. 冬瓜头 于 2014-05-27 7:37 下午

    系统架构是一个工程和研究相结合的领域,既注重实践又依赖理论指导,入门容易但精通很难,有时候还要讲点悟性,很具有“伪科学”的特征。要在此领域进阶,除了要不断设计并搭建实际系统,也要注意方法论和设计理念的学习和提炼。

  48. 迎风向前 于 2014-05-30 8:14 下午

    陈首席这篇有点扯, 建议多发酵一段时间, 效果更好. data也有男女之别.