我有主人和工人并行计算。
如何总结他们的结果?
每个工人完成工作后,他自杀,'res'变量没有价值,因此无法将其累积到任何变量。
if (cluster.isMaster) {
for (var i = 0; i < numCPUs; i++) {
const worker = cluster.fork();
worker.send({ mydata: array[i] });
}
} else {
process.on('message', (msg) => {
res = AnyFunction(msg.mydata, dx, f);
console.log('Result of ' + pid + ' worker: ' + res);
process.exit();
});
}
有什么办法吗?
答案 0 :(得分:0)
尝试以下方法:
if (cluster.isMaster) {
for (var i = 0; i < numCPUs; i++) {
const worker = cluster.fork();
worker.send({ mydata: array[i] });
let sum = 0;
worker.on('message', res => sum+=res);
}
} else {
process.on('message', (msg) => {
res = AnyFunction(msg.mydata, dx, f);
console.log('Result of ' + pid + ' worker: ' + res);
process.send(res);
process.exit();
});
}