Presentation & Visualization : PPT
1 | > curl myip.ipip.net |
1 | # 网页服务直接下载检查内容 |
或者扫描指定端口
1 | # IPV6 也行 |
全部端口,但是会很慢。50分钟
1 | sudo nmap -sT -p- 4.shaojiemike.top |
上方的过滤窗口
1 | tcp.port==80&&(ip.dst==192.168.1.2||ip.dst==192.168.1.3) |
抓包前在capture option中设置,仅捕获符合条件的包,可以避免产生较大的捕获文件和内存占用,但不能完整的复现测试时的网络环境。
1 | host 192.168.1.1 //抓取192.168.1.1 收到和发出的所有数据包 |
传统命令行抓包工具
注意过滤规则间的and
-nn
:-i
指定网卡 -D
查看网卡-v
,-vv
和 -vvv
来显示更多的详细信息port 80
抓取 80 端口上的流量,通常是 HTTP。在前面加src
,dst
限定词tcpudmp -i eth0 -n arp host 192.168.199
抓取192.168.199.* 网段的arp协议包,arp可以换为tcp,udp等。-A
,-X
,-xx
会逐渐显示包内容更多信息-e
: 显示数据链路层信息。1 | 192.168.1.106.56166 > 124.192.132.54.80 |
>
符号代表数据的方向。常见的三次握手 TCP 报文的 Flags:
1 | [S] : SYN(开始连接) |
1 | curl --trace-ascii - www.github.com |
github ip 为 20.205.243.166
ifconfig显示 ibs5
的网卡有21TB的带宽上限,肯定是IB卡了。
1 | sudo tcpdump -i ibs5 '((tcp) and (host 20.205.243.166))' |
1 | $ sudo tcpdump -i ibs5 -nn -vvv -e '((port 80) and (tcp) and (host 20.205.243.166))' tcpdump: listening on ibs5, link-type LINUX_SLL (Linux cooked v1), capture size 262144 bytes |
snode0 ip 是 10.1.13.50
mtr = traceroute+ping
1 | $ traceroute www.baid.com |
traceroute命令用于显示数据包到主机间的路径。
1 | # shaojiemike @ snode0 in /etc/NetworkManager [16:49:55] |
好像之前使用过的样子。
1 | # shaojiemike @ snode0 in /etc/NetworkManager [16:56:36] C:127 |
应该是这个 Secure site-to-site connection with Linux IPsec VPN 来设置的
暂无
暂无
FJW说所有网络都是通过NFS一起出去的
https://cloud.tencent.com/developer/article/1448642
1 | shaojiemike@snode6:~$ groups shaojiemike |
1 | cat /etc/group |
/etc/passwd
如果发现自己不在/etc/passwd里,很可能使用了ldap 集中身份认证。可以在多台机器上实现分布式账号登录,用同一个账号。
1 | getent passwd |
1 | ctrl + alt + F3 |
宕机一般是爆内存,进程分配肯定会注意不超过物理核个数。
在zshrc里写入 25*1024*1024 = 25GB的内存上限
1 | ulimit -v 26214400 |
当前shell程序超内存,会输出Memory Error
结束。
1 | with open("/home/shaojiemike/test/DynamoRIO/OpenBLASRawAssembly/openblas_utest.log", 'r') as f: |
有文章说Linux有些版本内核会失效
PyG是一个基于PyTorch的用于处理不规则数据(比如图)的库,或者说是一个用于在图等数据上快速实现表征学习的框架。它的运行速度很快,训练模型速度可以达到DGL(Deep Graph Library )v0.2 的40倍(数据来自论文)。除了出色的运行速度外,PyG中也集成了很多论文中提出的方法(GCN,SGC,GAT,SAGE等等)和常用数据集。因此对于复现论文来说也是相当方便。
经典的库才有函数可以支持,自己的模型,自己根据自动微分实现。还要自己写GPU并行。
MessagePassing 是网络交互的核心
torch_geometric.data.Data (下面简称Data) 用于构建图
通过data.face来扩展Data
在 PyG 中,我们使用的不是这种写法,而是在get()函数中根据 index 返回torch_geometric.data.Data类型的数据,在Data里包含了数据和 label。
由于是无向图,因此有 4 条边:(0 -> 1), (1 -> 0), (1 -> 2), (2 -> 1)。每个节点都有自己的特征。上面这个图可以使用 torch_geometric.data.Data
来表示如下:
1 | import torch |
注意edge_index中边的存储方式,有两个list,第 1 个list是边的起始点,第 2 个list是边的目标节点。注意与下面的存储方式的区别。
1 | import torch |
这种情况edge_index需要先转置然后使用contiguous()方法。关于contiguous()函数的作用,查看 PyTorch中的contiguous。
1 | import torch |
DataLoader 这个类允许你通过batch的方式feed数据。创建一个DotaLoader实例,可以简单的指定数据集和你期望的batch size。
1 | loader = DataLoader(dataset, batch_size=512, shuffle=True) |
DataLoader的每一次迭代都会产生一个Batch对象。它非常像Data对象。但是带有一个‘batch’属性。它指明了了对应图上的节点连接关系。因为DataLoader聚合来自不同图的的batch的x,y 和edge_index,所以GNN模型需要batch信息去知道那个节点属于哪一图。
1 | for batch in loader: |
其中,x 表示表格节点的 embedding,e 表示边的特征,ϕ 表示 message 函数,□ 表示聚合 aggregation 函数,γ 表示 update 函数。上标表示层的 index,比如说,当 k = 1 时,x 则表示所有输入网络的图结构的数据。
为了实现这个,我们需要定义:
[2, num_messages]
, where messages from nodes in edge_index[0]
are sent to nodes in edge_index[1]
会根据 flow=“source_to_target”和if flow=“target_to_source”或者x_i,x_j,来区分处理的边。
x_j表示提升张量,它包含每个边的源节点特征,即每个节点的邻居。通过在变量名后添加_i或_j,可以自动提升节点特征。事实上,任何张量都可以通过这种方式转换,只要它们包含源节点或目标节点特征。
_j表示每条边的起点,_i表示每条边的终点。x_j表示的就是每条边起点的x值(也就是Feature)。如果你手动加了别的内容,那么它的_j, _i也会自动进行处理,这个自己稍微单步执行一下就知道了
在实现message的时候,节点特征会自动map到各自的source and target nodes。
aggregation scheme 只需要设置参数就好,“add”, “mean”, “min”, “max” and “mul” operations
aggregation 输出作为第一个参数,后面的参数是 propagate()的
$$
\mathbf{x}i^{(k)} = \sum{j \in \mathcal{N}(i) \cup { i }} \frac{1}{\sqrt{\deg(i)} \cdot \sqrt{\deg(j)}} \cdot \left( \mathbf{\Theta}^{\top} \cdot \mathbf{x}_j^{(k-1)} \right)
$$
该式子先将周围的节点与权重矩阵\theta相乘, 然后通过节点的度degree正则化,最后相加
步骤可以拆分如下
步骤1 和 2 需要在message passing 前被计算好。 3 - 5 可以torch_geometric.nn.MessagePassing 类。
添加self-loop的目的是让featrue在聚合的过程中加入当前节点自己的feature,没有self-loop聚合的就只有邻居节点的信息。
1 | import torch |
所有的逻辑代码都在forward()里面,当我们调用propagate()函数之后,它将会在内部调用message()和update()。
1 | conv = GCNConv(16, 32) |
聚合函数(aggregation)我们用最大池化(max pooling),这样上述公示中的 AGGREGATE 可以写为:
上述公式中,对于每个邻居节点,都和一个 weighted matrix 相乘,并且加上一个 bias,传给一个激活函数。相关代码如下(对应第二个图):
1 | class SAGEConv(MessagePassing): |
对于 update 方法,我们需要聚合更新每个节点的 embedding,然后加上权重矩阵和偏置(对应第一个图第二行):
1 | class SAGEConv(MessagePassing): |
综上所述,SageConv 层的定于方法如下:
1 | import torch |
GNN的batch实现和传统的有区别。
将网络复制batch次,batchSize的数据产生batchSize个Loss。通过Sum或者Max处理Loss,整体同时更新所有的网络参数。至于网络中循环输入和输出的H^(t-1)和H^t。(感觉直接平均就行了。
有几个可能的问题
通过 rescaling or padding(填充) 将相同大小的网络复制,来实现新添加维度。而新添加维度的大小就是batch_size。
但是由于图神经网络的特殊性:边和节点的表示。传统的方法要么不可行,要么会有数据的重复表示产生的大量内存消耗。
为此引入了ADVANCED MINI-BATCHING来实现对大量数据的并行。
https://pytorch-geometric.readthedocs.io/en/latest/notes/batching.html
可以实现将多个图batch成一个大图。 通过重写collate()来实现,并继承了pytorch的所有参数,比如num_workers.
在合并的时候,除开edge_index [2, num_edges]通过增加第二维度。其余(节点)都是增加第一维度的个数。
1 | # 原本是[2*4] |
1 | from torch_geometric.data import Data |
1 | from torch_geometric.datasets import TUDataset |
暂无
暂无
图神经网络的研究与图嵌入(对图嵌入不了解的读者可以参考我的这篇文章《图嵌入综述》)或网络嵌入密切相关。
真实的图(网络)往往是高维、难以处理的,图嵌入的目标是发现高维图的低维向量表示。
GCN可谓是图神经网络的“开山之作”,它首次将图像处理中的卷积操作简单的用到图结构数据处理中来,并且给出了具体的推导,这里面涉及到复杂的谱图理论。推导过程还是比较复杂的,然而最后的结果却非常简单。
聚合邻居节点的特征然后做一个线性变换吗?没错,确实是这样,同时为了使得GCN能够捕捉到K-hop的邻居节点的信息,作者还堆叠多层GCN layers,如堆叠K层有:
给定一个网络,其中部分节点被标记,其他节点未标记,ConvGNNs可以学习一个鲁棒模型,有效地识别未标记节点的类标签。为此,可以通过叠加一对图卷积层,然后是用于多类分类的softmax层来构建端到端框架。见图(a)
图级分类的目的是预测整个图的类标签。该任务的端到端学习可以结合图卷积层、图池层和/或readout层来实现。图卷积层负责精确的高级节点表示,图池层则扮演下采样的角色,每次都将每个图粗化成一个子结构。readout层将每个图的节点表示折叠成一个图表示。通过在图表示中应用一个多层感知器和一个softmax层,我们可以建立一个端到端图分类框架。见图(b)
当图中没有可用的类标签时,我们可以学习在端到端框架中以完全无监督的方式嵌入图。这些算法以两种方式利用边缘级信息。一种简单的方法是采用自编码器框架,编码器使用图卷积层将图嵌入到潜在表示中,在潜在表示上使用解码器重构图结构。另一种常用的方法是利用负采样方法(negative sampling),即对图中有链接的部分节点对进行负采样,而对图中有链接的节点对进行正采样。然后应用逻辑回归层对的正负配对进行区分。见图(c)
图自动编码器(Graph autoencoders, GAEs)是一种无监督学习框架,它将node或者graph编码成一个潜在的向量空间,并从编码的信息重构图数据。该算法用于学习network embedding和图生成分布。对于network embedding,GAEs通过重构图的邻接矩阵等图结构信息来学习潜在节点表示。对于图的生成,有的方法是一步一步生成图的节点和边,有的方法是一次性输出整个图。
旨在从时空图中学习隐藏的模式,在交通速度预测、驾驶员操纵预测和人类行为识别等多种应用中发挥着越来越重要的作用。STGNNs的核心思想是同时考虑空间依赖和时间依赖。目前的许多方法都是通过图卷积来捕获与RNNs或CNNs的空间依赖关系,从而对时间依赖关系进行建模。下图是STGNNs流程图模型。
暂无
暂无
https://zhuanlan.zhihu.com/p/136521625
https://zhuanlan.zhihu.com/p/75307407
https://mp.weixin.qq.com/s/PSrgm7frsXIobSrlcoCWxw
https://zhuanlan.zhihu.com/p/142948273
https://developer.huaweicloud.com/hero/forum.php?mod=viewthread&tid=109580
分布式、多平台集成认证系统
https://ibug.io/blog/2022/03/linux-openldap-server/
https://harrychen.xyz/2021/01/17/openldap-linux-auth/
https://www.cnblogs.com/dufeixiang/p/11624210.html
复杂还有bug,我还是改profile吧
https://ibug.io/blog/2022/03/linux-openldap-server/#user-chsh
挂在同一个地方,肯定是一样的
1 | # shaojiemike @ snode2 in ~ [20:18:20] |
tmpfs是磁盘里的虚拟内存的意思。
具体设置要登录到中央机器上去
1 | # shaojiemike @ hades1 in ~ [20:41:06] |
1 | # shaojiemike @ snode0 in ~ [20:36:26] |
暂无
Python代码的执行由Python虚拟机(解释器)来控制。
对Python虚拟机的访问由全局解释器锁(GIL)来控制,正是这个锁能保证同时只有一个线程在运行。所以就会出现尽管你设置了多线程的任务,但是只能跑一个的情况。
但是I/O密集的程序(爬虫)相对好一点,因为I/O操作会调用内建的操作系统C代码,所以这时会释放GIL锁,达到部分多线程的效果。
通常我们用的解释器是官方实现的CPython,要真正利用多核,除非重写一个不带GIL的解释器。
dblp computer science bibliography,按照会议搜索.DBLP默认是以年份和会议名称排序的
Microsoft Academic。最近,微软宣布将关闭仅次于谷歌Scholar的第二大学术搜索引擎Microsoft Academic
查找相关论文的引用关系,并可视化
DeepL全文翻译
影响因子(impact factor,IF)是ISl的期刊引证报告(Journal Citation Reports,JCR)中公布的一项数据,自1975年开始,JCR每年公布一次上一年的数据。影响因子指某期刊前两年发表的论文在统计当年的被引用总次数除以该期刊在前两年内发表的论文总数。这是一个国际上通用的期刊评价指标。影响因子是以年为单位进行计算的。
https://academic-accelerator.com/
https://www.scimagojr.com/journalsearch.php?q=20571&tip=sid
CCF 推荐会议下载 https://www.ccf.org.cn/Focus/2019-04-25/663625.shtml
https://blog.csdn.net/tmb8z9vdm66wh68vx1/article/details/100571714
https://github.com/bugaosuni59/TH-CPL
名称 | 全称 | 截稿时间 | 结果时间 | 篇幅 | 官网 |
---|---|---|---|---|---|
A类期刊 | |||||
TOCS | ACM Transactions on Computer Systems | - | - | - | https://dl.acm.org/journal/tocs |
TPDS | IEEE Transactions on Parallel and Distributed Systems | - | - | - | - |
TC | IEEE Transactions on Computers | - | - | - | - |
TCAD | IEEE Transactions On Computer-Aided Design Of Integrated Circults And Systems | - | - | - | - |
TOS | ACM Transactions on Storage | - | - | - | - |
综合类A类期刊 | |||||
JACM | Journal of the ACM | - | - | - | - |
Proc. IEEE | Proceedings of the IEEE | - | - | - | - |
- | Science China | - | - | - | - |
- | 中国科学 | - | - | - | - |
名称 | 全称 | 上次时间 | 下次时间 | 篇幅 | 官网 |
---|---|---|---|---|---|
FAST | USENIX Conference on File and Storage Technologies | 2022-2-22~24 | 2023-2-20~23 | 长文11页,短文6页 | https://www.usenix.org/conference/fast22/technical-sessions |
FPGA | ACM/SIGDA International Symposium on Field-Programmable Gate Arrays | 2022-2-27~3-1 online | - | - | https://www.isfpga.org |
ASPLOS | International Conference on Archltectural Support for Programming Languages and Operating Systems | 2022-02-28~3-4 | 2023-2 | - | https://asplos-conference.org/2022/ |
PPoPP | ACM SIGPLAN Symposium on Principles & Practice Of Parallel Programming | 22-4-2~6 online | https://ppopp22.sigplan.org | ||
HPCA | International Symposium on High-Performance Computer Architecture | 2022-4-2~6 线上 | - | https://hpca-conf.org/2022/ | |
EuroSys | European Conference on Computer Systems | 2022-4-5~8 法国 | 12页正文 | https://2022.eurosys.org | |
SIGMETRICS | International Conference on Measurement and Modeling Of Computer Systems(计算机性能建模、分析与优化领域的顶级会议) | 2022-6-6~10 india | 12页正文 | https://www.sigmetrics.org/index.shtml | |
ISCA | International Symposium on Computer Architecture | 21-6-14~19 | 22-6-11~15 | - | https://www.iscaconf.org/isca2021/program/ |
DAC | Design Automation Conference | 22-7-10~14 USA | - | https://www.dac.com | |
USENIX ATC | USENIX Annul Technical Conference | 2022-7-11~13 USA | 长文11页,短文5页 | https://www.usenix.org/conference/atc22 | |
MICRO | IEEE/ACM International Symposium on Microarchitecture | 2021-10-18~22 online | 2022-10 USA | - | https://www.microarch.org/micro55/ |
SC | International Conference for High Performance Computing, Networking, Storage, and Analysis | 2022-11-12~13 USA | - | https://sc22.supercomputing.org | |
综合或者交叉学科类A类会议 | |||||
RECOMB | International Conference on Research in Computational Molecular Biology | 2019-11-01 | - | - | - |
ISMB | International conference on Intelligent Systems for Molecular Biology | 2020-01-30 | - | - | - |
WWW | International World Wide Web Conferences | 2019-10-14 | 2020-1-10 | 长文12页,短文6页 | https://www2020.thewebconf.org/ |
EC | ACM Conference on Economics and Computation | - | - | - | - |
Architectural Support for Programming Languages and Operating
Systems (ASPLOS)
ASPLOS(编程语言和操作系统的体系结构支持会议)是ACM开办的一个以体系结构为核心内容的多学科会议,其研究领域跨越硬件、体系结构、编译器、编程语言、操作系统、网络和应用,尤其关注这些学科间的交叉性研究课题。
ASPLOS的开会年份非常奇怪,82、87、89、91、92、94、96、98、00、02、04、06、08、09,既不是双年会,又不是但年会,还说不准奇数年或偶数年开会,真是个“不走寻常路”的会议。但ASPLOS绝对是一个精品会议,一年仅录用20多篇论文,几乎每篇都会受到计算机领域的大量引用。
ASPLOS从创办至今推动了RISC、RAID和大规模多处理器等多项技术的发展,影响力较大。
一年一度的世界超算大会(International Conference for High Performance Computing, Networking, Storage and Analysis, 简称SC) 会发布Top500
IEEE International Symposium on Workload Characterization (IISWC)
这个会主要就是研究怎么更科学的设计、分析和评估workload,很多著名的benchmark都会在这个会上发布。
IEEE/ACM Performance Modeling, Benchmarking and Simulation of High Performance Computer Systems (PMBS)
OSDI: USENIX Operating Systems Design and Implementation (26/2=13)
SOSP: ACM SIGOPS Symp on OS Principles (25/2=13)
ASPLOS: Architectural Support for Prog Lang and OS (31)
FAST: USENIX Conference on File and Storage Technologies (23)
Usenix: Annual Usenix Technical Conference (34)
OSDI,这是一个收录范围相当广的会议。提到OSDI,就得提到排名第11的另一
个会议: SOSP。这两个是OS最好的会议,每两年开一次,轮流开,比如今年是OSDI,那么
明年就是SOSP。由于这两个会议方向很广,因此影响很大。
在Architecture领域,最好的会议是ISCA,HPCA和MICRO。
暂无
查询期刊 https://www.letpub.com.cn/index.php?page=journalapp
http://blog.sina.com.cn/s/blog_556a37e10100mdnc.html
https://www.zhihu.com/question/26583423
https://blog.csdn.net/chen_shiqiang/article/details/76167981
超微半导体公司(英語:Advanced Micro Devices, Inc.;縮寫:AMD、超微,或譯「超威」),創立於1969年,是一家專注於微处理器及相關技術設計的跨国公司,总部位于美國加州舊金山灣區矽谷內的森尼韦尔市。
由 AMD 于 2019 年年中设计和推出。 是基于 Zen 2 微架构的多芯片处理器
1 | > cat lscpu.txt |
1 | fpu:板载 FPU(浮点支持) |
1 | ss:CPU自监听 |
1 | syscall: SYSCALL (Fast System Call) and SYSRET (Return From Fast System Call) |
1 | mp: Multiprocessing Capable. |
1 | constant_tsc:TSC(Time Stamp Counter) 以恒定速率滴答 |
1 | pni: SSE-3 (“2004年,新内核Prescott New Instructions”) |
1 | lahf_lm:在长模式下从标志 (LAHF) 加载 AH 并将 AH 存储到标志 (SAHF) |
1 | cpb:AMD 核心性能提升 |
1 | vmmcall:比 VMCALL 更喜欢 VMMCALL |
1 | fsgsbase:{RD/WR}{FS/GS}BASE 指令 |
1 | xsaveopt: Optimized XSAVE |
1 | cqm_llc: LLC QoS # last level cache (LLC) |
1 | clzero:CLZERO 指令,随 Zen 微体系结构引入的 AMD 供应商特定 x86 指令。CLZERO 通过向行中的每个字节写入零来清除由 RAX 寄存器中的逻辑地址指定的缓存行。 |
1 | arat: Always Running APIC Timer |
1 | npt:AMD 嵌套页表支持 |
1 | umip:用户模式指令保护 |
1 | overflow_recov:MCA 溢出恢复支持 # Machine Check Architecture (MCA) |
ssbd ibrs ibpb stibp
英特尔处理器支持多种技术来优化功耗。 在本文中,我们概述了 p 状态(运行期间电压和 CPU 频率的优化)和 c 状态(如果内核不必执行任何指令,则优化功耗)。
ADCX
将两个无符号整数加上进位,从进位标志中读取进位,并在必要时将其设置在那里。 不影响进位以外的其他标志。
ADOX
将两个无符号整数加上进位,从溢出标志中读取进位,并在必要时将其设置在那里。 不影响溢出以外的其他标志。
暂无
暂无
https://unix.stackexchange.com/questions/43539/what-do-the-flags-in-proc-cpuinfo-mean