本网站的崩溃与重建

由于升级系统升挂了(说来话长…) 原本跑在青岛阿里云 ecs 上的 shiruku 无了. 于是决定迁移到 Hugo. 目前姑且能用了, 且保留了之前的大部分内容. 之后还会继续修缮. 顺便开个坑记录一下这次的经历.

December 5, 2023 · 1 min · laekov

CentOS 的防火墙和 ldap login

最近在实验室遇到一些情况必需搞一台 centos 的服务器, 但是还是想给它配置我们常用的一些东西, 于是踩了一些坑, 作一个记录. sshd 在别的端口 我们用这个来提供外网的仅公钥的访问, 然而 cent 里面配了 sshd_config 里的 port 之后竟然没法从别的机器访问到这个 port. 关掉 selinux 也没用, 最后发现需要 disable firewalld. (什么企业级安全) sssd ldap 无法 auth 相比 debian 底下使用 libnss-ldapd 和 libpam-ldapd, cent 下面用的是一个叫 sssd 的玩意. 然后使用 authconfig 来进行配置. 然而配好了之后可以 id 一个用户 , 却不能 getent. 发现需要在 sssd 配置文件里加上这个. enumerate = true 然而还是无法用 ldap 用户密码登录, 一通查发现是因为 SSSD always uses an encrypted channel for authentication, which ensures that passwords are never sent over the network unencrypted....

September 21, 2023 · 1 min · laekov

魔改 python-dbg

最近在一些奇怪的地方使用 pytorch. 那里的 python 十分的鬼畜, 以至于 python-debug 用不了. c 的栈打出来大概是这样的. #110 0x00004ffff061c03c in _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at ../Python-3.6.8/Python/ceval.c:3351 #111 0x00004ffff061865c in PyEval_EvalFrameEx (f=0x6, throwflag=8387296) at ../Python-3.6.8/Python/ceval.c:754 #112 0x00004ffff06192fc in _PyEval_EvalCodeWithName (_co=0x58000044c980, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=0, kwnames=<optimized out>, kwargs=0x58000d8621b8, kwcount=2, kwstep=1, defs=0x580000449340, defcount=2, kwdefs=0x0, closure=0x0, name=0x5800003431c0, qualname=0x5800003431c0) at ../Python-3.6.8/Python/ceval.c:4166 #113 0x00004ffff0619768 in fast_function (kwnames=<optimized out>, nargs=0, stack=0x58000d8621b8, func=0x58000296f6b8) at ../Python-3.6.8/Python/ceval.c:4992 #114 call_function (pp_stack=0x500000804400, oparg=<optimized out>, kwnames=<optimized out>) at ....

September 5, 2023 · 1 min · laekov

python-dbg 使用中遇到的 auto-load-safe 问题

用 gdb 的 py-bt 来看一个 python 程序的调用栈是一个非常有用的工具. 然而今天在集群上尝试使用这个功能的时候发现了一些问题. 使用 debian 12 自带的 python3.11 时可以正常工作, 而使用 spack 安装的 python3.10 的时候就无法工作了. 最初怀疑 configure python 的时候没有带 --withdebug, 于是重新装了一个 python 还是不管用. 然后在仔细观察输出的时候发现 gdb autoload 竟然还有 safe path 一说, 故需要在 .gdbinit 中加入 add-auto-load-safe-path /home/spack/* 才能安全工作. (具体见这篇文档 )

September 2, 2023 · 1 min · laekov

那一夜你喝了酒 改编版

那一夜我喝了酒带着醉而回 然后发现你还在那公司 深夜加班 我仿佛看到我的未来 默默踌躇起来 然后躺在地上思考人生 为何存在 刹那间我突然了解这样生活就是理所应该 什么时候该给你挚爱 什么时候我又应该走开 哦 哦

August 16, 2023 · 1 min · laekov

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

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

April 3, 2023 · 1 min · laekov

20230314

上午 跑了没有数据的 gpt 175b (一半长), 使用了八张 v100 32g pcie. mp 的 latency 是 14636ms, 而 pp 是 57313ms. 考虑到 pp 其实只利用了一个卡, 所以 pp 其实还挺棒的 (?) 下午 摸鱼摸了挺久. 还去宿舍安全学习了. 读了 gpt forward 的代码, 感觉 pipeline 优化已经做了. 只要 batch size 大, 应该打得挺满, 但是没有做 orca 那个工作里的 sequence 上的优化, 可能会导致 pipeline 不那么满? 用 nsys 跑了一把小一点的模型, mp 和 pp 的时间大概是 9:16. nsys 结果是 pp 里面 send/recv 占了大概 13.5% 的时间. 而 80% 以上的时间在矩阵乘. 感觉打得挺满的, 有点令人疑惑. 可能需要一个有效一点的方式来刻画一下 pp 的 bubble 的情况....

March 14, 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