回顾与感受 ——记——记一篇论文的创作点滴

  • 鄢贵海 (2014年以后的旧数据)
  • 2380
“投稿完成,已经是下午两点,外面并不阳光明媚。本以为经过一个通宵奋战到此刻应该精疲力竭了。没想到,此刻突然又来了精神。逛逛bbs、看看新闻……,算是对紧张的情绪缓冲。”
“转眼间已经到了rebuttal的时间,终于看到别人对我们工作的评价。总共五个评委,两个比较正面,两个正面负面均有,一个比较负面。总体的评价还不算差,应该有希望。于是我们针对每个评委的负面意见逐条给予‘回击’。最后避轻就重,把最重要的内容塞进严格限制800字的回复意见中。最后wish us good luck。”
“晚饭过后收到邮件,通知我们ISCA论文被录用了,很高兴……”
如果我有写日记的习惯的话,上面的文字大概会出现在我的日记本中——其实很平淡,和其他论文的发表过程大同小异。然而这一过程带给我的东西要远比一篇论文多得多。下面谈一些个人感受。
关于心态
好心态就是不急不燥,乐于尝试。记得我大学时教高等数学的老师经常用一些话来鼓励我们用新方法来解问题:“这个积分可以试试那么做……不成功便成仁嘛。”“重积分,顾名思义,就是错了就重新积分嘛。”当时那些调侃让我们在哈哈声中忘记了解题受阻后的郁闷。这就是我所理解的好心态:遇到问题不急不燥,并乐于不断尝试。毛主席那句名言“前途是光明的,道路是曲折的”其实可以有很多变体,例如“论文是可以发表的,修改是必须的”;“实验是可以跑通的,调试代码是难以避免的”;“想法是可以work的,验证的过程是需要反复推敲的”等等。想要一开始就从原理到实现都规划得清清楚楚是不太现实的,所以一开始就坚信“一切都没问题才是问题”反而有助于保持整个过程都具备足够的战斗力。
棘手的问题总是存在的,但相信克服以后极有可能就成为一个闪光点。我们在准备这篇论文的过程中,也遇到不少障碍,既有技术方面的,也有实验方面的。例如,在我们论文中有三个相关参量,我原本以为就是A = B + C 那个简单的关系,知道A 和B,自然可以导出C。没想到,根据这个关系得出的结论却怎么都和实验的数据不符。后来才发现原来这几个参数间的关系要复杂的多,只好想其它的办法来重新对这个问题建模。没想到克服这个问题后,反而使我们的论文内容深刻了不少。
最后,应该对自己做的东西有信心,否则也很容易丧失动力。做研究,尤其是偏基础类研究课题,也许暂时不能直接和某些应用结合起来,于是很容易被别人归为“纸上谈兵”。如果自己认为不是在“灌水”,那就坚信自己提出的方案总有一天会变成现实的技术。例如,在2003的ISCA(国际计算机体系结构会议的缩写)上,Powell,当时还是普度大学的一名博士研究生,提出了Pipeline Damping技术来限制处理器电源网络的噪声,其原理非常简单,但五年后用在了四核安腾(Itanium)处理器上。可能他自己都不敢相信一个迫于毕业压力做出来的东西有一天会有用武之地。
同年,在Micro会议上,密西根大学的博士生Ernst,提出了一个用于低功耗的技术Razor,有很多业界的言论表示这一技术也很有可能在不远的将来被工业界采用。所以今天的“纸上谈兵”很有可能在不远的将来为技术的进步添砖加瓦。我们之所以今天没法演示,是因为我们个人的力量有限,资源有限,不能在短期内搭建起一个全系统的真实的验证环境来证明我们的方案不是“纸上谈兵”。
关于想法构思
有人问我是什么时候有这个想法的,其实我自己也答不上来。因为这其实是一个过程。我认为并不是什么好想法都只是被一层薄薄的砂纸所包裹的,类似牛顿被苹果砸到头突然就迸发出万有引力定律(当然这个比喻可能不够恰当),一捅破就一目了然。有些想法是被埋在土里,仅露出一个若隐若现的角来引诱你去发掘,在你把它完全挖出来之前不知全貌。我把发现这个角看成是一个突破但不是想法,而这个发掘的过程完全结束时才有了一个完整的想法。我们的论文并不是顺着一条线构思出来的,而是三条线,最后汇集到了一点。这个发掘的过程大概花了我一两个月的时间。所以,如果你已经发现了一个诱人的角,但还不知道全貌的话,不妨继续发掘一段时间。不过俗话说得好:“趁热打铁。”所以最好集中一段时间攻坚,尽快判断是“鸡肋”还是“鸡腿”,以便把鸡肋情况造成的时间损失降到最小。
关于交流
交流的重要性不言而喻。和同行交流可以帮助自己找漏洞,即便和非同行交流也可以帮助你理清思路。但是现在很多研究主题变得越来越专,在一个课题组里面,可能都没有两个人做同一个小方向。所以很多情况下,想要找到几个内行交流还真不是件容易的事。但充分利用同课题组员的主观能动性,对提高论文的质量还是很有裨益的。例如,珍惜每一次讨论班的时间,“逼”同课题组里的老师同学给你反馈。要知道你的审稿人可不见得都是内行,而是大同行,就如你的同学。要想达到这一目的,首先要把自己的问题和背景表述得到位而且有趣。如果只是应付老师做个例行报告,不仅自己得不到任何反馈,对其他参加讨论班的同学也不够尊重。
关于时间安排
写论文不是百米冲刺,而是马拉松,要保持整个过程都持续不断地有精力投入。在准备投ISCA论文的整个过程中,除了最后一天工作了通宵之外,从来没有熬过夜。(其实最后一天也不是故意想熬夜的,本来投稿的截止日期是当天晚上12点,结果在11点半时突然收到延长12个小时的通知,“死到临头”索性“被熬夜”了。)这点我认识得很清楚,如果前天熬夜的话,第二天肯定要睡一天,第三天还不一定能恢复到最佳的工作状态。这种“竭泽而渔”的做法对整体效率不但没有什么帮助,反而透支身体。但最后两个月几乎每天都加班。
那段时间主要被分配做两件事:写初稿和做实验,而且初稿在实验之前。我发现这样能提高做实验的效率。心里清楚需要哪些图表,然后有针对性地开展实验。得到阶段性数据后立刻回去完善草稿。在这样的循环中逐步完成初稿。虽然这样,有些数据随着论文的不断修改和调整还是没用上,但我想,这样还是应该比事先囫囵收集一堆数据、最后再挑选的效率要高。
关于积累
积累包括两方面:团队的积累和个人积累。团队积累是个人发展的基础。就好比篮球队里很难培养出顶尖的田径运动员,其根本原因就在于篮球队的积累不在于田径。我们课题组通过多年的努力,在可靠性、容错计算方面已经有了较多的积累,作为其中的一员才有机会站得更高,看得更远。
就个人积累而言,最主要的途径其实就是读文献。多读文献,无论好坏,其实都有帮助。好的文章可以开拓视野,增加你的知识储备。而不好的文章正好可以成为你今后的靶子,从侧面衬托自己研究的意义和工作的优势。虽然每篇文章最后的参考文献通常只有三、四十篇,但其实写过文章的人都清楚,看过的文章数目绝对远远大于这个数。累积的作用就是让你在需要的时候可以把这三、四十篇文献信手拈来。记得还在第二学年时,韩银和老师就跟我说:“不要着急发文章,要厚积薄发,否则就很可能在低水平重复。”今天看来,至少对我个人来说,这是个正确的策略。
关于团队
种子需要合适的土壤才能发芽,我们学生发表论文也是一样。很幸运,我这颗种子落在了一个氛围不错的环境里:老师给予充分的信任和足够的引导,团队基础研究成果积累深厚,研究氛围浓厚,同学间相处融洽,硬件设施完备,等等。这些都给予我莫大的帮助。当我再次回忆过去准备论文的这段时间,脑子里首先浮现的不是这篇ISCA论文,而是通宵后巴印达拉(我的师弟)送来的一个煎饼时的温暖,是投稿当夜韩老师陪我到凌晨一点的坚持,是李(晓维)老师一如既往的支持和信任,是论文被接收后收到李所长发来的贺信时的激动……
借此机会,我也向我们课题组里所有的老师和同学们表示衷心地感谢!
(鄢贵海,中科院计算所)