首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab是否可以对绘图和绘图中的交互使用多个处理器?

Matlab是否可以对绘图和绘图中的交互使用多个处理器?
EN

Stack Overflow用户
提问于 2012-07-09 22:58:40
回答 2查看 1.6K关注 0票数 2

我在我的研究实验室里分析肌电数据。其中一个步骤是计算数据集(大小为~80000)的连续小波变换。因此,我使用Matlab和小波工具箱和"cwt“来绘制3D比例图。

计算需要很多时间,而且像3D旋转这样的交互(这对于查看数据的不同方面非常重要)几乎是不可能的。

资源监视器显示我的六核处理器中只有一个在工作。我使用并行计算进行其他计算,还没有找到任何解决方案,甚至没有发现类似的问题。

我可以做些什么来激活对绘图的多核支持?

EN

回答 2

Stack Overflow用户

发布于 2012-07-10 22:31:02

我将冒险一个有经验的猜测和丰满的答案,你的问题是不,有什么我可以做的,以激活多核支持的情节?

Matlab当然可以使用多核来进行计算。它的许多内部函数已经是多线程的,并且将使用任何可用的核心,而程序员(或用户)不必采取任何特殊措施。对于您自己的计算,您可以使用并行计算工具箱。

但是,除非你有一些非常特殊的图形硬件(如果你有,为什么你不提呢?)您的显示器向您展示了当您与3D绘图交互时只使用一个处理器的原因--在屏幕和计算机硬件之间的某个地方存在一个瓶颈,通过该瓶颈,所有这些核心的输出都被压缩到一个比特流和字节流中进行表示。

你的经验与Matlab可视化例程的瓶颈是一致的,我认为可以从你提供的证据中得出结论,Mathworks没有多线程例程来计算当你旋转它时图中每个元素的新屏幕位置,或者任何其他继续将分析结果转换为图片的处理。如果他们真的将这些例程并行化,那将会转移瓶颈,但不会消除它。

要消除瓶颈,必须有一种方法让不同的Matlab线程分别处理屏幕的不同部分;我没有看到任何证据表明Matlab具有这种能力。Google会为你找到大量关于并行渲染的参考,但我没有看到Matlab目前实现了这方面的任何迹象。

为了回应你的评论,很遗憾,我不能对我的数据进行重采样,你应该注意,Matlab的可视化例程正在对你的数据进行重采样,除非你只可视化样本数量小于可用像素数的数据集。如果你想象一个有80000个样本的时间序列,在一个水平方向为2000像素的显示器上,必须给出一些东西。

如果你自己负责重采样,你可能会获得更好的图形性能和更好的理解。

票数 1
EN

Stack Overflow用户

发布于 2012-07-10 22:38:29

Matlab的绘图性能相当差,它更关注可定制性而不是性能。使用MEX运行一些原生C++代码来用OpenGL绘制数据可能要快得多。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11397687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档