[00:14:43] <valexey> этот дивный мир llvm... Уже сутки пытаюсь установить свежак из svn. Каждая сборка 3-5 часов.
[00:15:19] <valexey> причем вот соберется как надо, уверен что окажется, что я не так сконфигурировал и там нет того, что мне нужно :-)
[02:51:07] <vgodunko> Вот жуть....
[02:51:13] <vgodunko> А SIMD оно умеет?
[02:52:02] <vgodunko> Смогу я использовать все вычислительные возможности современных CPU? Для x86 типа AVX/AVX2/AVX512?
[04:59:28] <valexey> vgodunko: это же AST
[05:00:11] <valexey> Вот в языке Ада (не в реализации компилятора) поддержка x86 современного и SIMD есть? :-)
[05:01:19] <valexey> Ответ как бы очевиден - делать jit компиляцию или нет, и как делать - дело исполнителя.
[05:01:57] <valexey> Можно и SIMD нагенерить, чо.
[05:02:51] <valexey> А можно не jit, можно вообще AOT.
[05:03:54] <valexey> Кстати, был бы у Ады бекенд llvm - можно было бы и в wasm как то уже генерить.
[08:45:32] <gour(work)> ада вроде, да, умеет в llvm (http://dragonegg.llvm.org/). насколько эффективно правда - это вопрос.

[08:46:07] <vgodunko> Есть разница между автоматической векторизацией и специально подогнанным кодом :)
[08:46:34] <vgodunko> И иногда, и для некоторых задач - существенная.
[08:47:11] <vgodunko> Я нашёл упоминание SIMD.js, так что оно будет, правда пока в варианте 128-bit
[15:53:23] <valexey> в общем, всё там будет. и либы любые и оптимизации. с т.з. производительности там нет принципиально узких мест. не больше чем в любом ЯВУ.
[17:36:44] <valexey> доступны результаты тестового прогона здачки: https://github.com/valexey/bigbench
[17:38:34] <valexey> адское решение реально адское :-)
[17:56:37] <valexey> https://github.com/t-nelis/wasm-design/blob/master/PostMVP.md
[18:17:35] <yeo> хэх
[18:19:33] <yeo> ну хоть работает ;)
[18:24:23] <valexey> ага :-)
[18:25:26] <yeo> но я знаю, как ускорить! и я не смотрел решения на других языках
[18:26:18] <valexey> гут! :-)
[18:26:52] <valexey> задачка хороша тем, что решая её можно собственные знания прокачать :-
[18:26:54] <valexey> :-)
[18:38:39] <valexey> yeo: а у тебя там многопоточка ведь используется? для какого-то из кусков алгоритма?
[18:39:26] <yeo> я читаю куски файла (в один поток). затем их сортирую и записываю в два потока
[18:42:18] <valexey> ага. я видел что иногда 2 ядра грузятся. значит не ошибся ;-)
[19:45:30] <yeo> valexey, ты пробовал такой алгоритм? 1) разбиваем файл на 100Мб куску, сортируем, записываем каждый кусок в свой файл. 2) открываем все файлы читаем по одному элементу, 3) пишем минимальный элемент в output, заменяем его на следующий из соответствующего файла, повторяем 3
[20:12:56] <valexey> это похоже на вариацию внешней сортировки вроде.
[20:13:34] <valexey> наверняка кто-то примерно так и делал, из решений :-)
[20:14:06] <yeo> а ты как делал?
[20:15:31] <valexey> у меня что-то вроде сортировки подсчетом.
[20:16:19] <valexey> точнее комбинация поразрядной сортировки и сортировки подсчетом. когда писал, в теорию не смотрел, надо глянуть будет.
[20:16:35] <valexey> а то я их несколько путаю :-)
[20:16:39] <valexey> а, ну плюс mmap
[20:17:02] <valexey> не факт что mmap что-то там ускоряет. скорее наоборот. зато дает приятную абстракцию.