Julia只占我CPU的20-30%。我该怎么办?

时间:2016-06-28 11:37:11

标签: optimization parallel-processing julia

我正在运行一个在Julia中进行数字ODE集成的程序。我正在运行Windows 10(64位),英特尔酷睿i7-4710MQ @ 2.50Ghz(8个逻辑处理器)。

我注意到当我的代码在julia上运行时,只有最多30%的CPU在使用中。进入parallelazation文档,我开始使用Julia: C:\Users\*****\AppData\Local\Julia-0.4.5\bin\julia.exe -p 8并期待看到改进。然而,我没有看到它们。

因此我的问题如下: 有没有一种特殊的方法我必须编写我的代码才能更有效地使用CPU?这可能是我的操作系统(Windows 10)造成的限制吗?

我使用以下命令在julia控制台中提交我的代码: include("C:\\Users\\****\\AppData\\Local\\Julia-0.4.5\\13. Fast Filesaving Format.jl")

在此代码中,我使用了一些额外的包: using ODE; using PyPlot; using JLD

我用Windows测量CPU使用率' "任务经理"。

1 个答案:

答案 0 :(得分:11)

-p 8的{​​{1}}选项启动8个工作进程,在BLAS和FFTW等库中禁用多线程,以便工作人员不会超额订阅系统 - 因为这会在均衡的分布式工作负载中杀死性能。如果您希望从julia中获得更快的速度,那么您需要在这些工作人员之间分配工作,例如通过让每个人进行独立计算,或通过-p 8进行计算。您不能只添加工作人员而不能更改程序。如果您正在使用BLAS(进行大量矩阵乘法)或FFTW(进行大量傅立叶变换),那么如果您使用SharedArrays标志,您将自动获得多线程来自这些图书馆。否则,Julia中没有(非实验性的)用户级线程。有实验性线程支持,版本1.0将支持线程,但除非你是专家,否则我不建议这样做。