История изменений
Исправление snizovtsev, (текущая версия) :
Вычисление MPHF медленнее, конечно. Но оно состоит из похожих операций, правда не перестановки, а группировки элементов по хешу. Я не записал время операций в блокнотик прежде чем рефакторить всё это, но ирония была в том, что однопоточное построение MPHF (сложный алгоритм) по времени, кажется, получалось сравнимо с тупой перестановкой 17GB из-за cache miss. Т.е. 2х кратно увеличивалось время обработки на банальной перестановке элементов.
Собственно спрашиваю «исследована ли эта тема» ещё потому, что может я зря упарываюсь делать это всё руками на C++ (ещё и через страшный Apache Arrow C++ API), и в каком-нибудь clickhouse всё это можно сделать эффективно из коробки правильным sql.
Исправление snizovtsev, :
Вычисление MPHF медленнее, конечно. Но оно состоит из похожих операций, правда не перестановки, а группировки элементов по хешу. Я не записал время операций в блокнотик прежде чем рефакторить всё это, но ирония была в том, что однопоточное построение MPHF (сложный алгоритм) по времени, кажется, получалось сравнимо с тупой перестановкой 17GB из-за cache miss. Т.е. 2х кратно увеличивалось время обработки на банальной перестановке элементов.
Собственно спрашиваю «исследована ли эта тема» ещё потому, что может я зря упарываюсь делать это всё руками на C++ (ещё и через страшный Apache Arrow C++ API), и в каком-нибудь clickhouse всё это можно сделать эффективнее правильным sql.
Исправление snizovtsev, :
Вычисление MPHF медленнее, конечно. Но оно состоит из похожих операций, правда не перестановки, а группировки элементов по хешу. Я не записал время операций в блокнотик прежде чем рефакторить всё это, но ирония была в том, что однопоточное построение MPHF (сложный алгоритм) по времени, кажется, получалось сравнимо с тупой перестановкой 17GB из-за cache miss.
Собственно спрашиваю «исследована ли эта тема» ещё потому, что может я зря упарываюсь делать это всё руками на C++ (ещё и через страшный Apache Arrow C++ API), и в каком-нибудь clickhouse всё это можно сделать эффективнее правильным sql.
Исправление snizovtsev, :
Вычисление MPHF медленнее, конечно. Но оно состоит из похожих операций, правда не перестановки, а группировки элементов по хешу. Я уже продолбал время операций прошлой рабочей версии, но ирония была в том, что однопоточное построение MPHF (сложный алгоритм) по времени, кажется, получалось сравнимо с тупой перестановкой 17GB из-за cache miss.
Собственно спрашиваю «исследована ли эта тема» ещё потому, что может я зря упарываюсь делать это всё руками на C++ (ещё и через страшный Apache Arrow C++ API), и в каком-нибудь clickhouse всё это можно сделать эффективнее правильным sql.
Исправление snizovtsev, :
Вычисление MPHF медленнее, конечно. Но оно состоит из похожих операций, правда не перестановки, а группировки элементов по хешу.
Собственно спрашиваю «исследована ли эта тема» ещё потому, что может я зря упарываюсь делать это всё руками на C++ (ещё и через страшный Apache Arrow C++ API), и в каком-нибудь clickhouse всё это можно сделать эффективнее правильным sql.
Исходная версия snizovtsev, :
Вычисление медленнее, конечно. Но оно состоит из похожих операций, правда не перестановки, а группировки элементов по хешу.
Собственно спрашиваю «исследована ли эта тема» ещё потому, что может я зря упарываюсь делать это всё руками на C++ (ещё и через страшный Apache Arrow C++ API), и в каком-нибудь clickhouse всё это можно сделать эффективнее правильным sql.