使用具有多台计算机的任务并行库
有没有办法在多计算机场景中使用任务并行库?
我的意思是,如果我有大量的任务,我可以通过LAN在多个服务器上安排它吗?
TPL面向单计算机,多处理器核心场景。
如果要跨多个系统工作,则需要使用某种类型的群集软件,例如MPI (可通过MPI.NET直接在.NET中使用)或基于Windows HPC的众多选项之一。
话虽这么说,TPL对集群的每个节点都非常有用。 它可用于使每个群集节点在该节点上可用的核心上很好地扩展。
没有TPL关注进程中的本地线程。 然而,现有的项目确实可以解决这个问题。
http://research.microsoft.com/en-us/projects/dryad/
你可以看看这个SO问题的答案
.NET的任何良好的分布式代理/服务模型?
TPL的默认设置是在.NET线程池上安排任务,因此这是针对单个进程内的并行性。 但是,您可以实现自己的TaskScheduler,它可以处理任务实际运行的方式,因此至少在理论上您可以超越当前范围。 虽然可以做到这一点,但我确信Reed Copsey和Chris Taylor指出有更好的选择。