并行度有哪些不同级别?
有不同级别的并行性,如下所示 -
指令级别- 在指令级别,一个粒度由少于 20 条指令组成,称为细粒度。这个级别的细粒度并行度可能从 2000 不等,具体取决于单个程序单指令流并行度大于 2,但指令级别的平均并行度在普通程序中很少超过 7。
对于科学应用程序,在理想化环境中并发执行的 Fortran 语句的平均并行范围为 500 到 300 条。
Loop Level - 它包含迭代循环操作。一个循环可能包含少于 500 条指令。一些循环独立操作可以被向量化以用于 SIMD 机器的流水线执行或查找步骤执行。
循环级并行是在并行或向量计算机上实现的最优化的程序生成。但是递归循环与并行化不同。向量处理主要通过向量化编译器在循环级别进行利用。
程序级别- 它在任务、程序、子程序级别与中等粒度进行通信。这个级别的Grain指令少于2000条。在此级别检测并行度比细粒度级别要困难得多。
与 MIMD 执行模型相比,通信义务要少得多。但是这里程序员需要付出很大的努力才能在这个级别重新组织程序。
子程序级别- 子程序级别与作业步骤和相关子程序进行通信。这里的粒度大小不到 1000 条指令。工作步骤可以在不同的工作中重叠。单处理器或多处理器的多道程序设计就是在这个级别进行的。
作业级别- 它对应于并行计算机上独立任务的并行执行。这里的粒度可以是数万条指令。它由程序加载器和操作框架管理。分时和共享空间的多处理器分析了这种级别的并行性。
以上是 并行度有哪些不同级别? 的全部内容, 来源链接: utcz.com/z/347596.html