High performance
Programming
Concurrent computing
Julia
Comments 10
+1
Ну что ж, буду первым подопытным:

julia> @time parallel_pi_computation(1000000000, ncores = 60)
0.094249 seconds (5.60 k allocations: 260.203 KiB)
3.1416588651668227

Спасибо за интересный материал и готовый пример.
+1
Кстати, зависимость времени от кол-ва точек практически идеально линейная (вплоть до 1e12 точек).
тык
julia> @time parallel_pi_computation(1000000000, ncores = 60)
0.094249 seconds (5.60 k allocations: 260.203 KiB)
3.1416588651668227

julia> @time parallel_pi_computation(10000000000, ncores = 60)
0.923575 seconds (5.63 k allocations: 277.953 KiB)
3.141592570116815

julia> @time parallel_pi_computation(100000000000, ncores = 60)
9.466933 seconds (5.61 k allocations: 261.125 KiB)
3.14159586009168

julia> @time parallel_pi_computation(1000000000000, ncores = 60)
90.969203 seconds (5.72 k allocations: 270.672 KiB)
3.141590758957169

+1

Триллион точек, чтоб получить точность до пятого знака — этот алгоритм мой самый любимый из самых непрактичных


P.S. Тут кстати большие числа можно так 1_000_000_000_000 задавать, такой вот синтаксический сахар

+1

А с чего ей-то быть нелинейной?


Вот насколько будет близко к обратной пропорциональности при изменении числа ядер и фиксированном количестве точек — это более важный для практики вопрос.

+1

А что быстрее выходит — нативный Distributed.jl или MPI.jl с OpenMPI / MVAPICH?

+3
In particular, do not sexualize the term «Julia» or any other aspects of the project. While «Julia» is a female name in many parts of the world, the programming language is not a person and does not have a gender. [1]

И вот ощущение, что они сначала создают себе проблемы, а потом героически их преодолевают не покидает и во время чтения документации.
Only those users with full accounts are able to leave comments., please.