我正在运行一个在Julia中进行数字ODE集成的程序。我正在运行Windows 10(64位),具有Intel Core i7-4710MQ @ 2.50Ghz(8个逻辑处理器)。
我注意到,当我的代码在julia上运行时,最多仅使用30%的CPU。进入并行化文档,我使用以下方法启动了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使用率。
最佳答案
-p 8
的julia
选项启动8个工作进程,并禁用BLAS和FFTW之类的库中的多线程处理,以使工作人员不会超额订购系统上的物理线程-因为这会破坏均衡的分布式工作负载中的性能。如果您想提高-p 8
的速度,则需要在这些工作人员之间分配工作,例如通过让他们每个人都进行独立的计算,或者通过SharedArrays
进行协作来进行计算。您不能只是添加工作人员而不能更改程序。如果您正在使用BLAS(执行大量矩阵乘法)或FFTW(执行大量傅立叶变换),那么如果您不使用-p
标志,则会自动从这些库中获取多线程。否则,Julia中还没有(非实验性的)用户级线程。有实验性线程支持,而1.0版将支持线程,但除非您是专家,否则我不建议您这样做。