在 slurm 任务完成时通过 IM 软件向自己发送通知

代码地址 这事情好像原理挺简单的. 让 srun 在完成的时候给自己发个邮件, 用个脚本一直 tail 邮件, 并喂到 tg 的 bot 里, 根据 chat id 来发消息.

April 3, 2023 · 1 min · laekov

2019-nCOV Infection Log at Dec 2022

2022.12, 中国人民防疫三年,最后每人发烧三天。 大防疫运动,其去势甚至猛于其来势。半月之内,北京一城,阴阳掺半矣。15日,我终于显著感到不适,预知自己将感染也。起意攒此文,以供未来之考。 Day0: 2022.12.15 昨夜跑了 F4 模拟赛车联赛,得第三,大喜,饮啤酒一罐,无不适。半夜,喉咙巨疼,疼醒,喝水后略有好转。早上起床之后喉咙继续疼,精神不振,收到消息称昨日白天同处一屋某君阳矣。 上午测了抗原,阴,工作于宿舍,午饭后前往实验室,继续工作,处理数据集一个。后开组会,开始上背部酸疼,嗓子疼加重,精神萎靡,遂大点外卖一顿,趁还有食欲饱餐以储能,然后收拾好工作所需之电器,回宿舍躺平,始作此文,静待下一步之变数。 拖延三年,余与新冠病毒终有一战。既阳之,则战之。古语有云,生死有命,富贵在天。炎黄子孙宁病夫乎? Day1: 2022.12.16 昨晚睡觉前做了一次抗原, 等了两分钟没阳, 直接睡了, 今早起床发现昨夜的抗原有弱弱的阳性线, 再测一次, 真阳了. 所以确实是 day1, 昨天的感觉完全没错. 睡得不太好, 翻来覆去, 持续在冷和热之间徘徊, 身上也比较酸痛, 嗓子也疼. 嗓子里有痰的感觉, 但是我知道那其实是我肿胀的扁桃, 试图咳痰只会让情况变得更糟, 于是忍着了. 早上起床之后喉咙疼痛感有所减弱, 但是略有发烧的畏寒和皮肤触痛. 感觉是在低烧, 但是因为没有体温计所以无法确认. 脊柱附近的肌肉比较酸疼, 坐在沙发上姿势并不太舒服. 早上开了一个线上会, 不太能集中注意力(倒是和平时差不多). 开完就继续躺了. 中午戴好口罩下楼买饭, 晒太阳和呼吸新鲜空气感觉有所好转, 遂决定在中厅晒会儿太阳. // 阳了其实是小小地逃避工作的好机会. 下午外卖买到了体温计, 起初体温比较正常, 太阳将近落山的时候开始发烧, 一度烧到 38 度. 练了会儿车, 练不动, 听说室友也阳了, 诚邀他回来和我一起开 covid party (躺平). 前半夜体温很高, 不太睡得着, 在被子里抱着热水袋捂汗. 鼻子里有不对的味道, 怀疑是过敏性鼻炎导致鼻窦炎了. 过了一会体温下降, 开始头疼, 很像是鼻窦肿大压迫神经. 但是也管不了那么多了, 先睡. 嗓子还是一如既往地疼. Day2: 2022.12.17 七点过胃疼疼醒, 吃了蛋糕, 抱着热水袋继续睡....

December 15, 2022 · 1 min · laekov

使用 gdb 调试多机程序的方法

最近写了一些 mpi 程序, 但是有 bug, 且只有在多机上能够复现. 然而因为工程太大, 编译一次需要时间比较长, 所以反复 print 也并不方便解决问题. 而且集群上也没有图形界面, ssh -X xterm 的方法不太好使. 所以需要一些新的解决思路. laekov 将目光瞄准了 tmux. 用 tmux new-session command 就可以在目标机器上新开一个进程, 跑 gdb. 然而 tmux 并不能继承环境, 所以需要再包一层脚本来重新加载环境 (这倒是和多机跑 mpi 程序差不多). 此外, 为了不需要手工一个一个进程地去 gdb 里开始, 可以用 gdb -ex 'r' --args command args 来让它自动开跑. ex 还可以用来批处理设断点之类的, 非常方便. 另一个问题是 laekov 用的集群配置了 slurm, 是用 srun 来启程序的. 但是 tmux 命令会立即退出, 进程是跑在该用户的另一个进程里的, 而且这俩还没有父子关系, 无法用 wait 来等. 但是 srun 的进程退出之后 slurm 就认为这个进程跑完了, 甚至会清理 worker 上该用户的所有进程....

September 22, 2022 · 1 min · laekov

如何使用 windows 笔记本的指纹解锁 linux

众所周知, laekov 在办公室有一台 nuc 装了 linux 主要用于工作, 另有一台笔记本用于其它工作. 作为一个锁屏强迫症, 每次 laekov 站起来去干啥的时候都会把两台电脑锁屏, 回来之后再分别解锁. 笔记本可以用指纹或者 iwndows hello, 而 nuc 就只能敲密码了. 不巧的是它还直接暴露在公网上, 于是密码设得比较长. 所以 laekov 希望用 windows 上的指纹来解 kde 的锁屏. 然后发现直接使用命令 loginctl (un)lock-session <id> 就可以实现(解)锁 kde. 配合 ssh 和 autohotkey 就可以实现一键开关锁. 但是这还是需要再额外按一次键. 然后发现 windows 有一个叫 task scheduler 的东西, 可以在锁屏和解锁的时候触发一些命令, 于是愉快地接入了 ssh 之后就可以方便地一次性解锁两台电脑辣!

July 18, 2022 · 1 min · laekov

W 楼宿舍优化手记

博士生涯在硕士宿舍住满两年后, 搬宿舍来到了 w 楼老破并不小的双人间. 该楼由于年久失修, 室内状况较差. 墙面, 门, 和卫生间都有一些十分恶心的情况. 本着既来之则安之的思路, 自强不息的精神, 进行一些尽力而为的改造和优化, 并记录在这里以供他人 (大概不会有了吧) 参考. 室内布局 下图是一个并不等比例的示意图. w 楼类似于本科生紫荆公寓的布局, 相邻两间宿舍共用一个中厅, 但每个宿舍有独卫. 卫生间有马桶, 水池和淋浴. 但是空间较小, 干湿并不分离. 家具方面, 相比本科和硕士宿舍, 床从上铺变成了地面上的床, 虽然宽度没有变化. 桌子也更宽一些. 中间是标准的键盘抽屉, 左右两边各有一个较窄的抽屉. 但是桌上层有两层置物架, 其中下层的高度较低, 导致比较大的显示器无法推到最前. 此外, 中厅也有一个比较大的公用桌子, 并另配了四把椅子. (故平均每人竟然拥有两把椅子) 绿色床位可以获得一个比较深的窗台. 窗台上可以置物或作他用. 中厅和窗台都有可以晾衣服的铁杆. 中厅的窗台也很深. 强弱电方面, 每个床位配有百兆有线网. 桌子附近有一个电线插头. 红字床头另有一个插头. Layout transformation for bike placement 红色桌子被旋转了 90 度, 然后在和中厅的窗户之间 (红桌的右手边是一个通向中厅的窗户) 空出了约 80 公分的间隙, 把大紫立在了间隙里, 正好可以卡在窗户边沿. 还可以另放下一个气筒和停车架. 大大紫则被插到了中厅窗台 v 字形的尖上, 前轮在窗台上, 而后轮在地上. 正好可以用脚踏抵住暖气片, 从而稳稳立住....

July 11, 2022 · 1 min · laekov

搞明白自行车五通中轴牙盘规格

自行车的五通中轴牙盘一部分零件规格比较复杂, 折腾起来比较费力. 简中互联网上鲜见把这个事情理明白了的文章. 所以 aoao 按照自己的理解把各部分分开说明一下, 试图理明白这个逻辑. 下面是一个示意图. 五通 五通是车架的一部分, 简而言之就是一个圆柱形的洞. 五通的重要参数是这个洞的直径和高度(宽度), 外加 是否有螺纹. 有螺纹的五通, 在公路车上只有两三类: 经典的有英规 (BSA) 和 意规 (ITA). 前者常见于低端车和闪电 SL7 及一些新车. 另外有 trek 新开始推的 T47. 这三种标准的宽度和直径都是确定的. 另外一种是压入五通, 即没有螺纹, 而是一个光滑的洞, 中轴直接被敲进去. 这种五通有 BB30, BB86, BBRight 等一系列规格, 对应了不同品牌不同时期的车架. 宽度和直径各有不同, 需要按照品牌或者标准名称购买相应零件. 中轴 中轴就是一个轴承. 它的外壳固定在五通处, 而内面与轴心 (即一根铁棒) 相连, 从而使轴心可以自由转动. 因此, 中轴的规格仅由五通规格和轴心规格两者决定. (材质和特殊的工艺等学问不在本文讨论范围) 轴心 轴心是一根铁棍 (碳棍? 铝棍?), 两边连着曲柄, 在高端零件中通常与其中一边的曲柄为一体. 与五通相同, 轴心的关键参数也是直径和长度. 轴心常见三种直径: 30, 24, GXP. 其中 GXP 是驱动侧 24, 非驱动侧 22, 通常可以直接使用一个塑料套子转换为 24 的轴心....

May 20, 2022 · 1 min · laekov

GTA Online 跑车圈速记录

一个没有什么意义的记录. youtube 上的视频同样车也就快了个几十秒吧. Lifeinvader 环道 桑托劳 2:39 义塔利GTB: 2:36 Cutting Corners GP Sports Sugoi 1:15.830 ZR350 1:15.910 (w\o turbo), 1:12.583 (w. turbo) Calico 1:11.107 Itali GTO 1:08.051 GB200 1:09.081 幽鬼本尼版 1:07.433 撞击 GT 1:11.239 (原厂素车)1:06.860 (满改) 718 (嚎叫者) 1:12.810 (原厂素车) 1:07.639 (fully upgraded) new supra (jester RR) 1:14.245 (unmodified) 1:07.344 (满改) RCA (Vectre) 1:12.706 (unmodified) 1:08.206 (fully upgraded) BMW M4 1:12.816 (原厂) 1:09.636 (fully upgraded) 思国一又推又甩, 加速就打滑非常 gg. 350 没加涡轮, 加速明显不如卡利科, 但是转向极限很高, 弯速可以再推快一些....

May 9, 2022 · 1 min · laekov

Project T: 清华园山地车技术点大全

封校无聊,何以解忧?开个新坑,骑骑山地。 这个网站将校园内的山地技术点总结在地图上,以便从入门到进阶的不同水平爱好者进行交流,各自找到好玩的地点。 在地图上单击鼠标右键即可记录一个你发现的地点。在管理员审核后,它将被分享给所有人。 本站还在建设中,如果你对本项目有兴趣,欢迎来 GitHub Repo 进行开发方面的交流与讨论。 目前计划中的功能还有:难度和描述的评论、添加图片、在线约骑、实时位置分享等等。 本站始建于 2022 年劳动节假期封校之时。未来也考虑拓展地图范围。 Go back to the map

May 1, 2022 · 1 min · laekov

Recent Papers of Recommendation Systems

2023 EVStore: Storage and Caching Capabilities for Scaling Embedding Tables in Deep Recommendation Systems ASPLOS'23 GRACE: A Scalable Graph-Based Approach To Accelerating Recommendation Model Inference ASPLOS'23 AdaEmbed: Adaptive Embedding for Large-Scale Recommendation Models OSDI'23 FlexShard: Flexible Sharding for Industry-Scale Sequence Recommendation Models arxiv 2022 RecD: Deduplication for End-to-End Deep Learning Recommendation Model Training Infrastructure arxiv Ekko: A Large-Scale Deep Learning Recommender System with Low-Latency Model Update OSDI'22 PICASSO: Unleashing the Potential of GPU-centric Training for Wide-and-deep Recommender Systems arxiv HET: Scaling out Huge Embedding Model Training via Cache-enabled Distributed Framework VLDB'22 HET-GMP: a graph-based system approach to scaling large embedding model training SIGMOD'22 Fleche: an efficient GPU embedding cache for personalized recommendations EuroSys'22 RecShard: statistical feature-based memory optimization for industry-scale neural recommendation ASPLOS'22 BagPipe: Accelerating Deep Recommendation Model Training arxiv 2021 Accelerating recommendation system training by leveraging popular choices VLDB'21 SPACE: Locality-Aware Processing in Heterogeneous Memory for Personalized Recommendations ISCA'21 Software-Hardware Co-design for Fast and Scalable Training of Deep Learning Recommendation Models arxiv ISCA'22 RecPipe: Co-designing Models and Hardware to Jointly Optimize Recommendation Quality and Performance MICRO'21 2020 Kraken: Memory-Efficient Continual Learning for Large-Scale Real-Time Recommendations SC'20 Distributed Hierarchical GPU Parameter Server for Massive Scale Deep Learning Ads Systems MLSys'20 DeepRecSys: A System for Optimizing End-To-End At-Scale Neural Recommendation Inference ISCA'20

April 8, 2022 · 1 min · laekov

Pandoc 的 short author 字段缺失 fix

laekov 搞了一个在 overleaf 里写 pandoc 的东西叫 panleaf, 并用它做一些愉快的 beamer slides. 但是 laekov 在做一个作者有七个人的 slides 的时候发现如果把七个人塞在正文的每页的底下, 就会巨长无比, overflow. latex 提供了 short author 功能, 在 beamer 里面正文的页脚只显示 short, 而 titlepage 显示全文. 但左右看了一圈发现 pandoc 的 author 字段并没有这样的支持. 而且即使不填 author 字段, 生成的 tex 文件里面还是会蹦出一个 \author{}, 且在自定义 latex template 的后面, 所以无法在 template 里面插 author 来解决. laekov 于是找来了 pandoc 的 beamer writer (default.beamer, 也可能是 default.latex), 在里面找 author, 果然找到这么一段. \author{$for(author)$ $author$ $sep$ \and $endfor$} 这么暴力怎么行, 于是加上一个 if 变成酱紫....

March 15, 2022 · 1 min · laekov