首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >julia @distributed不能扩展

julia @distributed不能扩展
EN

Stack Overflow用户
提问于 2021-05-03 02:54:26
回答 1查看 89关注 0票数 3

我正在尝试学习在julia中使用并行计算,并且正在尝试执行这段代码(可以在这里找到)。

代码语言:javascript
复制
using Distributed
addprocs(2, exeflags="--project=.")
@everywhere begin
    using Distributed
    using StatsBase
    using BenchmarkTools
end
data = rand(1000,2000)    
@everywhere function t2(d1,d2)
    append!(d1,d2)
    d1
end
@btime begin 
    res =  @distributed (t2) for col = 1:size(data)[2]
        [(myid(),col, StatsBase.mean(data[:,col]))]
    end
end

结果是在我的笔记本电脑上有4个核心和8个线程(2.21 GHz)是

代码语言:javascript
复制
11.836 ms (182 allocations: 78.06 KiB) 

但当我尝试扩大规模,再添加2个内核时,时间似乎并没有改善:

代码语言:javascript
复制
addprocs(2, exeflags="--project=.")
nworkers() # result 4
@everywhere begin
    using Distributed
    using StatsBase
    using BenchmarkTools
end
data = rand(1000,2000)    
@everywhere function t2(d1,d2)
    append!(d1,d2)
    d1
end
@btime begin 
    res =  @distributed (t2) for col = 1:size(data)[2]
        [(myid(),col, StatsBase.mean(data[:,col]))]
    end
end

最终计算时间为:

代码语言:javascript
复制
15.449 ms (340 allocations: 132.34 KiB)

你知道我做错了什么吗?谢谢1:@distributed seems to work, function return is wonky

EN

回答 1

Stack Overflow用户

发布于 2021-05-06 22:01:40

下面是一个使用GroupedDataFrames的示例:

代码语言:javascript
复制
using DataFrames
using CSV
function main(input_file::String, output_file::String, by_index::Array{Symbol,1})
    data = DataFrame(CSV.File(input_file))
    grouped_rows = groupby(data, by_index)

    Threads.@threads for group in collect(SubDataFrame, grouped_rows)
        index_value = group[1, by_index]
        println(index_value)

        # compute slow function for group of rows in dataframe
        output_vector = costly_function(group)
        # copy vector to elements in the dataframe
        group[:, :p] .= output_vector
    end

    CSV.write(output_file, data)
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67360088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档