Designning Parallel Algorithm

  • Foster’s methodology
  • Steps
    • Partitioning
    • Communication
    • Agglomeration
    • Mapping

Partitioning(分区)

  • Domain decomposition(按地方分)
    • Decompose the data associated with a problem
    • We divide these data into small pieces of approximately equal size if possible.
  • Functional decomposition(按功能分)
    • Divide the computation into disjoint tasks

Communication(通讯器)

  • Work out messages that are to be sent and received.
  • In domain decomposition problems, communication requirements can be difficult
    to determine.
  • In contrast, communication requirements in parallel algorithms obtained by functional decomposition are often straightforward.
    通讯器定义了一组能够互相发消息的进程。在这组进程中,每个进程会被分配一个序号,称作 秩(rank) ,进程间显性地通过指定秩来进行通信。

Agglomeration(聚集)

  • Combine tasks and communications identified in the first step into larger tasks.
    用已经确定的分区和通信进行合并。

Mapping(映射)

  • Assign the composite tasks identified in the previous step to processes/threads.
    将上一步中确定的复合任务分配给进程/线程。
  • This should be done so that the communication is minimised, and each processes/threads gets roughly the same amount of work.
  • Many algorithms developed using domain decomposition techniques feature a fixed number of equal-sized tasks and structured local and global communication. In such cases, an efficient mapping is straightforward.

Distributed Memory Programming with Message Passing

最后修改:2022 年 04 月 12 日
如果觉得我的文章对你有用,请随意赞赏