第四章:超算中心#
当晚回去,祁旻就把她写来用于申请经费的项目计划书发到了郑文钰先生的邮箱里。
第二天当祁旻正在用现在她学校计算中心的超算继续用她现有的微缩版“类脑体”跑更大的测试集时,突然收到了中科院“雨云”超级计算机项目周晓姗研究员的邮件。
邮件上告诉祁旻,她明天就能到房山区“雨云”计算中心去商量使用事宜了。
此时祁旻真想狠狠地亲严兆兰一口——果然还是老朋友比较靠谱!
现在这个测试集也不用跑了。祁旻停止了Jupyter上测试类脑体学习能力的代码,又连忙开始把生成类脑体的代码再捋了一遍。她把那些在匆忙之中命名得乱七八糟的变量都重新按照用途的简写命名了,而后给每一块儿代码写上了注释。
祁旻用她“美化”过的代码重新跑了一个只有16×16×16个虚拟神经元的超微缩版类脑体,检查确认无误之后才保存了代码。
倘若周晓姗研究员同意她使用“雨云”的计算资源,那么她就能尝试生成全尺寸1:512、1:64甚至是1:8、1:1的类脑体。一旦她拿到了1:1的类脑体,那随便凑凑实验数据就能把她的文章写完了。
——
第二天祁旻起了个大早,都没去学校就直接坐地铁去了“雨云”计算中心。
“雨云”是由一大片计算核心群组成,出于散热考虑是占用单独的一座机房,上层配有复杂交错的液冷管道系统。计算中心的工作人员显然不可能让祁旻这个外来者进入机房,甚至在计算中心工作的研究者们都很少会与真实的“雨云”亲密接触。
祁旻要去的地方是周晓姗研究员的实验室,她们约好了在那里见面。
然而当祁旻到了周晓姗实验室,询问里面正在工作的研究生时,却被告知他们老师正在开会。实验室的研究生也没问祁旻是来干什么的,只是祁旻进去先等一会儿。
祁旻进到他们的实验室里,发现这儿虽然也是生物信息学实验室,但和她想象中的实在非常不同。
最大的区别就是实验室里没有实验区和生活区的划分。因为生物信息学研究需要在生物体或者生化体系上进行操作的“湿实验”很少,没有什么有害试剂和微生物的污染,因此用不着把实验台跟办公桌分离开。而同样与生物信息学特征相对应的是,实验室里每个人的办公桌上都立着至少两台屏幕和大得异常的主机,房间里空调开得很大,祁旻从其中一台没有人但仍然常亮的屏幕上看到他们正在做大量电镜照片的二维傅立叶运算处理。
祁旻找了个没人的位置坐下,看到旁边一个戴着森海塞尔耳机的小伙子正在调试代码。
她不禁好奇地瞥了一眼,发现他正在写的是一个RNA结构预测工具。其实RNA结构预测已经是研究比较充分的领域了,现有的算法各有千秋,然而对于某类特定的RNA,或许需要根据其已知的信息而设计合适的特殊算法。
而这段代码看起来就像是这个小伙子自己写的,因为祁旻已经看他修修改改快十分钟了,输出的预测数组仍然是一堆负数。
碰巧祁旻原先写过RNA结构预测的代码,此时顺着他修改看了一遍,很快就找到了问题。
“嗯……这个遍历方式好像不太对吧。”祁旻不好意思直接对他说,只是坐在旁边嘀咕道。
一开始这小伙子戴着耳机装没听见,压根儿没搭理她。
祁旻看他这么调真是费劲,于是忍不住说道:“对于最近邻居算法(i,n-i)应该从i大于等于2开始,i是0和1的情况要用氢键最多原理……”
“是‘能量最低’原理。”调代码的小伙子摘下耳机,转身对她说道,“但是初测值的实验方式不同,这两种算法压根儿不能通用。”
“谁说的?第一对氢键赋值根本不影响。你先试试吧。”祁旻对他说道。
小伙子将信将疑地加上了一段儿IF,从另外一个单纯使用能量最低原理的算法里复制出了相关代码。
他再运行之后,输出的矩阵里果然不全是负数了。
但很明显结果也不对。
负数还是太多了,导致最大值才只有不到4,而很明显用于测试的那段30个碱基的线性RNA不可能只形成一个碱基配对。
“这又是怎么回事儿?”小伙子这回直接对她问道。
祁旻凑到屏幕前仔细看了看,而后一边敲着键盘一边说道:“你这个对比最大值的嵌套FOR语句里没有加FLAG,只要加上就好了……”
代码再运行了一遍,这回输出的矩阵终于看起来正常了。
小伙子松了口气儿,刚要从椅子上站起来,祁旻却说道:“哎,这还是不对。你看这段RNA的已知结构,这里面有三个LOOP,但你的算法算出来有四个……哦,我知道了,还得加一个防止无效配对的IF,连续两个碱基以下的配对不应该存在。”
她把这个IF语句加进去之后,最终画出的RNA二级结构终于和已知结构一样了。
“呃……你还真……”小伙子看着屏幕上的图像,不自觉地露出了一丝傻笑。
而后他看了一眼祁旻,有些奇怪地问道:“你是新来的?我记得今年我们这儿不招博士生了——你是技术员?”
“没,我就是来找周晓姗老师有点儿事儿。”祁旻笑着说道。
“什么事儿?”小伙子问道,而后像是意识到这个问题有点儿侵犯别人隐私,于是补充道,“或许我也能帮你一下儿。”
“还真没准儿。”祁旻从他的屏幕面前移开,“我来找周晓姗老师是为了能用一下儿‘雨云’。”
“哦,那好说啊。”小伙子立刻答应道,“如果我老板不同意,你还能用我的号。”
“这样还是不太好吧……”祁旻有些尴尬地笑了笑。跑类脑体占用的计算资源可是非常多的,如果是偷偷用某个博士生的号,肯定会引起管理员的怀疑。
“那有什么的?”小伙子无所谓地说,“‘雨云’的计算能力这么强,一般的项目根本不是事儿。老板就是想弄点儿大项目,测试一下儿它的实际计算能力,才召了我们这些个做生物的人来到处接活儿。说实话,我在来这儿之前都没怎么学过Python。”
看得出来。祁旻在心里默默地评价了一句,而后又开玩笑地问:“那要是周晓姗老师把我拒了,我可就真来借你的号了?”
“行,当然行。”小伙子立刻说道,“来加个微信,到时候这个RNA算法出BUG了,我还得再找你呢。”