scala – 使用Actors来开发核心
发布时间:2020-12-16 18:44:38 所属栏目:安全 来源:网络整理
导读:我是 Scala的新手,特别是Actors,我的问题是如此基本,我发现的在线资源并没有涵盖它. 我有一个CPU密集型,易于并行化的算法,将在n核机器上运行(我不知道n).如何在Actors中实现这一点,以便所有可用的内核解决问题? 我想到的第一种方法是简单地将问题分解成m个
我是
Scala的新手,特别是Actors,我的问题是如此基本,我发现的在线资源并没有涵盖它.
我有一个CPU密集型,易于并行化的算法,将在n核机器上运行(我不知道n).如何在Actors中实现这一点,以便所有可用的内核解决问题? 我想到的第一种方法是简单地将问题分解成m个部分(其中m是一些像10,000的中等数字)并创建m个Actors,每个部分一个,给每个Actor一个小部分,然后让它们去. 不知何故,这让我觉得效率低下.数以万计的演员只是闲逛,等待一些CPU爱,毫无意义地切换上下文…… 然后我想,制作一些数量较少的Actors,然后每一个都要喂几个.问题是,没有理由期望这些部分的大小相同,因此一个核心可能会陷入困境,其中许多任务仍然排队,而其他核心则处于空闲状态. 我和一位知道哪位演员忙碌的主管在一起,并最终意识到这必须是一个已解决的问题.必须有一个标准模式(甚至可能是标准库)来处理这个非常通用的问题.有什么建议? 解决方法
看看
Akka库,其中包括演员的实现.
Dispatchers Module为您提供了更多选项,可以限制演员到cpu线程(基于HawtDispatch的事件驱动)和/或平衡工作负载(基于工作窃取事件).
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |