gpt4 book ai didi

multithreading - Matlab并行编程

转载 作者:行者123 更新时间:2023-12-03 12:52:24 26 4
gpt4 key购买 nike

首先,对通用标题以及可能的通用问题表示抱歉。

我面临一个难题,我一直都在c++中工作,现在我正尝试做与我以前的项目非常相似的事情,这是并行化用matlab编写的单目标对象跟踪器,以便分配给每个对象并发线程处理一个对象,然后在每一帧收集结果。在c++中,我使用了增强线程API来做到这一点,并且效果很好。在Matlab中可能吗?到处阅读我发现它还不清楚,我阅读了很多有关parfor循环的内容,但仅此而已?我是否可以施加类似于boost::barrier的同步障碍,以便在每个帧之后停止每个线程并在进入下一帧之前等待其他线程?

基本上,我希望初始化一些通用的数据结构,然后启动跟踪器的几个并行实例,该实例共享一些数据并采用不同的对象作为输入进行跟踪。任何建议将不胜感激!

最佳答案

parfor只是Parallel Computing Toolbox提供的一项功能。这是最简单的方法,大多数人发现它最直接的有用,这可能就是为什么您的研究发现的大多数资源都仅对此进行了讨论。
parfor提供了一种非常简单地并行化“令人尴尬的并行”任务的方法,换句话说,这些任务是独立的并且不需要它们之间的任何通信(例如,参数扫描或蒙特卡洛分析)。

听起来那不是您所需要的。从您的问题来看,我不确定您到底需要什么。但是由于您提到同步,障碍以及等待一项任务完成才完成另一项任务,因此建议您了解一下Parallel Computing Toolbox的功能,例如labSendlabReceivelabBarrierspmd,这些功能可让您实现更多的消息传递并行化样式。工具箱中的功能比parfor还要多。

另外-不要害怕向MathWorks寻求建议,有一些(免费的)录制的网络研讨会和关于此类并行化的教程,他们可以为您提供指导。

希望能有所帮助!

关于multithreading - Matlab并行编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23056774/

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