Какая самая эффективная функция в Юлии для выполнения задачи внутри цикла? - PullRequest
1 голос
/ 20 марта 2019

Добрый день всем,

в основном у меня так:

@sync @parallel for i in 1:100;
     V[i] = i
end

И у меня действительно вообще нет проблем.Я работаю с julia 0.6.4 и заметил, что функция @parallel не существует в новых версиях.Итак, мой вопрос: есть ли более эффективный способ параллельного выполнения этой простой задачи?возможно в других версиях Юлии.Функция @distributed делает то же самое?

Спасибо.

1 Ответ

1 голос
/ 20 марта 2019

Если вы обновляете код с 0,6 до 1,0, сначала перейдите к 0,7. Буквально точно так же, как 1.0 , но с дружескими предупреждениями, которые говорят вам, как обновить ваш код! И да, в этом случае вам будет предложено использовать @distributed вместо @parallel и загрузить стандартную библиотеку Distributed.

julia> @sync @parallel for i in 1:100;
            V[i] = i
       end
WARNING: Base.@parallel is deprecated: it has been moved to the standard library package `Distributed`.
Add `using Distributed` to your imports.
 in module Main
┌ Warning: `@parallel` is deprecated, use `@distributed` instead.
│   caller = eval(::Module, ::Any) at boot.jl:319
└ @ Core ./boot.jl:319

Это было просто переименование и переименование по уважительной причине: существует много форм параллелизма, и «наиболее эффективная» форма параллелизма для вас будет зависеть от того, какую задачу вы выполняете (в частности, от времени выполнения и ввода-вывода). ) и имеющееся у вас оборудование.

...