- 博客(87)
- 收藏
- 关注
原创 linux cpufreq 设置
文章目录参考在跑benchmark的时候,想要得到相对稳定的结果,不过系统对cpu的调频可能会对测试产生影响。可以通过设置修改CPU的速度,详细的说明可以参考[1]。下图是跑benchmark的时候的warning。在Ubuntu 20.04中,可以通过修改scaling_governor 文件调整cpu频率。如下图所示,在目录/sys/devices/system/cpu下面包含cpu0到cpuN的目录,在每个目录的cpufreq/scaling_governor中包含当前cpu的速度设置,也即
2021-12-27 22:40:23
1097
原创 perf not found for kernel 5.15.4
问题描述:使用 docker 拉取 ubuntu:20.04 的镜像,apt 安装perf 之后运行,显示 perf not found for kernel 5.15.4 的错误。解决方法:删除/usr/bin/perf,并创建软链接 /usr/bin/perf -> /usr/lib/linux-tools/5.4.0-92-generic/perf...
2021-12-27 22:18:17
3763
原创 MySQL 源码初探4
文章目录InnoDB Buffer Pool源码组织DIY参考InnoDB Buffer Pool在前面的文章中,通过对读写操作的调试,大致梳理了执行这些SQL语句过程中主要调用的一些函数,但并没有提及直接操作磁盘的相关函数。由于磁盘相对于处理器的速度较慢,因此数据库会在内存中维护一个缓存池。在InnoDB存储引擎中,与Buffer Pool 相关的代码主要在storage/innobase/buf 目录下。一个具备最基本功能的Buffer Pool 可以只包含一个保存大量页面的内存空间以及记录这些内存
2021-05-29 23:21:26
349
原创 MySQL源码初探2
文章目录CREATE TABLE 与 INSERT 的执行流程CREATE TABLE 与 INSERT 的执行流程在前面一篇文章中,简要介绍了MySQL的源码结构,并以一个简单的SELECT语句为例子,使用GDB调试MySQL的源码了解SQL语句的执行过程。这篇文章尝试通过一个创建TABLE并向其中插入记录的例子了解MySQL的写流程。与前一篇文章中的过程类似,首先在mysql-test/t目录下编写测试例,内容如下:之后运行mysql-test-run GDB调试源码。在前一篇文章中,Unde
2021-04-17 20:07:36
271
原创 MySQL源码初探1
文章目录MySQL源码目录MySQL 源码调试MySQL源码目录下图所示为MySQL v5.6的源码目录结构,下面依次简介主要的几个目录。BUILD 目录中主要是编译部署的脚本。以 compile-pentium-debug为例,脚本中的内容为cmake 与 make 编译命令。其中 compilexxx与compilexxx-debug的区别在于编译生成的文件是否包含debug信息。选择包含debug信息的编译方式,后面可以使用GDB 调试源代码,查看执行一条SQL执行调用到哪些源文件;cl
2021-04-06 20:34:32
384
原创 Log-Structured Merge-Tree (LSM-Tree)
Log-Structured Merge-Tree (LSM-Tree)文章目录Log-Structured Merge-Tree (LSM-Tree)1、简介2、五分钟规则(Five Minute Rule)3、包含两个树结构的LSM-Tree (Two Component LSM-Tree)4、LSM树索引查找5、LSM树的删除、更新以及长延时的查询6、磁盘模型7、LSM树与B树的I/O代价对比7.1、索引项插入代价8、包含多个树的LSM9、最小化总代价10、LSM树的并行11、LSM树的恢复机制12
2020-10-27 21:19:50
808
原创 使用GDB调试多线程应用
文章目录使用GDB调试多线程应用1. 简介2. 例子参考使用GDB调试多线程应用1. 简介GDB中提供了调试多线程的功能,包括:在调试过程中会提示有新的线程被创建调试过程中当前正在运行的线程可以使用info threads 查看,并且每个线程有一个对应的标号使用thread threadno 切换到指定标号的线程进行调试使用thread apply [threadno] [all] args 将某个调试命令应用到指定的线程上目前的主流操作系统均支持多线程。不过在某些不支持多线程的操作系统
2020-10-24 09:46:24
475
原创 Linux io_uring
文章目录Linux io_uring1. Linux IO 系统调用简介2. io_uring 简介2.1 io_uring 数据结构参考:Linux io_uring1. Linux IO 系统调用简介在Linux系统中,可以进行IO操作的系统调用有read和write,并在此基础之上提供了功能更强的pread与pwrite,可以从指定的偏移位置开始读写。此外还有preadv与pwritev支持向量化的读写操作,以及进一步的preadv2与pwritev2允许设置修改标志。这些系统调用虽然在一般IO
2020-09-08 09:34:01
1573
1
原创 Finding a needle in Haystack: Facebook’s photo storage
文章目录Finding a needle in Haystack: Facebook’s photo storage(分布式存储,快速文件元数据操作)简介背景设计细节Finding a needle in Haystack: Facebook’s photo storage(分布式存储,快速文件元数据操作)原始论文地址 Finding a needle in Haystack: Facebook’s photo storage简介该论文主要介绍了一个对象存储系统Haystack,该存储系统主要针对大
2020-08-10 14:31:56
477
原创 分布式文件系统Ceph
文章目录分布式文件系统Ceph摘要简介Ceph分布式文件系统架构分布式文件系统Ceph原论文链接:File Systems Unfit as Distributed Storage Backends:Lessons from 10 Years of Ceph Evolution摘要在过去10年 ,Ceph分布式文件系统基于机器本地的文件系统之上实现。由于用于机器本地使用的文件系统(比如NTFS、ext、Fat)技术相对比较成熟,因此在这些文件系统的基础之上实现分布式的文件系统更加方便。但是这可能会
2020-07-29 17:22:09
1006
1
原创 MeanShift 视频目标追踪
文章目录MeanShift 视频目标追踪简介流程核密度估计相关性表示算法迭代过程目标尺寸的适应实现参考MeanShift 视频目标追踪简介在视频的目标追踪算法中,可以分为两类,一类是卡尔曼滤波、MeanShift、ASMS这种根据相似性,从前一个帧计算当前帧目标的位置;另外一类是使用分类算法,当然也包括深度学习中的YOLO、FAST-RCNN这种对每一帧图像检测目标的位置。Mean Shift作为一种特征空间的分析技术,可以最终定位到使得密度度量函数(density function)最大的位置。在
2020-07-17 21:07:08
501
原创 HuaWei Atlas200 DK交叉编译踩坑记录
文章目录HuaWei Atlas200 DK交叉编译踩坑记录HuaWei Atlas200 DK交叉编译踩坑记录由于需要用到OpenCV以及CV的一个特征提取的库vlfeat,并且MindStudio没有代码提示,没有函数、变量跳转,所以想要换个编辑器,这就需要改为命令行构建。华为Atlas 200DK demo项目的命令行构建方式可以参考这篇文章。首先,交叉编译工具使用aarch64-linux-gnu-gcc v5,OpenCV v3.4.2, vl-feat v0.9.20OpenCV在交
2020-07-02 21:58:53
946
原创 Kalman 滤波一维移动目标追踪
文章目录Kalman 滤波一维移动目标追踪1. 问题描述11.1 问题建模1.2 代码实现2. 问题描述22.1 问题建模2.2 代码实现参考Kalman 滤波一维移动目标追踪在前一篇文章中对Kalman滤波简要介绍了一下。本文使用Kalman 滤波对一维的移动目标进行追踪。在问题1中,在已知目标是大致匀速运动且已知速度的情况下,对目标进行追踪。当然,这样的场景过于理想化,因此在问题2中,环境将会更加贴近真实的场景,在仅有对目标的位移、速度有一个初始的大致猜测的情况下追踪目标。1. 问题描述1假设
2020-06-25 14:32:21
747
原创 Kalman 滤波
文章目录Kalman 滤波1. 简介2. 极大似然估计3. 状态空间参考Kalman 滤波1. 简介Kalman 滤波常用于目标的追踪、预测等任务。滤波器被设计为最小化均方误差。此外,还可以用极大似然的方法得到滤波器。滤波器就是用来从信号中提取出有用的信息,使用一个损失函数评价滤波器的性能。2. 极大似然估计使用极大似然的方法得到一个滤波器,最终的目标就是得到一个x^\hat{x}x^ 使得yyy的条件概率最大,即max[P(y∣x^)]max [P(y|\hat{x})]max[P(y∣x
2020-06-22 21:27:31
481
翻译 Raft 分布一致性协议
文章目录Raft 分布一致性协议1. 简介2. 复制状态机(replicated state machine)3. Raft 共识算法3.1 Leader选举的详细过程3.2 日志复制(Log Replication)Raft 分布一致性协议1. 简介Raft 协议用于在分布式系统中管理机器之间的日志复制。Raft协议与已有的共识(consensus)算法(如 Viewstamped Replication)有很多相似的地方,但是Raft有其独有的特点:Leader拥有更大的权限,相比于其他的共识
2020-05-17 16:37:45
507
原创 使用内点法解决线性规划问题
文章目录使用内点法解决线性规划问题1. 问题描述2. 问题建模使用内点法解决线性规划问题1. 问题描述这里以一个简单的线性函数为例子:min x+ys.t. x+2y≤10 2x+y≤10 x≥0 y≥0\min\ \ x+y\\s.t.\ \ x+2y \leq 10\\\ \ \ \ 2x+y\leq 10\
2020-05-15 08:25:51
1702
原创 最小费用最大流
文章目录最小费用最大流1. 原理2. 实现参考最小费用最大流在通过使用增广路径求解网络的最大流的基础之上,结合Dijkstra最短路径算法,求解给定路径代价的最小费用最大流。1. 原理设网络 D=(V,A,C)D=(V,A,C)D=(V,A,C),每一个弧(vi,vj)∈A(v_i,v_j)\in A(vi,vj)∈A,弧的容量ci∈Cc_i\in Cci∈C,以及每个弧上单位流量的费用b(vi,vj)≥0b(v_i,v_j) \geq 0b(vi,vj)≥0。最终的目标是求得该网络中的一
2020-05-14 21:15:22
733
原创 凸优化简介26
文章目录降低 Variance的方法1. 有限和问题(Finite Sum Problems)2. 增量梯度下降方法(Incremental gradient descent)3. SVRG4. SVRG的扩展5. SARAH降低 Variance的方法1. 有限和问题(Finite Sum Problems)有限和问题的形式为:minx∈Rdf(x)≜1n∑i=1nfi(x)\min...
2020-04-22 15:29:42
451
原创 凸优化简介25
文章目录随机梯度下降的下界与性能提升1. 随机梯度下降的下界2. 随机镜像下降(Stochastic Mirror Descent)3. 随机梯度下降的提升3.1 Reduce Variance3.2 自适应步长3.3 自适应 Bregman Distance随机梯度下降的下界与性能提升1. 随机梯度下降的下界考虑一个一维空间上的函数 f(x)=E[12(x−ξ)2]f(x)=\mathbb...
2020-04-21 13:49:57
499
原创 凸优化简介24
文章目录样本平均近似(Sample Average Approximation)与随机梯度下降(Stochastic Gradient Descent)1. 随机优化的基本形式2. 样本平均近似(Sample Average Approximation)3. 随机梯度下降样本平均近似(Sample Average Approximation)与随机梯度下降(Stochastic Gradient...
2020-04-21 10:31:29
477
原创 凸优化简介23
文章目录平滑技术(Smoothing Techniques)平滑技术(Smoothing Techniques)考虑一个凸且非光滑的目标函数:minx∈Xf(x)\min\limits_{x\in X}f(x)x∈Xminf(x)为了解决这个问题,一个比较直接的想法是使用一个凸且光滑的函数 fu(x)f_u(x)fu(x)来近似这个函数。minx∈Xfu(x)\min\limit...
2020-04-17 23:19:01
379
2
原创 凸优化简介22
文章目录对偶原理(Duality Principle)对偶原理(Duality Principle)在最优化理论中,对偶性可以从两个方面来看:1. 对偶问题的解决方案提供了最小化问题的一个下界;2. 通常,最小化问题与对偶问题的最优值不一定相等,这种差异称为duality gap。例如一个线性规划的例子,给定 c∈Rn,A∈Rm×n,b∈Rm,h∈Rrc\in \mathbb{R}^n, A...
2020-04-17 20:34:10
172
原创 凸优化简介21
文章目录近似方法1. 近似操作2. 近似梯度方法近似方法1. 近似操作凸函数hhh的近似操作也称为近似映射(proximal mapping)定义为 proxh(x)=arg minu(h(u)+12∥u−x∥22)prox_h(x)=\argmin\limits_{u}\left(h(u)+\frac{1}{2}\|u-x\|^2_2\right)proxh(x)=uargmin(...
2020-04-17 16:32:14
790
原创 凸优化简介20
文章目录Mirror DescentMirror Descent在凸优化简介19 中,次梯度下降的收敛率为 fk∗−f∗≤MRN+1f^*_k-f^*\leq \frac{MR}{\sqrt{N+1}}fk∗−f∗≤N+1MR。该收敛率是和维度无关的。定义:设 ψ:Ω→R\psi:\Omega\rightarrow \mathbb{R}ψ:Ω→R是严格闭凸且连续可微的函数,那么 Br...
2020-04-02 22:53:01
330
原创 凸优化简介18
文章目录次梯度(subgradient)1. 基本概念次梯度(subgradient)1. 基本概念定义:设函数 fff是一个凸函数,一个向量 ggg称为函数 fff在点 x0∈domfx_0\in dom fx0∈domf的一个次梯度,如果对于任意的 x∈domfx\in dom fx∈domf,有 f(x)≥f(x0)+⟨g,x−x0⟩f(x)\geq f(x_0)+\langle...
2020-03-31 17:23:37
692
原创 凸优化简介17
文章目录凸函数的一些性质凸函数的一些性质引理:设函数 fff是凸的,且 x0∈int(domf)x_0\in int(dom f)x0∈int(domf),那么,在x0x_0x0点上,函数 fff是局部有上界的证明:设 ϵ>0\epsilon > 0ϵ>0,满足 x0±ϵei∈int(domf),i=1,…,nx_0\pm \epsilon e_i\in int(d...
2020-03-27 23:04:54
864
原创 凸优化简介16
文章目录凸函数与不变操作(Invariant Operations)凸函数与不变操作(Invariant Operations)对于一般的凸函数的最小化问题:minf0(x)s.t. fi(x)≤0,i=1,…mx∈Q⊆Rn\min f_0(x)\\s.t.\ \ f_i(x)\leq 0, i=1,\dots m\\x\in Q \subseteq \math...
2020-03-26 21:26:03
233
原创 凸优化简介15
文章目录条件梯度下降条件梯度下降条件梯度下降法,即 Frank-Wolfe算法用来解决非线性约束问题的优化的。该算法的优势在于需要较少的内存以及在迭代中不需要用到投影方法。在算法中,给定一个初始点 x0x_0x0,构建一个估计序列 x1,x2…x_1,x_2\dotsx1,x2…,并最终收敛在问题的最优解。下面是该算法的一般描述:输入 x0x_0x0, tolerance δ>...
2020-03-26 10:47:02
393
原创 凸优化简介14
文章目录梯度映射 (Gradient Mapping)梯度映射 (Gradient Mapping)在有约束的最小化问题中,目标函数的梯度应该使用不同于无约束的处理方法。对于有约束的最小化问题,可以引入一个目标。定义:设 γ>0\gamma > 0γ>0,记 xQ(x~;γ)=arg minx∈Q[f(x~)+⟨∇f(x~),x−x~⟩+γ2∥x−x~∥2]x_Q(\w...
2020-03-24 23:26:02
426
原创 凸优化简介13
文章目录凸集凸集根据 凸优化简介9中凸函数的定义:f(ax+(1−a)y)≤af(x)+(1−a)f(y),∀x,y∈Rn,a∈[0,1]f(ax+(1-a)y)\leq af(x)+(1-a)f(y), \forall x,y \in \mathbb{R}^n, a\in [0,1]f(ax+(1−a)y)≤af(x)+(1−a)f(y),∀x,y∈Rn,a∈[0,1]。因此,在某个段 [x...
2020-03-24 14:11:49
617
原创 凸优化简介12
文章目录梯度下降加速理论分析梯度下降加速理论分析针对凸优化简介11 中最后的算法过程,下面分析λk\lambda_kλk趋向于0的速度。定理:如果 γ0≥μ\gamma_0\geq \muγ0≥μ, 那么 λk≤min{(1−μL)2,4L(2L+kγ0)2}\lambda_k\leq \min\{(1-\sqrt{\frac{\mu}{L}})^2, \frac{4L}{(2\sq...
2020-03-24 10:49:12
319
原创 凸优化简介11
文章目录梯度下降加速梯度下降加速考虑一个无约束的最小化问题:minx∈RNf(x)\min\limits_{x\in \mathbb{R}^N}f(x)x∈RNminf(x),其中函数 fff是强凸的:f∈Fμ,L1,1(Rn),μ≥0f\in \mathfrak{F}_{\mu,L}^{1,1}(\mathbb{R}^n), \mu \geq 0f∈Fμ,L1,1(Rn),μ≥0,并且...
2020-03-23 17:29:04
234
原创 凸优化简介10
文章目录光滑函数和强凸函数1. FL1,1(Rn)\mathfrak{F}_L^{1,1}(\mathbb{R}^n)FL1,1(Rn)类函数2. FL2,1(R2)\mathfrak{F}_{L}^{2,1}(\mathbb{R}^2)FL2,1(R2)类函数3. 强凸函数光滑函数和强凸函数1. FL1,1(Rn)\mathfrak{F}_L^{1,1}(\mathbb{R}^n)FL1...
2020-03-22 19:10:39
686
原创 凸优化简介9
文章目录凸函数的定义与性质凸函数的定义与性质假设一个无约束的最小化问题,目标函数 f(x)f(x)f(x)是光滑的,目标是 minx∈Rnf(x)\min\limits_{x\in \mathbb{R}^n}f(x)x∈Rnminf(x)。不过,在解这类问题时,使用一阶优化的方法(例如梯度下降方法)很容易收敛在某个类似鞍点的地方。在下面的分析中,假设 :对于任意的函数 fff,一阶优化对...
2020-03-22 14:10:05
958
原创 凸优化简介8
文章目录有约束的最小化1. 问题的基本定义2. 拉格朗日松弛有约束的最小化1. 问题的基本定义有约束的最小化问题,可以描述为如下的形式:minimize f0(x)s.t. fi(x)≤0,i=1,…,m\begin{aligned}&minimize \ \ f_0(x)\\&s.t.\ \ f_i(x)\leq 0, ...
2020-03-21 22:58:49
337
原创 凸优化简介7
文章目录共轭梯度共轭梯度在前面利用梯度的算法中,迭代步骤中 xkx_kxk都是由初始点 x0x_0x0以及梯度 ∇f(xi)\nabla f(x_i)∇f(xi)得到的。并且在凸优化简介6最后也提到了变度量方法的计算量较大。前面的方法是从完整的Rn\mathbb{R}^nRn空间中选取初始点开始迭代,那么是否可以在一个子空间内寻找解。在求解大规模稀疏线性方程组 Ax=b,A∈Rn×n...
2020-03-20 16:40:14
213
原创 凸优化简介6
文章目录牛顿法1. 牛顿法分析2. 不同收敛率的分析2.1 次线性收敛率2.2 线性收敛率2.3 二次收敛率3. 局部方法4. 变度量方法5. 总结牛顿法1. 牛顿法分析牛顿法是寻找单变量函数根的方法。设函数 f(t):R→R,f(t∗)=0f(t): R \rightarrow R, f(t^*)=0f(t):R→R,f(t∗)=0。牛顿法基于线性逼近,假定有和t∗t^*t∗足够接近的tt...
2020-03-19 16:56:02
422
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人