算法与并行计算常规

利用并行计算机实现软件和硬件上的并行算法的主要步骤和层次

  • 第5层是指应用层,在这一层里描述的是需要并行计算平台实现的应用和问题。对应所需的输入和输出的格式也在这层进行定义。某些输入和输出(I/O)接口的描述还需要考虑数据存储的位置和时间的相关性。这一层的结果会被更低一层采纳以便指导并行算法的开发工作。
  • 第4层是算法开发层,这里需要考虑到应用在问题中的实现。需要应用实现的计算内容决定了算法的具体任务和任务之间的相互依赖关系。在这一阶段的程序,算法的并行性并不一定会显现出来,因为在探索算法子任务执行的时候仍然在运用传统的线性思考。在这一阶段,也不需要考虑子任务的时间调度和处理器分配的问题。可能在这阶段就将这些问题解决的做法看起来很诱人,但是这样做会适得其反,因为这会掩盖程序中潜在的并行性。该层的结果是一个依赖图,或是一个有向图,或者是一个概括了任务之间依赖关系的邻接矩阵。
  • 第3层是并行化层,在这一层将试着释放算法中潜在的并行性。这一层接收了第4层对算法的描述并且给出了基于软件实现的线程时间调度和处理器分配。另一种选择是在这一层进行基于超大规模集成电路的硬件实现的任务调度和处理器分配。
  • 第2层是代码层,在本层中并行算法用高级语言表示为代码。使用何种语言取决于目标并行计算在何种平台执行。
  • 第1层的目标是算法的实现,或是在并行计算机平台的应用。实现的途径可以是在并行计算平台上使用多线程,也可以是在特定用途集成电路(ASIC)上或者现场可编程门阵列(FPGA)上使用特定的应用并行处理系统。

猜你喜欢

转载自www.cnblogs.com/zhangzefei/p/9983639.html
今日推荐