ASC24 Finals Memories

Richard Yang Lv1

能亲手组装集群的机会不多,也是第一次整天靠着机架干活,兴奋之情远大于风扇的呼啸声

超级团队合照

赛后技术总结

工作分配

⏰ ai一个人、HPL&HPCG一个人,其他的人根据赛题分配,HPL&HPCG现在可以很快完成了,因为脚本之类的我搞得差不多了,cv➕改dat数据就行,做完了赶快去别的赛题做。初赛时候每个赛题都得细做,决赛时一般没有时间去细改代码了,特别是正赛时期,根本没时间测试与修改代码。进决赛了就得做出取舍,梭哈团队赛与某个单项奖,ai和HPL&HPCG很吃GPU性能,性能不好的话就别折腾了,请直接快速提交个单机的去拿团队赛题。
📌 然后提交赛题一般会让你放到组委会提供的磁盘里,直接插进去就行,貌似热插拔没啥问题,挂载掉了就拔下来再插一下试试。

必备技能

  • 社交能力:不会的一定要大胆去问,不过一般问也只问超级团队赛的队友,然后其他队伍可以去问他们的进度,我觉得吧一般是愿意交流的,不排除某些队伍想藏着掖着,这些到很正常。对于队内(大队和小队一致),一定要保持和谐,吵架是很浪费时间与精力的请尽力避免,吃亏可以,对大局没影响就行。还有一点,不准跑路!不准跑路!不准跑路!谁比赛中跑路,各方面都会受到鄙视!无论你能力怎样。还有赛后social,这个看个人,我觉得这些大佬都可以去认识,血赚。
  • 文档能力:文档制作一定要熟练,排版简洁,语句精炼,每个人在比赛时都要制作文档。
  • 英语能力:部分队伍交流、赛题与答辩都依赖于英语,听得懂说得清很重要,不然会被多方吐槽的。
  • 脚本能力:应用安装、编译、运行都可以通过脚本一键实现,请使用脚本,请别手打,真正的程序员其实也不是一直在敲代码,用linux很多时候其实是很方便的,计算机就是执行反复重复的操作,这些操作你其实也最好交给计算机,因为这也是它的本职工作之一。
  • Fortran:一定得会,决赛大量代码都是古老fortran,包括代码写法也很古老。
  • 文件阅读:赛题每次的README都要阅读,可能要求之类的会有所改变。然后对于代码,找到main之类的主程序一步步解析代码即可,别给我挨个翻函数和变量之类的,vscode搜索替换是拿来用的。不排除赛题代码有失误,可能变量不存在定义之类的,仔细阅读理解代码原理后其实还是很容易猜出来。
  • 数据保存:日志文件!日志文件!一定要保存日志文件,跑赛题一定要保存!然后运行脚本一定要按照组委会要求来,时间节点这些他们需要进行查验。

基础环境搭建

♻️ 系统环境:不建议在集群上用Ubuntu,Debian系的我其实都不太建议,目前是建议最初直接Rocky Linux最小化安装,然后用dnf安装一些非运行库的东西,如nfs等工具,docker请不要直接dnf安装,直接安装的是docker的代替品,请导入官方的repo后再安装docker-ce等相关工具。以后是希望用slurm和module进行集群管理与搭建,这样调度和管理会方便很多,不过安装配置有点折磨,只能说早点整个脚本出来。然后密码的请统一,我在集群使用时所有密码都是password,别整一堆密码,没必要,还浪费时间记忆。系统安装一次其实就够了,拿个联想的硬盘底座无差别复制就行,我这次忘带了。(但是有个指令叫做dd,貌似能全盘复制)
🧩 网络环境:一定要搭建局域网,不然访问和节点管理很麻烦。openwrt之类的可以提前尝试,我吃了docker安装不熟练的亏,也没带软路由之类的机器过来,然后防火墙请完全关闭,开着没必要,会出很多莫名其妙的问题。
💸 IB:不是,哥们,我真不会啊QWQ,去强哥和廖那看看,我看之后能不能买套二手玩。

环境配置

🚫 非必要,但最好有的:slurm,module
🚨 必要:Intel oneAPI(2022 / 2024),Nvidia Driver & CUDA,mpich,openmpi,docker
❓ 环境加载:除了驱动相关,其他的环境请不要写死在系统环境变量里,每次使用时在脚本里加载环境就行,请保持系统本身环境的整洁与干净。
🔥 文件共享:在主节点上共享/share,然后大多软件之类的安装在共享文件夹会方便很多,共享文件配置最重要的就是文件权限,这个设置好了其实一般就可以使用了。
强的PS:不要放在opt下面,每次重启在其他子节点上会有莫名其妙的文件夹(contained,这是容器的东西)出来,导致NFS崩掉

HPL & HPCG

GPU:对于这个题目,我建议直接使用NVIDIA HPC-Benchmarks,GPU所得的结果理论上是远大于CPU的,当然理论数据其实可以在网络上查找到,单机走docker,多机走singularity,但多机调度可能得依赖slurm,自行调度过于麻烦,我不会多机的GPU调度。不过要是可以或者理解深刻的话使用GPU版的进行编译运行测试也行,不过这样环境上会很头疼。
CPU:没卡的时候,或者卡很垃的情况下可以使用CPU的进行测试,懒得编译就梭哈intel的,默认路径应该在intel的mkl的share里(具体路径我想起来了再复制),它应该是进程下分线程运行的,2024方式和2022的有点区别来着。手动编译hpl官方的代码用intel的库会快点,但貌似没有intel编译好的快。

  • Title: ASC24 Finals Memories
  • Author: Richard Yang
  • Created at : 2024-11-29 10:17:09
  • Updated at : 2025-03-04 22:11:44
  • Link: http://www.blog.saltedfishs.top/2024/11/29/ASC24-Finals-Memories/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments