Size: a a a

Compiler Development

2020 May 18

МБ

Михаил Бахтерев... in Compiler Development
Artyom Drozdov
не, ну так не честно) почти всегда есть случай, когда контр-интуитивный вариант будет оптимальным)
Я в этом не спец, знаю только, что всякие видеоформаты очень любят так биты перемешивать по "плоскостям", и это связано именно с соображениями параллельной обработки и производительности. Думаю, @true_grue лучше может осветить этот вопрос.
источник

МБ

Михаил Бахтерев... in Compiler Development
Pavel Kazakov
Но я так понял, реализацию этих алгоритмов никто не продумывает серьезно, и это чисто теоретические выкладки?
Повторюсь в четвёртый раз, это активно используется в обработке видеопотоков.
источник

PS

Peter Sovietov in Compiler Development
Михаил Бахтерев
Я в этом не спец, знаю только, что всякие видеоформаты очень любят так биты перемешивать по "плоскостям", и это связано именно с соображениями параллельной обработки и производительности. Думаю, @true_grue лучше может осветить этот вопрос.
Есть интересная техника bit slicing, которая популярна в области криптографии. Там и по компиляторной части много любопытного. Есть DSP-алгоритмы для 1-битных сигналов в аудио, а вот тут и кое-что для алгоритмов поиска: https://www.researchgate.net/publication/221787120_Recent_Developments_in_Bit-Parallel_Algorithms/link/0c9605154414f14370000000/download
источник

M

MaxGraey in Compiler Development
Есть еще Bitonic sort так там вообще O(log^2(n)) всего. Правда требуется GPU или FPGA. Ну и там конечно уже сортировка не на уровне битов. это все таки MIMD
источник

PK

Pavel Kazakov in Compiler Development
Михаил Бахтерев
Повторюсь в четвёртый раз, это активно используется в обработке видеопотоков.
Декодирование видео плохо параллелится, насколько я знаю: приходится делать loop filter в постпроцессинге, например, и вообще там та же проблема fork-join не может быть полностью решена
источник

PK

Pavel Kazakov in Compiler Development
Это если мы не говорим про аппаратную поддержку декодирования
источник

PK

Pavel Kazakov in Compiler Development
Если какие-то страшные прорывы в этой области были за последнее время, то я отстал от этого)
источник

M

MaxGraey in Compiler Development
источник

KR

K R in Compiler Development
Peter Sovietov
Да, cache oblivious это интересно. Но на практике блочные подходы, все-таки, бывают эффективнее, поскольку они могут дать еще и параллелизм. По поводу параметров конкретной подсистемы памяти — на этот счет есть автоматические подходы на основе самонастройки. Это неплохо работает для выч. библиотек. Ваш пример, кстати говоря, показывает, насколько важно сегодня владеть фундаментальными алгоритмами для того, чтобы их использовать в новых контекстах, создавать гибридные варианты и проч. Если хочется увидеть применение менее популярных алгоритмических подходов — можно посмотреть в сторону массово-параллельных, распределенных систем.

В целом, очевидно, что изменения в аппаратной части, да и вообще в наших взглядах на вычисления, отражаются на алгоритмах. И все это является стимулом для придумывания новых алгоритмов. В этой связи мне удивительно слышать мнение, что все алгоритмы давно придумали, и все есть в готовых библиотеках. Даже если не брать мою узкую область интересов, только за последние месяцы в поле моего зрения появилось 3-4 новых алгоритма с заманчивыми характеристиками.
"пролистав первую страницу гугеля" я нашёл очень старую обзорную статью по cache oblivious - http://erikdemaine.org/papers/BRICS2002/paper.pdf
В общем, "cache oblivious" - это правильные слова, по которым можно искать литературу. Но вот так, чтобы сразу находился отличный обзор 2018го года - этого на первый взгляд нет.
источник
2020 May 19

VK

Vladimir Kazanov in Compiler Development
K R
"пролистав первую страницу гугеля" я нашёл очень старую обзорную статью по cache oblivious - http://erikdemaine.org/papers/BRICS2002/paper.pdf
В общем, "cache oblivious" - это правильные слова, по которым можно искать литературу. Но вот так, чтобы сразу находился отличный обзор 2018го года - этого на первый взгляд нет.
Классика 😊 Спасибо, скачаю и перечитаю!

Когда я ее первый раз просмотрел лет десять назад, то  уже решил было, что это дела давно минувших дней. Но последнее время что-то опять все для себя открыли тему.
источник

T

TGG in Compiler Development
Добрый день.
Кто как думает, какой язык лучше всего для написания компиляторов?
источник

ЗП

Зигохистоморфный Пре... in Compiler Development
TGG
Добрый день.
Кто как думает, какой язык лучше всего для написания компиляторов?
haskell :D
источник

T

TGG in Compiler Development
Слышу часто такой ответ. Почему?
источник

AD

Artyom Drozdov in Compiler Development
TGG
Добрый день.
Кто как думает, какой язык лучше всего для написания компиляторов?
Graal)
источник

p

polunin.ai in Compiler Development
TGG
Добрый день.
Кто как думает, какой язык лучше всего для написания компиляторов?
rust
источник

T

TGG in Compiler Development
Люди, пишите почему)
источник

ГК

Григорий Кулаков... in Compiler Development
JS
источник

EM

Evgenii Moiseenko in Compiler Development
OCaml
источник

p

polunin.ai in Compiler Development
ну компилятор должен быть быстрым. и чтобы его писать и поддерживать было удобно. поэтому Rust.
источник

T

TGG in Compiler Development
polunin.ai
ну компилятор должен быть быстрым. и чтобы его писать и поддерживать было удобно. поэтому Rust.
А удобство написания?
источник