Size: a a a

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

2021 January 14

SB

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

SB

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

SB

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

DS

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

Я скорее имел в виду проверить, что там с доступом в оперативку и в кэши проца. Плюс какая там загруженность разных execution ports у проца и т.п.
источник

DS

Doge Shibu in F# Flood: Sit, stranger. And watch special olympics
Начиная с какого-то момента эти вещи критическую роль могут играть
источник

DS

Doge Shibu in F# Flood: Sit, stranger. And watch special olympics
В особенности, всё что связано с доступом в оперативку. Если в CPU-bound коде у тебя реальный поход в ОЗУ - ты буквально умер.
источник

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

DS

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

Просто вопрос в том, что на более низкоуровневых языках такие вещи явнее и проще контроллировать
источник

SB

S B in F# Flood: Sit, stranger. And watch special olympics
легче, наверно, на С переписать и ансеф кол этой функции сделать
источник

DS

Doge Shibu in F# Flood: Sit, stranger. And watch special olympics
Doge Shibu
В особенности, всё что связано с доступом в оперативку. Если в CPU-bound коде у тебя реальный поход в ОЗУ - ты буквально умер.
Т.е. честное чтение из памяти, а не из кэша - это буквально сотни циклов ожидания.
источник

SB

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

VP

Vasiliy Pereverzev in F# Flood: Sit, stranger. And watch special olympics
юзает кто сейчас paket? я чего-то не догоняю. поставил Paket как я думаю локально внутри папки. Хочу просто скачать нугет и подключить его в fsx. Но пакет упорно качает нугеты в общую большую папку .nuget
источник

VP

Vasiliy Pereverzev in F# Flood: Sit, stranger. And watch special olympics
источник

AH

Ayrat Hudaygulov in F# Flood: Sit, stranger. And watch special olympics
Vasiliy Pereverzev
юзает кто сейчас paket? я чего-то не догоняю. поставил Paket как я думаю локально внутри папки. Хочу просто скачать нугет и подключить его в fsx. Но пакет упорно качает нугеты в общую большую папку .nuget
А зачем для этого пакет сейчас?
источник

VP

Vasiliy Pereverzev in F# Flood: Sit, stranger. And watch special olympics
ну просто интересно всякое потыкать
источник

AH

Ayrat Hudaygulov in F# Flood: Sit, stranger. And watch special olympics
#r "nuget: Abc, 5.0"
источник

DS

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

Низкоуровневые профилировщики в это умеют (тот же intel vtune/его амд аналог/и т.п.) и могут вплоть до конкретной инструкции показать есть ли проблемы с кэш миссами.

А дальше уже смотреть - оно тупо не лезет в память/не справляется предсказатель переходов/или просто слишком много случайных доступов
источник

AT

Anton Ternavsky in F# Flood: Sit, stranger. And watch special olympics
S B
@DogeShibu я тут сегодня ниче так распараллелил эту разметку графа, переписал все кхуям на (почти) без блокировок, заметно уменьшил аллокации и нормально распареллил (в коем веке Paralle.For кстати пригодился), поверх этого добра накрутил мемоизацию (кратчайший путь A -> B -> C так же включает в себя кратчайший путь A -> B, т.е. это можно кешировать) и дошел до ~5 вершин в секунду.
Про партиционирование верю не забыли, если элементов много :)
источник