Size: a a a

2018 November 22

V

Vladimir in ru.nim.talks
рантайм да, не без этого. чтобы проверить хотел с разными ядрами было попробовать, но не до этого.
источник

V

Vladimir in ru.nim.talks
это раст
источник

V

Vladimir in ru.nim.talks
Вот на ниме было бы интересно чтобы быстрее работало. Потому что в 2-2.5 раза медленнее отработал чем го, кристал и раст. И pypy я обновил он у меня до 15 сек укладывался. А ним нет. использование памяти я не сравнивал. И кстати джулия дольше минуты работала на этой задаче, может что не так там запускал
источник

M

MIT/Benzands in ru.nim.talks
Vladimir
Вот на ниме было бы интересно чтобы быстрее работало. Потому что в 2-2.5 раза медленнее отработал чем го, кристал и раст. И pypy я обновил он у меня до 15 сек укладывался. А ним нет. использование памяти я не сравнивал. И кстати джулия дольше минуты работала на этой задаче, может что не так там запускал
на pypy или pypy3 запускал?)
источник

YG

Yuriy Glukhov in ru.nim.talks
все бенчмарки, дискредитирующие ним, нужно постить на форум. у нас в комьюнити довольно много людей, которые помогут найти причины
источник

M

MIT/Benzands in ru.nim.talks
Yuriy Glukhov
все бенчмарки, дискредитирующие ним, нужно постить на форум. у нас в комьюнити довольно много людей, которые помогут найти причины
и это тоже, да
источник

V

Vladimir in ru.nim.talks
MIT/Benzands
на pypy или pypy3 запускал?)
и так и так
источник

M

MIT/Benzands in ru.nim.talks
forum.nim-lang.org ждём :))
источник

V

Vladimir in ru.nim.talks
ну я подкинул инфы. до форума не дойду. все хотел оформить на гитхабе, но вот только запосить сюда руки дошли
источник

M

MIT/Benzands in ru.nim.talks
ну почему так?(
источник

V

Vladimir in ru.nim.talks
ну и то прогресс) пища для пытливого ума
источник

V

Vladimir in ru.nim.talks
function get_partitionr(ss::Vector{Int})::Vector{Vector{Vector{Int}}}
   # print('ss=', ss)
   if length(ss) <= 1
       return [[ss]];
   end
   out = Vector{Vector{Vector{Int}}}();
   to_max = div(2^length(ss),2) - 1;
   # println("to_max=", to_max)
   for i in 0:to_max
       # print('i=', i)
       ii = i;
       parts = [Vector{Int}(), Vector{Int}()];
       for item in ss
           push!(parts[(ii&1) + 1], item);
           ii >>= 1;
       end
       # println("parts=", parts)
       bb = get_partitionr(parts[2]);
       # println("bb=", bb)
       for b in bb
           c = [parts[1]]::Vector{Vector{Int}};
           if length(b[1]) > 0
               append!(c, b);
           end
           # println("c=", c)
           push!(out, c);
       end
   end
   return out
end

println("julia version")
part = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]::Vector{Int}
lr = get_partitionr(part)
println(length(lr))
println(typeof(lr))
println(@views lr[1:10])
источник

V

Vladimir in ru.nim.talks
это джулия
источник

M

MIT/Benzands in ru.nim.talks
тут к сожалению очень мало "пытливых умов")
источник

M

MIT/Benzands in ru.nim.talks
всё-таки лучше бы на форуме написал :D
источник

M

MIT/Benzands in ru.nim.talks
а вот тут потоки юзаются в коде 🤔
источник

M

MIT/Benzands in ru.nim.talks
ну если part1.len() больше какого-то числа
источник

V

Vladimir in ru.nim.talks
а. это надо удалить. старт отдельного потока убивает производительность так как цикл вычислений короткий. параметр по сути такой стоит чтобы никогда не запускалось
источник

V

Vladimir in ru.nim.talks
короче раст версию надо без потоков запускать
источник

V

Vladimir in ru.nim.talks
вот покороче без экспериментов вариант на расте
источник