Компания DeepMind открыла исходные тексты движка для симуляции физических процессов MuJoCo (Multi-Joint dynamics with Contact) и перевела проект на открытую модель разработки, подразумевающую возможность участия в разработке представителей сообщества. Проект рассматривается как платформа для проведения исследований и совместной работы над новыми технологиями, связанными с симуляцией роботов и сложных механизмов. Код опубликован под лицензией Apache 2.0. Поддерживаются платформы Linux, Windows и macOS...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=57237
Круто!
> Ньютона, сопряжённых градиентов и Гаусса-Зейделя ... Эйлера или Рунге-Кутты.Для них, может, и круто. Для нас - не круто.
Что тебе не нравится?
Фамилии не русские.
а Аноним думаешь это тоже не русская фамилия ?
Не проблема. Например, Эйлер - вполне себе российский математик.
Вместо первых двух хотелось бы видеть BFGS, DFP и т.п. Вместо третьего - хотя бы с выбором ведущего элемента, матричные разложения и итерационное уточнение. Вместо последних двух - методы с автоматическим выбором длины шага.
> Вместо первых двух хотелось бы видеть BFGS, DFP и т.п. Вместо третьего - хотя бы с выбором ведущего элемента, матричные разложения и итерационное уточнение. Вместо последних двух - методы с автоматическим выбором длины шага.Может быть я не прав, но выглядит так, будто комментатор наскоро прочитал в интернете, что делают те методы, которые перечислены в новости, и попробовал найти что-нибудь более экзотическое, чтобы блеснуть.
То есть ты знаешь как минимум на 1 метод больше, на тот, который посложнее и для специфичных штук, где классические дают бОльшие погрешности или даже неприменимы? Но ты не говоришь, почему конкретно в данной предметной области Р-К или Г-З плохи. Так кто ты? Тролль или недоученный студент с желанием прихвастнуть познаниями?))
Каждый вправе делать то, что хочет. Можете решать СЛАУ даже методом Крамера, а определитель считать рекурсивно. Если очень хочется, то можно. Успехов.
> Так кто ты?Кстати, учитесь вести дискуссию. Всегда критикуйте позицию, а не человека, который ее высказал.
Ты только что раскритиковал человека. Ой, извини, я критикую позицию, которую ты высказал.
Как оно в сравнении с симулятором физики в блендере?
В Блендере для таких симуляций ничего кроме инверсной кинематики и нет же.
Садись, два! В Blender интегрированный Bullet.
К доске вызывается Анон Им.
> Движок написан на СиОтлично, спасибо! Хотя там и C++ присутствует.
Единственные достойные языки.
Согласен. Расчеты можно только на них и делать. Остальные в данной области - либо интерфейс к ним, либо баловство.
Вообще-то, для расчётов ещё Фортран очень годен.
Это всё, для чего он годен, но только с маленьким условием -- нужна проприетарная MKL от интела.
Пожалуйста, обойдёмся без эксгумаций.
Вся математика, которой все пользуются, в частности вся линейная алгебра, написана на фортране. За 60 лет после того, как она забронзовела, три поколения шибздиков пыталось все это переписать на модные, стильные и молодежные языки, в том числе, кстати, и си, но ничего не вышло -- все так и осталось. Максимум, код с netlib.org где с помощью f2c, где руками, портирован на си. Периодически у некотороых возникет желание написать конвертер с фортрана на си, но как только он въезжает в фортран настолько, что понимает, как это конвертер писать, он отказывается от этой затеи и начинает писать математику на фортране. На сайте орегонского университета, это то гнездо, откуда растет MPI и кластерные решения, была история одного такого человека от первого лица. И он был не первым -- перед ним несколько человек начали и закончили так же. Там и вывод -- для вычислительных задач фортрану нет альтернатив.
Эталонные программы моделирования гравитационного поля Земли и геомагнитного и сегодня пишутся на фортране. Все специальные функции, о которых упоминается в [Абрамовиц & Стиган] написаны на фортране и переписывать их -- дело глупое. По производительности вычислительных задач фортран опережает все языки. Конечно, лучший фортран-компиялтор от Интел, но и их компилятор с си под их железо лучший. Тем не менее, код с фортрана работает быстрее -- он оптимизируется лучше.
Вообще не разбираюсь, но наверное не все расчёты ресурсоёмкие, не все расчёты нужно проводить постоянно (например написал на том, на чём проще программку - доказал что тебе нужно и больше не запускаешь - не факт что проще на си), ещё для расчётов могут использоваться какие-нибудь странные чипы или параллельные там. Может там есть какие-то DSL для них. Также математические языки.
Это только что в голову пришло.
вопрос в том, что обсчет одной разовой задачи или постоянный обсчет процессов. если постоянный, то малой прогой уже не отъедешь, да и нагрузка будет уже не такая маленькая. придется все равно искать более пригодный к вычислениям язык. я на питоне тож писал проги для расчетов, но то были простые расчеты в инженерке или просто по мат формуле. тогда такой способ канает, а вот постоянный расчет даже той же движущейся жидкости в изменяющихся условиях подкосит все "мозги" твоего компа.
Неоднозначно
Тот же джит у жс вполне-себе неплохо выдаёт производительные функции. Другое дело, что там несколько разных уровней оптимизации, начиная с тупой интерпретации того что есть, его минификации.. и вплоть до получения нативного кода и по умолчанию для джитификации энных функций их требуется вызвать очень много раз без изменения самих функций( каждый следующий уровень оптимизации конкретной функции "включается" после энного количества её исполнений без изменения, поскольку вообще все функции в общем случае слишком жирно максимально оптимизировать сразу ), но всё-таки.
Да и параметры по умолчанию обычно можно менять - потратить считанные секунды в начале запуска проги, что обычно и так происходит не моментально, чтобы получить наивную производительность из архитектуронезависимого кода.
Когда-то с нодой и вебкитом баловАлся на этот счёт.И всё бы неплохо, только точность не_целых чисел в жс оставляет желать сильно лучшего
> Тот же джит у жс вполне-себе неплохо выдаёт производительные функции.Лучше, чем LuaJIT?
Кстати, очень жду, когда кто-нибудь сподобится интегрировать LuaJIT в Blender вместо Пихона.
LuaJIT немного мёртв. Переходите на питон, в него скоро оптимизаций и жит подвезут, а пока можно транслировать питон в си везде, где это необходимо.
> LuaJIT немного мёртв.Бред какой!
>> LuaJIT немного мёртв.
> Бред какой!Да неужели. Я вот установил бету 2.10 (которая всё ещё 5.1 16-летней давности) и весь использующий луа софт отвалился. Кроме того, это не только я заметил, поскольку
>The latest release, 2.0.5 is released in 2017. Since then, the project is not currently maintained by developers other than contributors.
Так что признайте поражение и не грубите. Никому оно не интересно, как максимум пользовательские скрипты для игрушечек.
> Да неужели.Ужели. https://github.com/LuaJIT/LuaJIT
> 1b8d8ca 3 days ago
Ну правильно, у меня в репах эта бета из гита и есть (уже 6 лет релизов этой беты не было, судя по тегам) и она поломана вся. И это всё ещё 5.1.
> И это всё ещё 5.1.Зачем вычислениям версия > 5.1?
>> И это всё ещё 5.1.
> Зачем вычислениям версия > 5.1?Не конструктивно.
> Код опубликован под лицензией Apache 2.0Так поступают те, кто уверен в своём неоспоримом лидерстве.
> не использует динамическое выделение памятиУх ты, как это возможно для задач такой сложности? Или в XML-конфиге описал "скелет" и свойства материалов и джойнтов, а тот компилятор конфига всё что нужно (по памяти) статически выделил, а алгоритмы настолько странные, что им промежуточных выделений памяти для вычислений не требуется? Или как-то только стеком обходятся, даже для огромных конструкций?
> Ух ты, как это возможно для задач такой сложности?В общем, вот так:
>MuJoCo separates simulation parameters into two data structures (C structs) at runtime:
>mjModel contains the model description and is expected to remain constant. There are other structures embedded in it that contain simulation and visualization options, and those options need to be changed occasionally, but this is done by the user.
>mjData contains all dynamic variables and intermediate results. It is used as a scratch pad where all functions read their inputs and write their outputs – which then become the inputs to subsequent stages in the simulation pipeline. It also contains a preallocated and internally managed stack, so that the runtime module does not need to call memory allocation functions after the model is initialized.
>mjModel is constructed by the compiler. mjData is constructed at runtime, given mjModel. This separation makes it easy to simulate multiple models as well as multiple states and controls for each model, in turn facilitating multi-threading for sampling and finite differences.
Погодите, а кто написал этот дпижок? Люди? Или их Deep Mind?
DeepMind не так давно купили этот движок, писали его не они.
Движок очень важный, он повсеместно используется для тренировки агентов при помощи обучения с подкреплением.
Слепой ведет незрячего :(Евангелие от Матфея 15.14 " оставьте их: они — слепые вожди слепых; а если слепой ведет слепого, то оба упадут в яму "
Тяжело такой движок написать? Что нужно знать из математики?
Математику.
> Что нужно знать из математики?Физику. Глобальная проблема всех таких подобных систем в том, что они забыли про первые интегралы в их физическом смысле. Потому всё болтается, как куклы на резинках. А применять Эйлера - это выстрел сразу в голову, он всегда _разбалтывает_ систему в силу своего определения.
Напоминает физический движок Euphoria, что в играх от Rockstar используют.
Мне одному не нравится XML в этом продукте? Ужасно же читается.
А так занятная полезная штука.