Как стать автором
Обновить

Комментарии 10

Ну что ж, буду первым подопытным:

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

Спасибо за интересный материал и готовый пример.

60 ядер?! Круууть!

Кстати, зависимость времени от кол-ва точек практически идеально линейная (вплоть до 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

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


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

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


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

Вот настолько (для миллиарда точек)


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

Плохо, что нет CLArrays и CLBLAS для Julia 1.0, и без Nvidia делать нечего.
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]

И вот ощущение, что они сначала создают себе проблемы, а потом героически их преодолевают не покидает и во время чтения документации.
Если б не арты, я бы и не зашел )))
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории