問題描述
Go 中的集群計算 (Cluster Computing in Go)
Is there a framework for cluster computing in Go? (I wish to bring together multiple PC's to for custom parallel computation, and wonder whether Go might be a suitable language to use).
參考解法
方法 1:
I don't know the level of connectedness you plan to have in your cluster, but go's RPC package makes communication among nodes trivial. It will likely serve as the backbone of your work and you can build abstractions on top of it (for instance if you need to multicast requests to different nodes). The examples given in the doc assume your nodes will communicate over HTTP, but that bit is abstracted out in net/rpc to allow different transports.
http://golang.org/pkg/net/rpc/
方法 2:
You can use Hadoop Streaming with Go. See (a bit dated) example here.
方法 3:
You should have a look at Go Circuit.
Quoting from the introduction:
The circuit reduces the human development and sustenance costs of complex massively-scaled systems nearly to the level of their single-process counterparts. ...
... and:
For isntance, we have been able to write large real-world cloud applications — e.g. streaming multi-stage MapReduce pipelines — in as many as 200 lines of code from the ground up.
Also, for some simpler use cases, you might want to check out Golem.
方法 4:
You can try to use https://github.com/bketelsen/skynet . This is service oriented framework based on doozer.
(by Alistair Collins、Kelly Norton、lazy1、Samuel Lampa、jurka)