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