Size: a a a

F# Flood: Sit, stranger. And watch special olympics

2021 January 15

VP

Vasiliy Pereverzev in F# Flood: Sit, stranger. And watch special olympics
S B
нет, выпилил весь линк, выделил несколкьо ручных тредов для заполнения кеша, настроил чутка concurrent dictionary, переписал ключевые аллокации на struct и выпилил весь LINQ
А на что Linq заменил?
источник

SB

S B in F# Flood: Sit, stranger. And watch special olympics
Anton Ternavsky
И хватило предельных значений индекса массива 2146435071 ?
а нахуя мне такой громадный массив?
источник

SB

S B in F# Flood: Sit, stranger. And watch special olympics
Vasiliy Pereverzev
А на что Linq заменил?
ФArrayPool где могу, кое-где linkedlist ради вставки O(1), где-то ебля с индексами
источник

I

Igor in F# Flood: Sit, stranger. And watch special olympics
Anton Ternavsky
И хватило предельных значений индекса массива 2146435071 ?
это в пронете вообще-то обсуждали))
источник

SB

S B in F# Flood: Sit, stranger. And watch special olympics
на 300к кешмиссов 200к кешхитов
источник

IC

Ilya Chernoudov in F# Flood: Sit, stranger. And watch special olympics
S B
нет, выпилил весь линк, выделил несколкьо ручных тредов для заполнения кеша, настроил чутка concurrent dictionary, переписал ключевые аллокации на struct и выпилил весь LINQ
Тебе конкурен дикшинари то зачем?
источник

SB

S B in F# Flood: Sit, stranger. And watch special olympics
Ilya Chernoudov
Тебе конкурен дикшинари то зачем?
в кеш со многих потоков пишется и читается
источник

IC

Ilya Chernoudov in F# Flood: Sit, stranger. And watch special olympics
S B
в кеш со многих потоков пишется и читается
Придумай что нить, конкурен дикшинари медленный
источник

SB

S B in F# Flood: Sit, stranger. And watch special olympics
я туда еще не дошел и не знаю вот, надо ли
источник

SB

S B in F# Flood: Sit, stranger. And watch special olympics
в понедельник залью на препрод, посмотрю как там будет
источник

AT

Anton Ternavsky in F# Flood: Sit, stranger. And watch special olympics
S B
а нахуя мне такой громадный массив?
Да вам наверное нет, это я о одной боли в одном проекте вспомнил. Был у меня проект, дерево вероятностных решений могло иметь десятки миллионов вершин(сотни если глубиной поиграться), каждая вершина еще имела больше тысячи вероятностных исходов, даже пулинг такой прорвы массивов приводит к ПЦ. Приходилось извращаться, аллоцировать под завязку массив, и его нарезать через индексы.
источник

SB

S B in F# Flood: Sit, stranger. And watch special olympics
должно быть быстрее десктопа раза в полтора
источник

SB

S B in F# Flood: Sit, stranger. And watch special olympics
там же серверный линукс
источник

SB

S B in F# Flood: Sit, stranger. And watch special olympics
Anton Ternavsky
Да вам наверное нет, это я о одной боли в одном проекте вспомнил. Был у меня проект, дерево вероятностных решений могло иметь десятки миллионов вершин(сотни если глубиной поиграться), каждая вершина еще имела больше тысячи вероятностных исходов, даже пулинг такой прорвы массивов приводит к ПЦ. Приходилось извращаться, аллоцировать под завязку массив, и его нарезать через индексы.
так представление дерева массивом это классика
источник

AT

Anton Ternavsky in F# Flood: Sit, stranger. And watch special olympics
S B
так представление дерева массивом это классика
Да там две боли сразу-размерность дерева, что динамически нельзя аллоцировать.
источник

AT

Anton Ternavsky in F# Flood: Sit, stranger. And watch special olympics
Общее кол-во массивов, что к каждой вершине дерева пристегнуто.
источник

AT

Anton Ternavsky in F# Flood: Sit, stranger. And watch special olympics
Ну и в некоторых сценариях нужно было быстро обсчитать хеш обсчета куска дерева для подъема заранее предкомпилированного GPU кода, если такой на диске валяется и запустить его.
источник

SB

S B in F# Flood: Sit, stranger. And watch special olympics
Anton Ternavsky
Да там две боли сразу-размерность дерева, что динамически нельзя аллоцировать.
есть такой трюк, знаешь, линдкед лист, только массивов, скажем по 16 элементов. не говорю, что под твой случай хорошо будет, но вообще очень мощный финт, потому что кеши проца очень эффективно захватывают соседние элементы. помнится, в париматче что-то сильно оптимизнулось после перевода на такие рельсы.
источник

SB

S B in F# Flood: Sit, stranger. And watch special olympics
уже не помню что.
источник

AT

Anton Ternavsky in F# Flood: Sit, stranger. And watch special olympics
S B
есть такой трюк, знаешь, линдкед лист, только массивов, скажем по 16 элементов. не говорю, что под твой случай хорошо будет, но вообще очень мощный финт, потому что кеши проца очень эффективно захватывают соседние элементы. помнится, в париматче что-то сильно оптимизнулось после перевода на такие рельсы.
Ну у меня есть в библиотеке и линкед лист, и avl дерево, и adaptive radix tree, и все на массивах и индексах, т.к. ноды struct, для той конкретно задачи нужно было именно так делать
источник