在Octave中为CPU绘制更多功率

时间:2012-12-21 03:35:45

标签: plot cpu gnuplot octave time-complexity

我在Octave中创建了这个函数,用于绘制分形图。现在,绘制我计算的所有点需要很长时间。我已经让我的功能尽可能高效,我认为我可以让它更快地绘制的唯一方法是让我的CPU完全专注于该功能或告诉它它应该专注于我的情节。

有没有办法可以做到这一点,还是这个极限呢?

1 个答案:

答案 0 :(得分:1)

要确定绘图消耗多少CPU,运行绘图,并在单独的窗口中(假设您在Linux / Unix上),运行top命令。 (对于Windows,启动任务主机并切换到'进程'选项卡,单击CPU标题以按CPU排序。)

(问题标签上Octave的翻转描述表明,Octave是一种脚本语言。我希望它可以调用gnuplot来创建绘图。将其视为最高CPU消费者。

您应该会看到Octave / gnuplot cmd位于列表顶部附近,top标有%CPU(或类似)列。这将显示该进程消耗的CPU数量。

我希望看到该进程消耗95%或更多的CPU。如果您看到数字明显较低,那么您需要检查下面的流程,它们是否正在消耗剩余的CPU(某种病毒扫描(在PC上)或数据库或服务器?)?如果竞争程序是问题所在,那么你必须决定是否可以等到它/它们完成,或者你可以杀死它们并在以后重新启动。 (对于lunix,请使用kill -15 pidkill -11 pid。仅使用kill -9 pid作为最后的手段。在此搜索有关尝试kill -$n的正确顺序的文章

如果没有竞争流程并且octave/gnuplot使用的流程少于95%,那么您必须找到备用工具来查看阻碍流程的因素。 (这不太可能,您的整个绘图过程的某些部分可能是磁盘I / O或网络I / O限制)。

因此,这取决于您目前遇到的时间表与您“想要”体验的时间。

您的系统是否有多个CPU?然后,您需要研究octave/gnuplot文档以查看它是否支持切换以指示“使用$ n可用CPU进行处理”。 (或者找一个支持使用$ n多个CPU的绘图程序。)

实际上,如果您的流程现在需要10分钟,并且您可以通过消除竞争流程,从60%增加到90%,即CPU增加50%,但只会减少到5分钟(不确定) ,也许更少,数学我的强点;-))。能够将任务分成5-10- ?? CPU将是实现更快周转时间的最佳途径。

因此,为了更进一步,您需要使用一些数据点编辑您的问题。你的情节需要多长时间?它正在处理的文件有多大。对于你正在进行的策划,是否存在特别重要的数学问题?预处理数据文件可以加快计算速度吗?此外,如果top的结果未显示运行在99%CPU的gnuplot,则编辑您的发布以显示top输出,以帮助我们了解您的问题。 (粘贴到top输出中,用鼠标选择它,然后使用输入框顶部的格式化工具{}来保留格式并避免在发布中包含输出。

IHTH。

P.S。请注意您通过滚动分配给您的问题的每个标记的关注者数量。通过为您正在使用的操作系统添加标签,以及与性能测量/测试相关的标签,您可能会在问题上获得更多有用的“眼睛”(转到标签选项卡并键入各种术语以查看您有多少关注者'一点点的礼仪是只指定1种编程语言(如果适用),也可能适用于操作系统。)