问题标签 [mpj-express]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
26 浏览

java - 执行时打开多个 JFrame

我有一个在 Java Swing 中实现 MPJ-Express 的任务,不幸的是它进展不顺利。执行代码时,我不断收到多个 JFrame。我使用了 OOP 概念。现在我只是使用一个简单的 JFrame 来显示一个按钮,当我单击该按钮时,它应该给我进程的等级和大小。

我已经尝试了一切,但一切都在从顺序编程到 OOP 的风向标中。我确实尝试过一件事,当排名为 0 时它显示 1 个 JFrame 但是当我单击按钮时,我每次只得到排名 0,我希望显示所有排名。

设进程数为 3
Rank:0
Size:3
Rank:2
Size:3
Rank:1
Size:3
Not:
Rank:0
Size:3

我希望显示所有等级。

0 投票
2 回答
667 浏览

java - 有没有办法按升序和降序对Mpi中的排名进行排序

我正在尝试按排名的升序和降序显示 Hello World 消息

我读到了双音排序,但不明白如何实现它,

我从这个编码中得到了输出,但没有通过排序来输出它,我真的需要帮助,因为我对 mpi 的东西还是新手

0 投票
1 回答
114 浏览

java - 在java中的main之外初始化MPI

我试图在 java 中创建一个分布式 MPI 类,它将为我做一些计算。不幸的是, MPI.Init 似乎需要主类中的 argv,argc。有没有办法在这个类中初始化 MPI?

0 投票
0 回答
80 浏览

java - 是否可以将对象数组或其他数据类型传递给 MPI.COMM_WORLD.Scatter?

我正在研究文档,但我仍然不知道如何使用除ints 数组之外的其他数据类型。除了整数数组之外,还有其他方法可以发送数据吗?如果我只使用整数数组,则以下代码可以正常工作。我尝试替换MPI.INT为,MPI.OBJECT但效果不佳。这是一个将一些数据发送到除 root 之外的所有 proc 的示例。

1)尝试发送Object[] arr = new Object[1];,但效果不佳

0 投票
1 回答
55 浏览

java - MIP 中的来回通信是如何建立的?

例如,我有一个根进程,它发送一些计算以由工作进程完成。但是因为我的 ( 4) 进程有限,所以我必须将工作量分担给所有进程,所以我发送了多次。我发现的解决方法是这样的:

现在问题出现了,我想将已完成处理的数据发送回根进程,但我不能做另一个while(true);。我确信必须有一种更优雅的方式来实现这一点。

编辑1:我想发送到根进程的原因是因为它更干净。但是,或者我可以只打印来自工作进程的计算解决方案,但由于交错,输出全部被破坏。print将方法声明为synchronized无效。

0 投票
0 回答
143 浏览

java - 使用 Scatter 和 Gather 方法的基于 MPI 的两个整数数组乘法

我正在为使用 Scatter 和 Gather 方法的基于 MPI 的矩阵乘法实施以下教程(使用 Mpi_Scatter 和 Mpi_Gather的矩阵乘法)。但是,我需要在 java 编程中使用相同的分散和聚集方法将两个整数数组 (1D) 相乘。这是我编辑的代码

0 投票
1 回答
47 浏览

mpi - MPI.COMM_WORLD.Gather 中的 sendcount 和 recvcount 中的长度是如何确定的

因此,在我将数据(clusters[10][5] 2d array)Bcast 到每个其他进程之后,然后当每个进程计算其新的本地值时,我想将它们发送回进程 0。
但有时会丢失一些数据(取决于集群的数量)或数据不等于我在发送过程中拥有的数据。我不知道为什么,但是 recvcount 和 recvcount 的最大值需要除以大小或某个因子,它们不能是数组大小(10 或 10*5 - 元素数)。如果我把它的全尺寸,例如 cluster.lenght(10) 它说 indexoutofbounce 19 如果我运行更多的进程(mpjrun.bat -np 11 name)更高的索引出现在 outofbounce 并且它总是上升或下降 2更高/更低的编号 进程数(例如,我使用 5 个进程并获得跳出 9,然后下一次运行使用 6 并获得 11)。

有人可以解释为什么 Gather 的计数与进程数有关,或者为什么它不能接受数组大小?

而且程序在数据计算正确后也没有结束,只有当我使用 1 个进程时它才会结束,否则它会退出循环,然后在终端上打印一些东西,然后我有 MPI.finalize 但什么也没有发生并且我有 Ctrl+c 来终止 bat 作业,所以我可以再次使用终端。

clusterget 变量设置为集群数*进程大小,以便它存储来自其他进程的所有新集群,这样我就可以在第一个进程中使用它们,所以问题不在 clusterget 变量中,或者可能是它?由于实际上没有任何关于通过 2d 浮点数组发送的记录(是的,我需要使用 MPI.OBJECT,因为如果我使用浮点,java 不喜欢浮点,它说浮点不能转换为浮点)。

总结:每个进程的数据与收集后收集的数据不同,我无法将二维浮点数组的完整大小放入其中。

0 投票
0 回答
15 浏览

java - 有没有办法使用 MPJ 发送地图数据结构

基本上我正在尝试使用 MPJ express 发送哈希图。我无法找到许多使用 MPJ 发送和接收字典类型的有用示例。

使用HashMap<String, Integer> frequencies = extract(rBuf); MPI.COMM_WORLD.Send(frequencies,0,1,MPI.OBJECT,0,1);

给出“ClassCastException”。

0 投票
1 回答
33 浏览

java - 在 MPJ Express 集群模式下无法增加 Java 堆空间

我使用 5 个节点执行我的程序,每个节点配备 6 核处理器和 8GB RAM。我将 process = 5 设置为每个节点将处理 1 个进程。在某些使用更多数据的情况下,我收到错误“java.lang.OutOfMemoryError: Java Heap Space”。我试图通过添加“-Xmx2g”来增加堆,但它显示“无法保留足够的空间”。这没有任何意义,因为我在每个节点中都有足够的 RAM。我只能将它设置为 <= 1GB,但我的程序需要的还不止这些。有人知道如何解决这个问题吗?(请注意,在多核模式下,增加堆空间是有效的) 不能增加堆空间

0 投票
0 回答
19 浏览

java - 在 Linux 集群上运行 MPJBOOT 时出现 java.net.ConnectException

我按照页面http://mpjexpress.org/docs/guides/linuxguide.pdf上的步骤操作,我可以在所有机器上启动守护进程。如果我只是在单个服务器上运行程序,它会成功运行

[ip1,master] MPJ Daemon started successfully with process id: xxx

[ip2,node] MPJ Daemon started successfully with process id: xxx

但是当我使用 command 时mpjrun.sh -np 2 -dev niodev HelloWorld,它显示java.net.ConnectException: Connection refusedand Multi-threaded starter: exceptionnull,但我可以成功Ping这个 IP。

有什么问题吗?感谢您的意见。