【发布时间】:2014-11-11 13:44:05
【问题描述】:
可能是我在这里想得很大声,但是如何按照以下条件在不同的计算机上运行一个简单的 java 程序(没有其他依赖项)(不需要并行处理):
- 我有一组数据。假设数据在
.txt文件中。 - 我还有一个简单的 java 程序(见下文),它使用这些数据作为输入。
- 现在我有 10 台计算机。我们称它们为节点。
- 我必须在每个节点上运行 java 程序(节点彼此独立)并从每个节点取回输出并保存
进入另一个
txt。假设output.txt。这可能就像减少映射减少技术的一部分。
这是我的想法:
- 将数据分成小的
.txt(s)。我已经这样做了 - 通过将 Java 程序解压到
.jar中,在每个节点上安装它。已经这样做了
现在我接下来要做什么才能实现它?我是并行处理和 MPI 的新手。只是需要一些指导。
感谢您提前提供的帮助:)
这里是 Java 程序:
import java.io.*;
public class CopyFile {
public static void main(String args[]) throws IOException {
FileInputStream in = null;
FileOutputStream out = null;
try {
in = new FileInputStream("input.txt");
out = new FileOutputStream("output.txt");
int c;
while ((c = in.read()) != -1) {
// want to do some computation. Let's say finding prime number
}
} finally {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
}
}
}
【问题讨论】:
-
为什么是负面的?需要反馈..
-
你刚才描述的听起来很像并行处理......也不清楚你在问什么,请修改和澄清
-
@MuhammadHijazi FYI 这不是并行处理。当我已经提到“不需要并行处理”时,你怎么能想到它。另外,我正在从每个节点收集数据。所有节点相互独立。请在投票之前仔细阅读它,先生!在并行处理中,所有节点将相互连接
-
并行处理不一定需要一台计算机运行多个进程,它可以通过网络完成。您所描述的是获取一堆数据,将其发送到(用您自己的话)一堆节点,让这些节点并行处理该数据,然后返回一个输出。那就是并行编程。我也没有否决你的问题,那是其他人,所以请放松,我只是想帮忙。
-
为了确保我理解,您想要获取数据,将其拆分,并由多个节点处理,然后将处理后的数据返回到要重新组合/处理/输出的基节点,对吗?
标签: java parallel-processing mapreduce distributed-computing