gpt4 book ai didi

java - MPJ Java 多核配置还是共享内存?

转载 作者:行者123 更新时间:2023-12-01 12:09:12 25 4
gpt4 key购买 nike

我正在使用 MPJ Express 开展项目。我在这里读到: http://www.researchgate.net/profile/Bryan_Carpenter/publication/221302919_Multicore-enabling_the_MPJ_express_messaging_library/links/02bfe510be4ddbd5d0000000

对于这样一段代码:

import mpi.MPI;

public class NumberOfProcesses {

static int sharedVar = 0;

public static void main(String[] args) throws Exception{

MPI.Init(args);
int rank = MPI.COMM_WORLD.Rank();
sharedVar++;
System.out.println("Proc <"+rank+">: sharedVar = <"+sharedVar+">");
MPI.Finalize();
}
}



If we execute the code in the cluster configuration, we observe
the following output:
Proc <0>: sharedVar = <1>
Proc <1>: sharedVar = <1>
This is the correct and desired output. Here the HelloBug class
is executed by two MPJ processes in a SPMD fashion. Both of these
processes execute in a separate JVM and thus do not share the static
variable sharedVar—for this reason both processes increment the
variable first and print 1. This execution model is also depicted in
the Figure 10a.
On the other hand, when the code is executed in the multicore
configuration, the following output is observed:
Proc <0>: sharedVar = <1>
Proc <1>: sharedVar = <2>

我找不到任何方法在多核配置中运行该程序。尽管它似乎在多核配置中运行,但它总是在输出中给出这样的结果:

MPJ Express (0.43) is started in the multicore configuration
Proc <2>: sharedVar = <1>
Proc <1>: sharedVar = <1>
Proc <3>: sharedVar = <1>
Proc <0>: sharedVar = <1>

如何使这段代码在输出上给出这样的结果:MPJ Express (0.43) 在多核配置中启动

Proc <2>: sharedVar = <1>
Proc <1>: sharedVar = <2>
Proc <3>: sharedVar = <3>
Proc <0>: sharedVar = <4>

最佳答案

您在集群模式和多核模式这两种情况下提供的输出都是正确的。 MPJ Express 遵循 mpiJava 标准,即使通信进程位于同一台物理计算机上,该标准也使用消息传递强制进行通信。因此,在 MPJ Express 多核配置中,进程将使用共享内存机制进行消息传递,并且进程之间不能共享任何内容。想象一下,在同一节点上启动 x 个 (np=x) 个 java 进程,并且这些进程不能共享彼此的变量(静态或非静态)。如果您想在这些java进程中共享某些变量或数据,那么唯一的选择就是使用消息传递进行通信

多核配置和共享内存是彼此的同义词,现实情况是,在多核配置中,进程之间的通信是通过共享内存完成的,而不是为了获得更好的带宽而使用网络接口(interface)卡(NIC)。

关于java - MPJ Java 多核配置还是共享内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27368097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com