Выпустил новую версию
J&+ YACTS. Bitrot is real!
Вообще я хотел перегенерировать с чуть лучшим разрешением одно из
этих видео для новой презентации. За каждым из них стоит примерно терабайтный файл траекторий движения магнитных моментов каждой ячейки, который, я, понятное дело, сразу (лет 10 назад) удалил. Хватился компилировать YACTS на Ubuntu 24
(
Read more... )
Comments 6
LiveJournal categorization system detected that your entry belongs to the category: IT.
If you think that this choice was wrong please reply this comment. Your feedback will help us improve system.
Frank,
LJ Team
Reply
Всё в мире -- информация. А значит любая технология - информационная.
К.Л.М.
Reply
"YACTS uses J+ to interpret scripts, defining systems of ordinary differential equations, which it solves."
Я тут вспомнил про 27-тилетней давности статью: https://core.ac.uk/download/pdf/82546938.pdf
Там ленивые вычисления довольно интересно закручивают так, что взаимно-рекурсивные определения через интегралы становятся весьма просто и эффективно вычислимыми.
Я испытывал её на обучении (небольших) нейросетей через определение лагранжиана функции потерь, работает, как обещали. ;)
Уж не знаю, поможет ли это вам, или помешает, но не мог не поделиться. ;)
Reply
Я подобную систему (управляемую по данным с ленивыми вычислениями) как раз около 30-ти лет назад писал. Но тогда графика была в новинку (а я мало ещё понимал в колбасных обрезках) и поэтому GUI был сразу вшит в язык - коробочки, стрелочки, которые мышкой нужно было соединять. Сейчас многие такие вещи делают, даже в Blender что-то подобное есть (хотя как там управление передаётся я не вникал). В принципе J&+ - это ровно то-же самое, но без GUI.
По поводу статьи - сразу понял, что там будут цепные дроби. Ещё до того как посмотрел. И ленивый, и управляемый по данным и обычный императивный подходы к организации вычислений Тьюринг-эквивалентны и позволяют вычислить одни и те же вещи. Эффективность программ, управляемых по данным (которая от ленивых вычислений отличается лишь тем - мы толкаем данные снизу по графу или тянем за "выходы" программы сверху), может быть выше за счёт более удобной параллелизации. Но и это ещё нужно эффективно реализовать... В YACTS я вычисления не параллелизовал, но J сам по себе векторный язык (хотя его тоже до ( ... )
Reply
Reply
Можно и отделить, конечно. А можно и объединить. Да, если данные приходят - вычисляется весь граф, который от них зависит, даже то, что вроде бы и не нужно. С другой стороны, то, что не нужно - можно и не вычислять, если у вычислений нет побочных эффектов.
К.Л.М.
Reply
Leave a comment