基本知识 多个高性能处理器 。多处理器 可以集成在一块芯片 一对称多处理器的体系结构 上(下次课涉及) 通过共 享内存来 处理器 处理器 处理器 处理器 进行通信 一 级 一级 必须在 缓 缓 缓 缓存 处理器的 二 二级 二级 缓存中找 缓存 缓存 爱 缓存 到它操作 的大部分 总线 数据,以 保证性能 内存 17
• 多处理器 – 对称多处理器的体系结构 多个高性能处理器 可以集成在一块芯片 上(下次课涉及) 必须在 处理器的 缓存中找 到它操作 的大部分 数据,以 保证性能 基 本 知 识 二级 缓存 内存 总线 二级 缓存 二级 缓存 二级 缓存 一级 缓存 一级 缓存 一级 缓存 一级 缓存 通过共 处理器 处理器 处理器 处理器 享内存来 进行通信 17
基本知识 两类机器:非均匀内存访问的 ·多处理器 机器和消息传递的机器 分布式内存机器 为获得良好的性能,软件都必 须有很好局部性 在内存分 处理器 处理器 处理器 处理器 层中又引 入一层 》 缓 署 缓 著 处理器能 爱释 迅速访问 自己的局 薯 部内存 总线或其它互连 18
• 多处理器 – 分布式内存机器 两类机器:非均匀内存访问的 机器和消息传递的机器 为获得良好的性能,软件都必 须有很好局部性 基 本 知 识 总线或其它互连 二级 缓存 二级 缓存 二级 缓存 二级 缓存 一级 缓存 一级 缓存 一级 缓存 一级 缓存 处理器 处理器 处理器 处理器 局部 内存 局部 内存 局部 内存 局部 内存 在内存分 层中又引 入一层 处理器能 迅速访问 自己的局 部内存 18
循环级并行 ·并行计算的常见方式 任务并行:每个处理器执行不同的任务 -数据并行:把大任务分别成若干个相同的子任务 并行应用的性能衡量的两种标准 -并行覆盖:整个计算中并行执行部分的百分比 并行粒度:处理器上无需和其它处理器同步或通 信的计算量
• 并行计算的常见方式 – 任务并行:每个处理器执行不同的任务 – 数据并行:把大任务分别成若干个相同的子任务 • 并行应用的性能衡量的两种标准 – 并行覆盖:整个计算中并行执行部分的百分比 – 并行粒度:处理器上无需和其它处理器同步或通 信的计算量 循环级并行 19
循环级并行 循环级并行 耗时的应用一般都使用大数组,导致程序中出现 有许多次迭代的循环,每次迭代用于计算数组中 的一个元素。这些迭代经常相互独立,它们是并 行计算的主要来源 -可以把这类循环的大量迭代分到各处理器上 20
• 循环级并行 – 耗时的应用一般都使用大数组,导致程序中出现 有许多次迭代的循环,每次迭代用于计算数组中 的一个元素。这些迭代经常相互独立,它们是并 行计算的主要来源 – 可以把这类循环的大量迭代分到各处理器上 循环级并行 20
循环级并行 循环级并行 for(i=0;i<n;i++){/计算向量X和Y Z=X-Y];/对应元素差的平方 Z[=Z[]*Z[]; 该循环可并行执行,把它变换成如下代码。由各 处理器都执行这段代码来完成计算 b=ceil(n/M;∥M个处理器,p=0,1,,M-1 for (i=b*p;i<min(n,b*(p+1));i++){ Zi]=Xi-Yi: Z=Z[i*Z[]; }∥数据并行的例子 21
• 循环级并行 for (i = 0; i < n; i++) { //计算向量X和Y Z[i] = X[i] − Y[i]; //对应元素差的平方 Z[i] = Z[i] Z[i]; } 该循环可并行执行,把它变换成如下代码。由各 处理器都执行这段代码来完成计算 b = ceil (n/M); // M个处理器, p = 0, 1, …, M −1 for (i = bp; i < min(n, b(p+1)); i++) { Z[i] = X[i] − Y[i]; Z[i] = Z[i] Z[i]; } // 数据并行的例子 循环级并行 21