0412_整理并行分布计算课程笔记

4.3

  1. 实现并行计算具备的条件:
    (1)多个物理处理单元,否则只能实现逻辑上的并行;
    (2)通信机制(网络与协议);
    (3)编程架构:多线程,多进程,协程;

  2. 进程与线程的概念:
    (1)程序是初始数据和指令的静态集合,进程是程序的一次动态运行。
    (2)操作系统是现将程序的指令和数据加载至内存,然后将内存的起始地址交给PC寄存器,然后将控制权释放给CPU;CPU先从PC寄存器开始执行,执行之后将下一条指令地址给PC寄存器;
    (3)线程是进程的组成基本单元,也是操作系统调度的最小单位,每个进程至少包含一个线程(称主线程);
    (4)进程间是独立的地址空间;无法通过共享存储来交换数据;通过消息方式通信;
    (5)线程间是共享地址空间;通过共享存储来交换数据;通过内存通信(加锁);
    注:共享内存操作是很危险的,需要通过锁的方式保护临界资源;

3.明确地址空间越界的原因,进行安全访问:
(1)访问不该访问的位置:逻辑上不该但实际上不会报错;访问了不能访问的位置,直接导致内存异常报错;
(2)全局变量和局部变量在地址空间内的组织方式是不同的:
堆(heap):全局变量和静态变量;
栈(satck):临时变量;其中会用沙箱机制保护函数返回;

  1. 进程间通信:
    (1)首先要明确“我是谁”:即自身进程编号;
    (2)其次要明确“还有谁”:即其他进程数量;
    (3)以“数值规格化”为例:
    输入:A组数据[x1:y1]; B组数据[x2:y2];
    输出:B组数据通过公式 (b-x2)*(y1-x1)/(y2-x2)+x1 线性转换至[x1:y1区间];
    求解:求的局部最值-->归一求得全局最值-->广播给各进程求得相应值-->归一整合;

4.10

  1. 合理分布数据使得进程间负载均衡:
    以“求质数个数”为例子:
    for(i=pidn;i=(pid+1)n;i++)分布会导致pid过大的进程计算数值过大而计算速度慢;
    for(i=pid; i=max; i=i+n)分布会导致某个进程的所有数都不是质数,但仍要判断计算;
  2. 加速比的概念;

你可能感兴趣的:(0412_整理并行分布计算课程笔记)