gpt4 book ai didi

.net - 如何使用 F# (.Net) 执行分布式计算

转载 作者:行者123 更新时间:2023-12-02 23:51:59 25 4
gpt4 key购买 nike

因此,我最近在 F# 中使用异步库获得了一点乐趣,尤其是 Async.Parallel 感到非常惊讶,它基本上采用一系列异步任务并将它们统一到一个异步任务下。

但是,现在我很好奇如何在多台计算机之间分配计算任务,例如我办公 table 上的两台笔记本电脑。

是否可以以某种方式序列化这些异步任务并将它们发送到另一台计算机,然后该计算机执行该任务并将结果发回?

或者也许我需要序列化数据本身并将其发送到另一台计算机,在另一台计算机上运行一些代码来执行计算并将结果发送回?

或者也许还有另一种简单的方法来做到这一点?

使用 .Net 在 F# 中进行分布式计算的一般方法是什么? (推荐设计模式、工具、库等)

我的最终目标是将大型计算任务拆分为较小的部分并在多台机器上运行它们。最好采用简单化的、非企业过于复杂的方式。

最佳答案

有一个项目叫MBrace这几乎完全符合你所描述的:-)。

它允许您使用 cloud block 编写云计算:

let first = cloud { return 15 }
let second = cloud { return 27 }

您可以像异步工作流程一样使用 let! 组合它们,也可以使用 Cloud.ofAsync 从异步工作流程创建它们。云计算可以使用Cloud.Parallel通过网络分布:

cloud {
let! results = [ first; second ] |> Cloud.Parallel
return List.sum results }

目前,有 MBrace 绑定(bind)用于在本地(用于测试)和 Azure 集群内部运行计算,但也有一些支持 Amazon 的工作正在进行中。

有关更多信息,请参阅 mbrace.io Mathias Brandewinder 在 crunching through big data with MBrace 上也发表了精彩的演讲。

关于.net - 如何使用 F# (.Net) 执行分布式计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34842291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com