之前旧的博客架在 vultr 的日本服务器上,当时配置的时候由于对 linux 管理不太熟悉,导致了一大坨遗留问题。比如主用户直接用的 root,上面架的梯子之类的一堆东西也都在 root 下面,系统用的是 CentOS7

- 阅读剩余部分 -

test
block 'test1'

#include <bits/stdc++.h>
using namespace std;
int main() {
    return 0;
}

srun [script] 提交 interactive 的脚本
sbatch [script] 脚本在后台运行,输出保存到文件

脚本头部指定 slurm 参数:

#SBATCH --job-name=hellompi
#SBATCH --output=hellompi.out
#SBATCH --ntasks=56
#SBATCH --partition=broadwl
#SBATCH --nodes=2
#SBATCH --exclusive
#SBATCH --time=00:20:00

查看二进制ELF汇编 : hopper disassembler
python辅助gdb : gdb peda / pwndbg

stegsolve : 全色图片破解

foremost : 文件恢复,用于图片等

quipquip : 解决字符替换问题网站
cyberchef : 在线编解码

hexedit / ghex : 编辑文件 hex

eog : 图片浏览器

ltrace : trace library call

john the ripper :

zip2john ./results2.zip > flag.out
./john --wordlist=rockyou.txt flag.out

python:
struct.pack('<I', 0x123456) : 生成小端序hex字符
pwn.p32(0x123456)
pwn.ELF([elf file]) : 查看 ELF 相关信息

elf = pwn.ELF([elf file])
p = elf.process()
prompt = p.recv() # 运行ELF并获取输出
p.sendline(payload)
p.interactive()
s = pwn.remote(host, port)
s.close()

curl -X POST [site] : 发送post请求
curl [site] --data username=[context] :发送 post 请求,指定域

reverse tools :
ghidra
ida
cutter

nvidia-smi topo -m 结果:
SYS : 不能进行 P2P 和 GPUDirectRDMA
PHB(PIX) : 在同一 PCIE fabric 上,可以进行 P2P 和 GPUDirectRDMA

libucm.so 在 ucx 中

经验

cuda aware mpi 很重要
大规模 CPU 并行任务的运行时间可能取决于最慢的一个进程,因此跑之前应该确保机器是空的,否则可能被小任务拖慢

CUDA && MPI

UVA : unified virtual memory
把 host memory 和 同一节点内的所有 GPU memory 视为同一地址空间

GPUDirect

  1. RDMA (通过 IB)
  2. P2P (节点内)

pinned memory && pageable memory

malloc 申请的 host memory 通常为 pageable (内存可以被 kernel 移动,比如到swap)
RDMA 传输不通过 kernel,因此不 aware 页表,故 RDMA 传输的内存在拷贝时不能被移动,为 pinned memory