Julia kullanarak bazı istatistiksel analizler yapmaya çalışıyorum. Kod, script.jl
(örneğin, verinin ilklendirilmesi) ve algorithm.jl
dosyalarından oluşmaktadır.Julia'da bir paralel for döngüsü içinde veri yönetimi
Simülasyonların sayısı büyüktür (en az 100.000), bu nedenle paralel işlemeyi kullanmak mantıklıdır.
function script(simulations::Int64)
# initialise input data
...
# initialise other variables for statistical analysis using zeros()
...
require("algorithm.jl")
@parallel for z = 1:simulations
while true
choices = algorithm(data);
if length(choices) == 0
break
else
# process choices and pick one (which alters the data)
...
end
end
end
# display results of statistical analysis
...
end
ve örnek olarak
function algorithm(data)
# actual algorithm
...
return choices;
end
, ben ortalama olarak kaç tane seçenek bilmek istiyorum, ne -
Aşağıdaki kod göstermek için benim sorum sadece bazı pseudocode olduğunu En yaygın seçim, vb. Bu amaçla ben ( sonra For döngüsü) sonuçları ( önce başlatıldı For döngüsü) istatistiksel analiz değişkenlerine (For döngüsü içinde ) choices
bazı verileri kaydetmek ve görüntülemek gerekir.
@spawn
ve fetch()
kullanımı hakkında okudum ve pmap()
gibi işlevlerim ama nasıl devam edeceğimi bilmiyorum. For-loop içindeki değişkenlerin kullanılması her proc kendi kopyasını aldığından çalışmaz, dolayısıyla for döngüsü sonrasında istatistiksel analiz değişkenlerinin değerleri sadece sıfır olur. Tek bir proc kullanırken simulasyonlar için include("script.jl")
ve script(100000)
kullanmak Julia ise
[Düzenle], hiçbir sorunları vardır. Bununla birlikte, birden fazla prosedür kullanıldığında (örneğin, addprocs(3)
kullanılarak) tüm istatistiksel değişkenler, döngüden sonra sıfırdır - bu beklenen bir durumdur.
'Algoritim 'işleviniz her zaman özdeş' veri' girdisi için özdeş 'seçenekler' döndürüyor mu? – rickhg12hs
@ rickhg12hs Evet öyle. – Ailurus
Daha sonra, sahte kodunuzu verdikten sonra, sadece ilk döngü ('z = 1') herhangi bir' seçimleri işlemez mi? – rickhg12hs