这个策略是并行计算还是分布式计算?初级产业部
Is this strategy a Parallel computing or Distributed Computing? MPI
我有一个计算适应度值的函数,比如说func()
。在我的实现中,我使用 MPI 进行并行化。
MPI集群中有3台机器通过局域网连接。这些机器安装有 NFS 协议。这些机器之间不共享内存。
主 while 循环运行 500 次。
在此 while 循环中,我使用 MPI 并行化 9 个 func()
调用。意思是,在主 while 循环中调用了 9 次 func()
,我以一种方式并行化了 3 个节点中的每个节点调用 3 个 func()
调用并将结果 return 传递给主节点。
MPI Workflow diagram - please refer to this diagram
What Happens Inside each node please refer this diagram
这在 while 循环中持续了 500 次。 (意思是,在每个下一个循环中,9 func()
次调用是并行的)
这个策略叫并行计算还是分布式计算?
考虑到定义,并行计算是将多个任务并行化,而分布式计算是将单个任务分布在具有共同目标的多个节点上。我感觉是并行计算。
但是,我这里是在不同的机器上执行,所以我应该认为它是分布式计算吗?
请解开这个疑惑。
如果用分布式计算解决一个单题,那么也是并行计算.您正在使用多台计算机(或处理器)来解决满足并行计算的简单定义。
Parallel computing uses two or more processors (cores, computers) in
combination to solve a single problem.
但是,并不是所有的并行计算都是分布式的。您可以使用共享内存(使用 OpenMP 等编程模型)执行并行任务来解决问题,而您只使用一台计算机。
个人意见:可以使用MPI通过共享内存解决问题,也可以在单台计算机上解决(不使用共享内存),但它仍然是并行计算(广义上的分布式计算,应该是多台计算机来解决)使其成为分布式计算,即使 MPI 有自己的内存 space 并使用消息传递)
A distributed computer system consists of multiple software components
that are on multiple computers, but run as a single system.
在您的情况下,它既是分布式的又是并行的。正如 Gilles Gouaillardet 在评论中指出的那样:
Your program is MPI, so it is both parallel (several tasks collaborate
to achieve a goal) and distributed (each task has its own memory
space, and communicate with other tasks via message - e.g. no shared
memory)
我有一个计算适应度值的函数,比如说func()
。在我的实现中,我使用 MPI 进行并行化。
MPI集群中有3台机器通过局域网连接。这些机器安装有 NFS 协议。这些机器之间不共享内存。
主 while 循环运行 500 次。
在此 while 循环中,我使用 MPI 并行化 9 个 func()
调用。意思是,在主 while 循环中调用了 9 次 func()
,我以一种方式并行化了 3 个节点中的每个节点调用 3 个 func()
调用并将结果 return 传递给主节点。
MPI Workflow diagram - please refer to this diagram
What Happens Inside each node please refer this diagram
这在 while 循环中持续了 500 次。 (意思是,在每个下一个循环中,9 func()
次调用是并行的)
这个策略叫并行计算还是分布式计算?
考虑到定义,并行计算是将多个任务并行化,而分布式计算是将单个任务分布在具有共同目标的多个节点上。我感觉是并行计算。
但是,我这里是在不同的机器上执行,所以我应该认为它是分布式计算吗?
请解开这个疑惑。
如果用分布式计算解决一个单题,那么也是并行计算.您正在使用多台计算机(或处理器)来解决满足并行计算的简单定义。
Parallel computing uses two or more processors (cores, computers) in combination to solve a single problem.
但是,并不是所有的并行计算都是分布式的。您可以使用共享内存(使用 OpenMP 等编程模型)执行并行任务来解决问题,而您只使用一台计算机。
个人意见:可以使用MPI通过共享内存解决问题,也可以在单台计算机上解决(不使用共享内存),但它仍然是并行计算(广义上的分布式计算,应该是多台计算机来解决)使其成为分布式计算,即使 MPI 有自己的内存 space 并使用消息传递)
A distributed computer system consists of multiple software components that are on multiple computers, but run as a single system.
在您的情况下,它既是分布式的又是并行的。正如 Gilles Gouaillardet 在评论中指出的那样:
Your program is MPI, so it is both parallel (several tasks collaborate to achieve a goal) and distributed (each task has its own memory space, and communicate with other tasks via message - e.g. no shared memory)