0%

2019年6月15日 下午5:32

2019

总结:

  1. 这些文章的角度其实都比较局限的,各自代表了一种角度。
  2. 这些角度的积累当成形成自己认识的基础。

2019年4月29日 下午7:41
理解矩阵:特征向量和特征值两种用途
PCA原理讲解
2019年3月31日 下午6:01
转:Viewing Matrices & Probability as Graphs
2019年3月30日 下午12:27
从历史发展的角度理解线性代数+微积分,及其关系
2019年3月16日 下午4:17
数学建模的方法和步骤
2019年3月12日 上午11:00
数学的本质作用
2019年3月11日 下午4:00
不同的数学模型

引用:

2019年3月11日 下午4:00
科研的小tip-部分内容是数学
数学上的推导类别

三维重建(点云)
特征向量:这部分已经是过时的了,可以看上面最新总结的
1. 图像处理之特征值和特征向量的意义
2. 如何理解矩阵特征值?
3. 矩阵特征值和椭圆长短轴的关系

旧:
数学是一种思考方式:数学与编程好文
浅谈物理公式中的意义:=代表着物理量之间的依赖关系
正确理解物理公式:物理意义!=数学意义
数学是我们思维科学化的工具
如何培养数学兴趣指出了数学中三个重要的能力

july数学:

MEL+MAP

第八课:凸优化进阶
第七课:凸优化简介
第四课:参数估计MLE

概率论:参数估计
机器学习的核心步骤
理解数学在ML中的使用
概率论:
复习18讲
概率(mindnote)
我提出的问题1:
前馈神经网络
微分学

2019年6月13日 下午9:21

总览并行计算的资料:没有强调MP和MPI等等
Introduction to Parallel Computing

MPI的一些小的疑惑点回答:

parallel processing - mpi: blocking vs non-blocking - Stack Overflow
c++ - Exchange Data Between MPI processes (halo) - Stack Overflow
Designing and Building Applications for Extreme Scale Systems

2019年6月13日 下午6:39

一个餐馆,有各个包间

  1. MP
    1. 大家在一个包间吃饭,大家看见的菜都是一样的
    2. 共享内存
    3. 处理的对象是:线程
  2. MPI
    1. 在不同包间吃饭的人,是不知道其他包间点的啥菜,更吃不着
    2. 如果想知道,必须让服务员去跑腿
    3. 独立内存
    4. 处理的对象是:process

2019年6月13日 下午2:07

  1. 这篇文章主要参考这个网站的教程,他没有涉及到上课讲到的advance topic内容,但是这些基本的用法对于新手来理解MPI是一个很好的教程
    A Comprehensive MPI Tutorial Resource · MPI Tutorial

  1. 同一个程序,执行时指定不同的-n,也就是process的个数,会有很大的区别
  2. MPI Send and Receive · MPI Tutorial
    1. 每个人都有自己的数据区域,MPI的核心就是send_recv ,其他的操作可由这两个操作自己写出来
    2. MPI 乒乓程序
    3. 环程序
  3. MPI 广播以及集体(collective)通信 · MPI Tutorial
    1. 集合通信:最关键是要有一个同时的起点,这个用barrier来实现
  4. MPI Scatter, Gather, and Allgather · MPI Tutorial
    1. 对于所有的collective 操作,Processor 0 是一个特殊的存在
    2. 使用MPI_Scatter和MPI_Gather来计算平均数
      1. 代码中如果没有通过if rand来指定那个process来执行或者没有MPI_API的地方,那么就是所有processor都会执行,也就是说:::在写代码的时候需要两种思考角度::
        1. 站在单个processor的角度,考虑这些processors的通用步骤
        2. 站在全局的角度,考虑这几个processor的统筹安排(这时往往要考虑使用barrier,collective 操作就默认使用barrier)
          1. 对于代码中同一个位置的同一个MPI的内置函数api,不同的进程会有不同给的执行方法。
    3. MPI_Allgather 以及修改后的平均程序
  5. ::串行控制的是一个人,并行是同一套规则控制的是多个人::。当然,可以通过if来指定让谁做。好的地方是:对于一个人来说,其实是依然串行执行的,不会翻来赴去,坏的地方是:他们之间执行的先后次序每次执行是不一样的,每次执行都不一样。所以,重点是,最起码我们要保证在自己代码的功能,和自己需要的功能在与先后次序是无关的,不需要完全与次序无关。这才是最难的地方。
  6. MPI Reduce and Allreduce · MPI Tutorial

  7. 关于一些先进的Topic lesson3MPI_3_Advanced_Topics.pdf
    1. 这里总体思想就是和计算机网络的思想有点像:将硬件层和上层的软件层分离,作为程序与我们可以忽略硬件的排列和规格,进行be "programmed" by the application developer.

2019年6月13日 下午1:30

1.1OpenMP知识点回顾

  1. OpenMP的目的是利用多线程进行加速,最重要的两个问题是:对什么进行拆解并行和并行完之后如何进行合并。在上面的样例中,对于求面积的问题,我们拆解的对象就是将大面积拆解为互不干扰的众多小面积,合并的对象就是这些小面积求和,对于Fibonacci问题,我们无法对于一个Fibonacci进行并行运行,但是可以让多个Fibonacci计算同时进行。
  2. 网站( https://computing.llnl.gov/tutorials/openMP/ )中介绍了OpenMP的发展史、基础编程模型、OpenMP的三个基本构成等重要问题,对于理解和使用OpenMP有重要的作用。

    1.2Fail sharing

  3. 网页( https://software.intel.com/en-us/articles/avoiding-and-identifying-false-sharing-among-threads ) 是intel的官网重点讲解了cache line的问题。本质来说就是由于cache的引入导致了数据的不唯一化,那么多数据时间的同步就会让并行的效率有所下降。解决方案就是使用线程的局部数组,_不再操作同一片内存区域,而不是不同的线程操作不同的区域_。正如代码中所描述的:Note that this program avoids the false sharing problem by storing partial sums into a private scalar.

2019年6月13日 下午1:27

2019年7月15日 上午10:40
GPU并行
从数组的角度整理一个MP\MPI\GPU
2019年7月4日 下午7:45
GPU内存模型
2019年6月25日 下午2:42
MP_MPI_GPU对比
2019年6月15日 下午3:52
MPI自己的总结
2019年6月13日 下午1:42
推荐的一些资料
MP和MPI之间的对比
OpenMP总结
2019年5月29日 下午9:44
fail sharing (cache line)
2019年5月24日 下午9:14
OpenMP教程

2019年6月6日 下午5:04
bounding box regression - CaffeCN深度学习社区
边框回归(Bounding Box Regression)详解 - 南有乔木NTU的博客 - CSDN博客

  1. ::学的是什么?::也就是motivation
    1. feature map平移差值、缩放比例之间的关系
    2. 不是:坐标之间的转化关系
      • 估计box坐标信息和正确box坐标之间的关系

这里面有一点需要理解