在Julia(1.3)中使用Fibonacci尝试多线程并行性

问题描述 投票:0回答:1

我正在尝试使用以下硬件进行Julia 1.3的多线程功能:

Model Name: MacBook Pro
Processor Name: Intel Core i7
Processor Speed:    2.8 GHz
Number of Processors:   1
Total Number of Cores:  4
L2 Cache (per Core):    256 KB
L3 Cache:   6 MB
Hyper-Threading Technology: Enabled
Memory: 16 GB

运行以下脚本时:

function F(n)
if n < 2
    return n
    else
        return F(n-1)+F(n-2)
    end
end
@time F(43)

它给我以下输出

2.229305 seconds (2.00 k allocations: 103.924 KiB)
433494437

但是运行以下从Julia page about multithreading复制的代码时>]

import Base.Threads.@spawn

function fib(n::Int)
    if n < 2
        return n
    end
    t = @spawn fib(n - 2)
    return fib(n - 1) + fetch(t)
end

fib(43)

我的计算机在没有任何输出的情况下,RAM / CPU的使用率从3.2GB / 6%跃升到15GB / 25%(至少1分钟,之后我决定终止julia会话)

我在做什么错?

我正在尝试使用以下硬件的Julia 1.3多线程功能:型号名称:MacBook Pro处理器名称:Intel Core i7处理器速度:2.8 GHz处理器数量:1总数量...

multithreading julia fibonacci
1个回答
0
投票
fibbonachi函数的此多线程实现比单线程版本快[[not
© www.soinside.com 2019 - 2024. All rights reserved.