分类 technique 下的文章

CPU 结构:
threads per core : 超线程
cores per socket : 每个 socket 核数
sockets

MPI

每个 mpi 进程有 affinity mask,长度为 CPU cores
--bind-to core : affinity mask 中只有对应 core 一位被 set
--bind-to socket : affinity mask 中 socket 对应 所有 core 被 set
--bind-to none

多机

hostfile :

i1 slots=2 max-slots=8
i2 slots=2 max-slots=8
`which mpirun`  -np 2 --host i1:1,i2:1 hostname
`which mpirun` -np 4 --hostfile ./hostfile hostname

使用脚本时开头要加 #!/bin/bash

OMP

OMP_DISPLAY_ENV=true 输出 OMP 绑定情况
OMP_PLACES=threads, OMP_PLACES=cores,
OMP_PLACES=sockets

hyperthread cpu 分布:/sys/devices/system/cpu/cpu0/topology$ cat thread_siblings_list

似乎该恢复这个系列了

shell 脚本的执行方式目前看起来是 依次从脚本中读入一行,执行一行。因此不要在运行中途改脚本。

不同前缀修改字号大小:

tiny
\scriptsize
\footnotesize
\small
\normalsize
\large
\Large
\LARGE
\huge
\Huge

“世界上居然存在从1开始indexing的语言”

函数句柄:f = @(t) 2*t,可以通过 f(2) 等求值
符号表达式: syms x; f = 2 * x; 可以化简相加等,求单点值:subs(f, x, 1)

函数句柄转符号表达式 : y = f(t)
符号表达式转函数句柄: F = matlabFunction(f)

vpa(x) 转为小数表示

CTRL + R 多行注释,CTRL + T 取消注释

1:0.1:2 将区间 [1,2] 按 0.1 切分
linspace(x1, x2, n) 将区间 [x1, x2] 等分为 n 份
trapz(X, Y) 梯形公式求积分,Y 为函数值 vector,X 为 数或与 Y size 相同 vector

定义函数:

function ouput = name(input)
    // content
end

函数必须在文件末尾

输出:
disp(X)
不在开头输出 X=,直接输出内容

不等于:
~=

for 循环 :

for i = -7:1e-5:0
end

多维数组 : c = [a;b]
数组总长度 : length(a)
数组形状 : size(a)
数组切片 : a(1:2)
数组写入excel : xlswrite("test.xlsx", a)

绘图

ezplot(f, [0, 2]) 绘制 [0, 2] 内函数 f
plot(x, y) 以 x 和 y 内的点作图
grid on 开启网格

矩阵操作

norm(x) : 向量或矩阵 x 的二范数
cond(x) : 矩阵 x 的二条件数
eig(x) : 矩阵 x 全部特征值
vrho(x) : 矩阵 x 谱半径(最大特征值模长)
length(x) : 矩阵 x 最大维度长度

数学函数

normpdf(x) : 标准正态分布函数
normcdf(x) : 标准正态分布函数积分
norminv(x) : normcdf逆函数
chi2cdf(x, n) : 卡方分布函数积分
chi2inv(1-a, n) : idchi2 逆函数

“为什么都大三了还不会用google”

双引号内为完全匹配
减号前是空格,减号后没有空格表示不包含
因此搜索指令选项时可以考虑用引号包括:ls "-alh"

* 为通配符
OR 表示或关系
+ 同时匹配多个关键词
~[word] 表示匹配同义词
inurl:[word] 关键词在url中
intitle:[word] 关键词在标题中
intext:[word] 关键词在正文中
site:[url] 搜索指定网站
filetype:[type] 指定文件类型