需要处理几百个csv文件。同样用python也写了, 2个在单线程下输出结果一致。为了再加快速度, 采用多线程/多进程情况下, 运行速度没有提升。但是python在多进程版本提升已超过julia, 这个是因为什么?
多线程版本
function cl(fname)
df=CSV.read(fname,DataFrame)
# 一些运算
end
# 几百个文件
function f()
fnames=readdir("../cache")
Threads.@threads for i in eachindex(fnames)
cl("../cache/" * fnames[i])
end
end
多进程版本
@everywhere function cl(fname)
df=CSV.read(fname,DataFrame)
# 一些运算
end
# 几百个文件
function f()
fnames=readdir("../cache")
@sync @distributed for i in eachindex(fnames)
cl("../cache/" * fnames[i])
end
end
因为刚入门, 网上找了很多资料, 感觉案例很少, 不知道多线程 多进程 写法是否有问题?