中科大并行计算-结构->算法->程序
2.2串行算法并行化
2.2.1 PRAM-CRCW model
<1> 因为是共享内存,所以root被赋予了n个值,但不知道哪个被写进去了(模型的特性),所以需要(1.2)的读取操作;
<2>如果Ai小于root 放在左边
如果Ai大于root 放在右边
<3>问题:如果不是同时写,是同时读,应该怎么修改?
2.2.2 SIMD-CC model
每对顶点间的最短路径—基于矩阵乘法的动态规划算法
图的一些基本知识(连通图、连通分量、最小生成树等知识的基本介绍)-CSDN博客
图算法——求最短路径(Floyd算法)_floyd算法求最短路径问题-CSDN博客
并行程序设计导论(主要设计程序)
1.为什么不同的程序可以使用相同的虚拟地址?
比如虚拟地址是1、2、3、4、5,程序1 的映射方式是×2,程序2的映射方式是×3
不同的程序之间可以使用相同的虚拟地址的原因在于,每个程序都有自己的地址空间,这个地址空间是相互隔离的。每个程序在其虚拟地址空间中都有自己的一套地址映射规则,将虚拟地址映射到实际的物理地址。
在多任务操作系统中,多个程序可以同时运行,每个程序都认为它是独占整个系统的,即它有自己的虚拟地址空间。这种隔离使得不同的程序可以使用相同的虚拟地址而不会相互干扰,因为它们的虚拟地址空间是独立的。
2.MPI:定义了一个可以由C++、C、Fortran程序调用的函数库,不是一种新的语言
通信函数:统称集合通信
①mpicc是C语言编译器的包装脚本(wrapper script),包装脚本的主要目的是运行程序;
②所有 MPI定义的标识符都由字符串 MPI_开始。下划线后的第个字母大写,表示函数名和 MPI定义的类型。MPI定义的宏和常量的所有字母都是大写的,这样可以区分什么是 MPI 定义的,什么是用户程序定义的。