四年前的我怎么也不会想到,2023 年我还会来到丹佛熟悉的会场参与一次 SC(和 SCC)。回国已经一周有余,我在回想这一周的异国生活时,还是偶尔会混入四年前的记忆片段。从各种意义来上来说,这四年过得就像做梦一般,世界经历了巨大的停止和割裂。但当地球再次恢复转动,跨过大洋的我发现,很多东西又都没有变,比如 Colorado Convention Center 门口的那只大蓝熊。
缘由
在经历了 SC’20、SC’21 的两年线上比赛,和 SC’22 在 proposal 阶段的铩羽而归后,清华大学超算队重又回到了 SC’23 SCC 的十一支现场参赛队之一。兜兜转转,今年的比赛和 SC‘19 一样还是在丹佛举办。具体日程安排是 11/10 抵达,11/11-11/12 装机,11/13 benchmark,然后是持续到 11/15 晚上的连续比赛,11/16 下午颁奖,11/17 离开。四年过去,超算队也换届了若干次,取得了还不错的成绩,但也有不可忽略的问题——所有的队员都完全没有出国线下比赛的经验,因此必然需要有经验的人带队。我们的两位指导老师虽然经验丰富,但由于种种原因无法或不愿前往美国。于是,本次比赛最终由我和上上任超算队队长翟明书带队(他本身也是我们组的一篇论文作者之一,由于一作无法前往,承担了给 talk 的任务)。我作为现场的正式 team advisor,而明书是正常注册的学生参会者。
前期准备
在确定最终的日程和人员安排后,其实离出发已经不足一个月了。好在所有人都已经拥有,或者提前办好了十年 B1/2 的签证,因此旅行方面并没有遇到太大的障碍。明书找到了 ANA 的北京首都-东京成田-丹佛的联程方案,往返的时间都很合适,恰好和组委会提供的酒店预定完全一致,起飞落地时间也都比较自然。于是大家很快就搞定了机票、EVUS 这些手续,队长还和组委会沟通了现场更换 advisor 的事宜(原本当然是翟老师)。
按照惯例,SC 需要队伍自行寻找赞助商。但考虑到现有的贸易限制,我们选择不在国内采购硬件(尤其是计算卡),而是在美国找到了当地的赞助商(sponsor)和供应商(vendor),直接在美国订购货物送到会场,使用完毕后也在当地归还。这样的方案纵然消除了潜在的合规性风险,但也带来了一些新的问题。最关键的是,队员在国内训练时使用的不是赛场上的真实硬件,到时候可能会面临意外问题(事实上真的遇到了很多)。虽然如此,总比没有要好太多了。赛前一个月左右,我们和北京大学带队的付老师(也是多年的老朋友了)共同和供应商确定了硬件方案。我们的所有硬件都来自供应商,选择了 Intel 方案的双路三卡机;而北大只从赞助商处借用 H100,与我们的机器合并下单。考虑到本次 SCC 的功耗限制增加到了 4000W,我们选择了传统的四机八卡方案。原本想买的 400G IB 卡和交换机货期都太长了,于是被迫降级成 200G。此外由于供应商比较难获得比较高端的 CPU,我们还从 Intel 借用了一些 8490H。虽然中间也经历了一些在具体型号和配置上的拉扯,但还是在预计的时间内确认了具体的配置单,也签订了在装机日当天送货的合同。我本以为硬件部分应该会比较顺利。
再说回赛题,我原本并没有在具体题目上跟进太多的打算,甚至连队员都没有认全。但正式比赛前一两周参与超算组会的见闻,让我产生了担忧。虽然同学们在非常努力地重写 3DMHD 这一赛题的代码,但在其他题目上的进展似乎并不如我预期的充分。比如说到某个应用的扩展性不佳,但也没有探究原因,一会说是 memory bound 一会说是负载不均衡导致 MPI 空等,有些不求甚解的味道。不过明书毕竟还是很靠谱的 SCC 专家,我决定把这方面的技术细节都交给他来负责,否则要操心的事情就太多了。
Day -2:去程当日
时间一晃就来到了十一月,很快就要出发了。出发两天,我们把队员召集起来,反复对着(我两年前写的)checklist 一条一条确认,让我似乎也找回了一些我们当年出发前夜的感觉。
这次出发的航班是中午,所以不用起太早(而值得一提的是,选择了北京/上海-慕尼黑-丹佛的北大和上科前一天晚上十点多就坐上了飞机,而到达时间甚至比我们还晚两个小时)。到了出发当天,打车、抵达 T3、值机、坐小火车、过边检、过海关,一切都很通畅和快速,但总让我有一些不真实的感觉。直到来到 T3E 的廊桥前坐下,再次能近距离看到 01 跑道上起降的,由各种飞机执飞的航班,我才真的确认自己真的是又要出国了。第一次坐全日空,也是第一次坐 767,感觉腿部空间比我坐过的其他航班都宽敞一些(查阅具体宽度之后证实了这不是心理作用),机上的餐食也还不错。在西风的助力下,航班花了两个多小时就穿越韩国、日本的国土抵达了东京,落地成田机场。
我们有三个多小时的转机时间,但所有人一起下机、经过安检进入国际中转区就花掉了快一个小时。成田机场的中转区面积并不小,我和明书推着小车在里面逛了一大圈,当了一回 tokyo banana 的冤大头(似乎有很多人喜欢,但我们都觉得实在是不好吃),最终去吃了几乎是中转区唯一排队的餐饮店铺——一风堂。我是凭着对上海一风堂的良好印象拉着他去吃的,我点了一碗经典的白汤,他要了一份辣的,我们还一起分享了一小瓶啤酒。但最终口味并没有达到我们的预期(在我看来甚至还不如上海),面是像方便面的细面,汤也比较一般,而明书要的辣汤版让他这个成都人都难以下咽。
逛完吃完也就快要登机了。第二程跨洋段是由美联航执飞的 UA142,飞机是一架还算新的 787,航程也不算长,大概在九个小时左右。这也是我第一次坐美联航,此前对 UA 的一些精彩事迹(诸如砸坏吉他、拖人下飞机)早有耳闻,因此也没有报很大的希望。不过进入机舱感觉还行,座椅比较柔软,座位空间也没有很狭窄,甚至每个座位上都送了一次性的 U 形枕。想到我第一次坐长途航班去法兰克福的时候,并不知道 U 形枕这样的神器,硬是靠脖子撑了七八个小时,要是当时汉莎也配上就好了。
按丹佛时间算,起飞时间是凌晨三点,落地时间是中午十二点多。我本打算在飞机上就按照美国时间生活,尽量减少时差影响。我也和队员约好了,在接近落地的时间一起熟悉和讨论一下 poster 的内容,刚好也是早上九十点钟。但因为客舱服务等原因,真正关灯的时候已经快早上五点了。虽然在最里面靠窗不会被打扰,也有降噪耳机,但在经济舱想要高质量的睡眠当然还是很困难。睡睡醒醒,吃了发的冰凉小三明治,还看了几部电影(终于看了《小丑》),终于是熬到了窗外有一丝光明——787 的窗户是著名的电致变色玻璃,乘务员可以统一控制,旅客也可以手动用按钮调节不透明度;但我旁边的玻璃不知道为什么总是不听话,甚至会突然亮起来把周围的一圈人都晒醒。
飞机从西北侧穿越加拿大,进入美国领空。此时天色已经大亮,大家基本都醒了,窗外的景色也丰富了起来。我趁这个机会起来活动了一会,和同学们讨论了几分钟 poster,又被乘务员赶回座位——又要发餐了。顺便再提一下 UA 的餐食吧,两顿正餐都只能说是能吃,饮料还是一如既往的美国风格:一罐果汁里面 70g 糖,看完之后喝也不是不喝也不是。因为睡眠不好,从吃完我就几乎是坐在座位上神情恍惚。飞机前落地前,以相当低的高度向东飞跃落基山脉,从北往南穿越丹佛城区、转一个大弯进入第五边对准跑道。这样的景色是我从未曾见到过的:西侧是白雪皑皑的绵延群山,东侧是一望无垠的开阔平原,而我们恰好在这两种景象的交界处,这就是丹佛。
Day -1:赛前旅游
落地后,大家都顺利地通过了 CBP,官员听说是来开会的就没有再问其他问题了(但换在四年前,我根本不会担心这方面的事情)。取行李,打 UBER、入住,安顿下来已经下午两点左右。虽然大家都挺困,为了防止生物钟紊乱,我们干脆把所有人叫到了我房间继续熟悉 poster、写 interview 的讲稿。也是在这时,我和 zms 发现了越来越多的问题,英语表达不自然自然是一方面,但更严重的是逻辑上的不自洽和一些无法解释的内容。我们几乎是逐句逐句地在尝试理解、询问、求证,很快就到了晚饭时间。虽然此时复现题还有这样那样的问题留待解决,但所有人此时真的已经很累了。我和明书找了一家 16th st 上正宗的美式 grill 餐馆,拉着大家去吃了一顿(在出门时遇到了北大的队伍入住),毕竟此后空闲的时间不会很多。毕竟是在美国的第一顿,大家对牛排、汉堡之类的东西还算感兴趣,但也有同学已经在餐桌上顶不住睡着了。吃完我们又去熟悉的 Target(甚至连物品布局还和我印象中完全一致)买了一些水和食物,硬撑着走回了酒店,就各自休息了。明书形容这一晚是“被动关机”,因为实在是太困了,回去躺下就睡着了,甚至没有关灯。
然而生物钟的威力还是强大的,我在第二天(11/11)凌晨三点半就醒来了,并且无法继续入睡。熬到酒店的早餐开餐时间六点半下楼,发现明书、付老师、北大的几个队员都已经在吃早饭了,颇有同病相怜之感。酒店的早餐也是典型美式早餐,好在有新鲜水果补充。我和明书其实(很久前就规划好)租车了出门玩,但约定的取车时间是早上八点半,吃完早餐才七点过。为了消磨时间,我们决定出门随机游走,我带他在酒店附近 city walk。丹佛市中心比较著名的应该就是 16th st mall 的步行街和免费公交,但这次来发现路被大幅封闭,中间全部挖开,一副大兴土木的样子,公交车也改道了。一查才知道科罗拉多批了几千万美元的预算,要用三年时间翻新这条地标道路,目前还在紧张的施工阶段,一直要到 2025 年才能修好。
当天其实是美国的全国假日老兵节(Veterans Day),所以出门玩的人不少。走到 Hertz 的门店,发现取车的人已经在排队了。不像国内的公司普遍实现了智能化,这里还是有一堆的 paperwork 要做。排了大概十五分钟轮到我,店员看了一眼我的驾照翻译件(中国驾照在科罗拉多是可以临时使用的,翻译件主要起一个核对名字的作用),办完手续就把我们带到了停车场。我们的车是一辆丰田的 C-HR,挂佛罗里达牌照,半满油,但和国内的版本看着总有点不太一样。坐上车之后最大的差异可能就是以 MPH 为单位的车速表,事实上我确实一整天都在心里默默地做 * 1.6 的口算。
我们第一站是位于北边 Fort Collins 的科罗拉多州立大学(Colorado State University),除了参观之外,明书还有自己的目的——他的家人多年前在学校的化学系访问,他想根据老照片寻找一下对应的场景。从租车点出来,立刻就能转上 25 号高速公路向北。作为平时开车比较守规矩的人,在美国的初次驾驶体验还是挺好的。大家的路权意识明确,很少(印象里一整天只有一次)有人随意变道,主路的车流速度甚至高于限速 10 MPH。
很快到了学校,其实就是开放的几个街区。因为是周六,学校里非常空,我找了个运动场周围的路边车位停了车,打算在学校里走走。尽管有 Google 地图的指引,我们还是绕了挺大的一个圈子。化学系有防护等级比较高的实验室,周围的地都被围起来了,并不能直接从小路走。途中还试图通过照片询问学生状的路人,没想到他们说自己是新生,还对校园不熟悉。不过最终还是找到了化学系的大门,和老照片的场景几乎没有变化,我们也进行了一些复刻。后面就是在学校随机游走,看到了学校周边的铁路上的货运火车,甚至还有头顶飞过的两架 F-35。逛完一圈已经饥肠辘辘了,好在学校里还有一个开着的 subway 解决了我们的午餐。
CSU 有著名的 RAM 美式足球队(一集篮球队),logo 就是绿色的公羊,也成了学校的文化标志。学校的纪念品商店里到处都是带着 RAM logo 的文创产品,还有很多大牌的联名款式(比如耐克、Lululemon)。不过我们还是只买了一些明信片、冰箱贴之类的,毕竟其他的东西确实有点贵。取车的路上,我们停车点旁边的体育场里开始变得热闹了起来,有啦啦队在排练,还有一些军人在走动,大概是在准备晚上老兵节的活动吧。
离开 CSU 已经是中午了,由明书开车带我奔赴下一个目的地:落基山脉国家公园(Rocky Mountain National Park)。他为了准备在美国开车,此前特地在北京租车练了几次。正如上面所说,落基山脉是美国的重要地理分界线,自然也有壮丽的景观。从 Fort Collins 出发,沿着 34 号公路向西穿越(没有手机信号的)山谷到达 Estes Park 小镇,短暂停靠休息、后继续驶向公园。我们在公园门口的加油站补充了一些(~$20)汽油,这是我第一次用自助加油机,不知道为什额信用卡被拒绝了好几次。加油过程中大风顺着山谷袭来,我在个位数温度中瑟瑟发抖,好不容易才把沉重的油枪插回机器。
由于老兵节的缘故,当天国家公园全部免费,两个人省下了 $70 的门票钱,门口的工作人员还递给我们两本厚厚的地图和手册。此前我也在官网和小红书(不愧是全世界的生活指南)上找了一些攻略,公园标志性的横贯东西的 Trail Ridge Rd 由于下雪关闭了中间的一长段,我们就把车开到了能行驶的最高点,Many Parks Curve Outlook 观景台的上方(美国人起名真是太随意了)。走到观景台,爬上石堆,可以直接面对下方的广阔山谷、零星分布的湖泊、草原和茂密的多种树林,还有远方的巍峨群山和白雪覆盖的山峰,镶嵌着澄澈的天空,这样的视觉体验与飞机上的俯瞰完全不同,也令我的语言逊色。公园里还有一条 Old Fall River Rd,是最早开凿的道路,在 Fall River 的河谷旁环山而上,狭窄险峻,但也有更独特的风光。遗憾的是,它当然也因为积雪而关闭了,因此我们能参观到地方只有公园东侧靠近 Estes Park 的一块,西侧的 Grand Lake 就太远了。尽管如此,也远远超过了一个下午能容纳的行程。我们顺着手册上的指示在遍历了公园的主要道路,去了许多地标景点。让我印象最深刻的是绕着 Sprague Lake 散步时,遇到了两对拍婚纱照的新人,新娘们在个位数的温度中穿着薄纱拍照,真是全世界的新娘都不怕冷。还有位于半山腰的 Bear Lake,盘山路也很长,湖边积满了雪,深一脚浅一脚,完全让人忘记了这个世界正处于有史以来最热的一个秋天。
从公园出来,我们照例在门口的 Vistor Center 停下购买了一些纪念品,然后在夕阳的余晖中直奔 Boulder,一个位于丹佛西北方向的小城,有著名的 CU Boulder 校区。到学校时天完全黑了,我们草草在学校里逛了逛,在旁边吃了一顿(口味熟悉的)麦当劳,就回丹佛还车了。事实证明早点回的决定是非常明智的,因为我们到达还车点时发现停车场完全满了,网点员工早已下班,而还车和取车一样不是自助的——这可怎么办,我只租了一天,如果周一再还岂不是会被多扣钱?这一次小红书也没能给我有效的回答。在我迷茫时,又来了两辆要还的车,拥塞的问题变得更严重了。我们商量了一下,决定共同努力把三辆车挤着停在 Hertz 的店门口。保险起见,我在纸上写下了一些基本情况,和钥匙一起扔进了店门口的还车箱里。好在第二天早上我就收到 Hertz 的邮件说订单完成,也没有多扣钱,说明还是有人负责还车的事的。另一个细节是我的还车油量比取车油量还多不少,看起来 20$ 都加多了。但 Hertz 也没有神州一样的多退策略——算了,还能怎么办呢?
在我处理还车事宜的时候,还发生了一件让我后背冒冷汗的乌龙——明书接到一个队员的电话,说他在参与 student orientation 活动的时候(还是在四年前我们参加的同一个酒吧),挂在椅子上的衣服丢了,里面还有他所有的旅行证件、银行卡、现金。这可不是小事!我们立刻从 Hertz 往会场赶,大概走了两分钟,在我已经规划好后续处理(e.g. 报警、补办证件、延长行程等)时,队员又打电话来说找老板监控找到了,原来只是衣服从椅子上掉了下去,滑倒了桌子底下没有人注意,是虚惊一场。而我和明书完全没有意识到,从这一刻起,我们会维持这样紧张的状态,几乎一直到比赛结束。
接下篇。