Linux命令行与shell脚本编程大全 (Linux Command Line and Shell Scripting Bible)
性能之颠(如果时间来得及,里面关于性能优化的东西还是挺多的)(RGY:我觉得对超算应用效果不是很明显,不过也会有一定用处,建议做优化的人去读,不建议运维来读。然后可以考虑一下cache是 write through 还是 write back)
red hat 系统调优
Red_Hat_Enterprise_Linux-7-Performance_Tuning_Guide
出行前的准备(提前一周以上准备):
做好系统盘,安装所有需要的工具(3-5天)(建议最开始的时候就用自己的系统盘,在学校集群上跑)
让所有人的应用都能跑起来(1-2天)
测试每个程序的能耗特性(1天)
禁止使用Ubuntu desktop作为最后比赛的系统!! (学校集群的系统不要考虑)
启动盘不要用MBR的引导,比赛的集群不支持,学校的集群太老了,不能直接从学校集群dd然后带过去,需要自己给镜像安装一个UEFI
建议带树梅派去,记得带各种螺丝刀(坐飞机需要托运),转接口,比如系统盘的pcie口转usb(前一天晚上可能还要修改一些东西),还有视频线转type-c(现场会提供显示器,用来进BIOS)(运维的笔记本是啥口,视频线就转啥,现场的显示器可以利用起来)
第一天装机:
集群起来之后,首先检查IB是否可以用(IB ping延迟应该是几个us, Verb 的 read write 速度是否达到了标记的值),然后检查IPoIB和RDMA的速度,然后检查文件系统读写,ramdisk读写(ASC19有一个节点的内存非常大,用来搭ramdisk) ,之后是比赛要用的所有MPI库的测试,可以使用mpptest和这里的程序来一个个api测试。ASC19遇到的问题是一个MPI库的几个api不能用,google发现是特定版本的已知问题。
然后写好风扇和CPU控制脚本,这个非常重要。
功耗控制,一方面控制风扇的转速,一般是手工根据每个应用的特性来设置 另一方面是CPU主频和其他功耗。有相关的控制工具,可以在网上寻找一下。
第二天装机:
通过树梅派(无线)/网线(有线)搭建网络,(借助手机热点)让集群通外网。
跑功耗,估计每个应用的风扇和CPU主频 跑HPL等基准测试
第三天:
有的应用功耗会突然跳动,建议就算功耗超了3kw也不杀,等把整个流程跑完了,获得功耗pattern,作为实验,结果作废。
可以在学校的集群上按照1,2,4机的配置同时跑,测出时间比为 x:y:z,然后设当年的正确分:速度分=a/b
这样来计算最佳的策略: 比较以下几种策略的大小,然后选择最佳得分跑法(公式自己推导) 8*(a+bx/z)/x (1机) 4(a+by/z)/y (2机) 2(a+b)/z (4机)
例如ASC19的几个应用扩展性很差,最好单机跑,每台机器跑一个样例,同时跑多个样例。
有的神秘应用非常非常吃内存,每发生一次oom就把进程数减半,然后折半找最合适的进程数
PowerTOP PowerTOP can provide an estimate of the total power usage of the system and show individual power usage for each process, device, kernel work, timer, and interrupt handler
SystemTap With Diskdevstat and netdevstat in SystemTap, we can collect detailed information about the disk and network activity
CPU Monitors cpupower provides ways to regulate your processor's power saving policies
Parallel applications consist of CPU computing, memory access, I/O, communication and synchronization. When the execution is bounded by one component, the other components can be put into lower power states without significant performance degradation. The analysis mainly includes two parts: CPU activity analysis and communication phase analysis
在Debian 系列, /tmp 默认是挂在 disk 上的 https://lwn.net/Articles/499410/