假设我们有一个“本质上并行”的问题需要用 Erlang 软件来解决。我们有很多并行进程,每个进程都执行顺序代码(不是数字运算),并且我们向它们投入的 CPU 越多越好。
我听说过 CUDAbindings https://github.com/kevsmith/pteracuda对于 Erlang,但在观看 Kevin Smith 的演示后,我不确定这是否是解决方案:pteracuda 缓冲区的全部目的是将一个困难的数字处理任务分配给缓冲区并获取结果。不可能使用 GPU 的处理器来服务 Elrang 的进程。 (我对吗?)。
另一方面,多核 CPU 非常昂贵(8 核 CPU 起价为 300 美元)。因此,要构建一个 10 台机器的 Erlang 并行处理“集群”,您只需在 CPU 上花费至少 3000 美元。
所以,问题是:
什么样的经济实惠的 CPU 或 GPU 可以用来为并行 Erlang 软件构建“服务器集群”?
2009 年,乌普萨拉大学有一个名为 LOPEC 的学生项目就是为了实现这一目标,该项目与 Erlang Solutions(当时仍称为 Erlang Training & Consulting,简称 ETC)合作。
我在他们的最终项目报告中找不到任何幻灯片,但这是他们在 2009 年 Erlang 用户大会上展示的海报:http://www.it.uu.se/edu/course/homepage/projektDV/ht09/ETC_poster.pdf http://www.it.uu.se/edu/course/homepage/projektDV/ht09/ETC_poster.pdf
部分代码似乎还存在于此:https://github.com/burbas/LoPECv2 https://github.com/burbas/LoPECv2(用户 burbas 是学生之一),但奇怪的是不完整。您可以向 burbas 询问更多信息。
当然还有诺基亚的 Disco 项目:http://discoproject.org/ http://discoproject.org/
在这两种情况下,我认为您需要编写一个 C 或 Python 存根来在客户端上运行以与 GPU 对话(或者您可以在客户端上运行带有 CUDA 绑定的 Erlang);上述框架只是帮助您分配工作量并收集结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)