К активно участвующим в развитии проекта LinuxCNC.
- iMaks-RS
- Мастер
- Сообщения: 1728
- Зарегистрирован: 10 июл 2017, 09:25
- Репутация: 199
- Настоящее имя: Maks
- Откуда: От туда.
- Контактная информация:
К активно участвующим в развитии проекта LinuxCNC.
Доброго времени суток!
Хотелось бы привлечь внимание форумчан, активно участвующих в развитии проекта LinuxCNC, к проблеме открытия больших файлов УП.
Речь идёт о файлах, размером более 400Мб, количество строк кода ~18.5млн. Проводил опыты на доступных мне ПК, что-бы понять с какими сложностями столкнулся Илья. В эксперементах приняло участие два ПК:
- моноблок HP3420 на базе процессора "Intel(R) Pentium(R) CPU G840 @ 2.80GHz" + 4 Гб ОЗУ + sata2 SSD 128Gb, далее ПК-1
- системный блок на базе "рязань" 3400 + 8Гб озу (доступно 6Гб, т.к под видео выделено 2Гб) + sata3 2Tb Hitachi, далее ПК-2
Было сделано два "подхода к снаряду":
1. Установка ОС по умолчанию (1Гб swap), далее опыт-1.
2. Установка с заданием раздела swap 32Гб, далее опыт-2.
Результаты.
Опыт-1:
* ПК-1 не смог загрузить УП ни в одном из GUI - LinuxCNC прекращал работу и ругался на какие-то строки у себя в исполняемых файлах. Дополнительно открывал УП текстовыми редакторами, что в поставке дистра - на глухо зависал ПК-1. Установил Emacs - время открытия файла в районе 2-3 секунд, при этом сохраняет и позволяет редаткировать без каких-либо фризов системы.
* ПК-2 загрузил УП только в GUI TkLinuxCNC, Axis или Gmoccapy падали в ошибку минут через 25... ОЗУ + swap загружены на 100%
Опыт-2:
* ПК-1 GUI TkLinuxCNC: загрузка УП примерно 2 минуты, начало исполнения УП после нажатия "старт" примерно через 2.5 минуты. Axis или Gmoccapy - время открытия файла в районе 95 минут. Занято 24Гб раздела подкачки. После открытия УП, система довольно сильно тупит. Запускать на выполнение не стал.
Видео с GUI TkLinuxCNC - ставьте ускорения на два.
https://youtu.be/gYoiHyfdDEs
* ПК-2 GUI TkLinuxCNC: загрузка УП примерно 8 секунд, начало исполнения УП после нажатия "старт" тоже примерно 8 секунд.Axis или Gmoccapy - время открытия файла в районе 30 минут. Занято 16Гб раздела подкачки[/u] После открытия УП, есть некоторая тормознутость в интерфейсе ОС. УП так-же стартует через 30-35 минут после нажания "старт".
Видео с GUI TkLinuxCNC - тут всё быстро.
https://youtu.be/dlKjxaDUNpQ
Исходя из эксперемента, в личке начали прикидывать нужный под задачу ПК.. получается машина, в разы лучше, чем используемая на данный момент для создания УП.. 1200 сокет 10/11 поколение корки 5, 32 Гб ОЗУ, ssd Nvme...По моему это прям совсем перебор..
Можно ли как-то скрестить "турбо-загрузку" TkLinuxCNC c Axis, Gmoccapy? В идеале бы - как Emacs.. что-бы ПК-1 хватало для решения таких задач. Готов проводить тесты/эксперементы на указанных выше ПК.
Спасибо.
Хотелось бы привлечь внимание форумчан, активно участвующих в развитии проекта LinuxCNC, к проблеме открытия больших файлов УП.
Речь идёт о файлах, размером более 400Мб, количество строк кода ~18.5млн. Проводил опыты на доступных мне ПК, что-бы понять с какими сложностями столкнулся Илья. В эксперементах приняло участие два ПК:
- моноблок HP3420 на базе процессора "Intel(R) Pentium(R) CPU G840 @ 2.80GHz" + 4 Гб ОЗУ + sata2 SSD 128Gb, далее ПК-1
- системный блок на базе "рязань" 3400 + 8Гб озу (доступно 6Гб, т.к под видео выделено 2Гб) + sata3 2Tb Hitachi, далее ПК-2
Было сделано два "подхода к снаряду":
1. Установка ОС по умолчанию (1Гб swap), далее опыт-1.
2. Установка с заданием раздела swap 32Гб, далее опыт-2.
Результаты.
Опыт-1:
* ПК-1 не смог загрузить УП ни в одном из GUI - LinuxCNC прекращал работу и ругался на какие-то строки у себя в исполняемых файлах. Дополнительно открывал УП текстовыми редакторами, что в поставке дистра - на глухо зависал ПК-1. Установил Emacs - время открытия файла в районе 2-3 секунд, при этом сохраняет и позволяет редаткировать без каких-либо фризов системы.
* ПК-2 загрузил УП только в GUI TkLinuxCNC, Axis или Gmoccapy падали в ошибку минут через 25... ОЗУ + swap загружены на 100%
Опыт-2:
* ПК-1 GUI TkLinuxCNC: загрузка УП примерно 2 минуты, начало исполнения УП после нажатия "старт" примерно через 2.5 минуты. Axis или Gmoccapy - время открытия файла в районе 95 минут. Занято 24Гб раздела подкачки. После открытия УП, система довольно сильно тупит. Запускать на выполнение не стал.
Видео с GUI TkLinuxCNC - ставьте ускорения на два.
https://youtu.be/gYoiHyfdDEs
* ПК-2 GUI TkLinuxCNC: загрузка УП примерно 8 секунд, начало исполнения УП после нажатия "старт" тоже примерно 8 секунд.Axis или Gmoccapy - время открытия файла в районе 30 минут. Занято 16Гб раздела подкачки[/u] После открытия УП, есть некоторая тормознутость в интерфейсе ОС. УП так-же стартует через 30-35 минут после нажания "старт".
Видео с GUI TkLinuxCNC - тут всё быстро.
https://youtu.be/dlKjxaDUNpQ
Исходя из эксперемента, в личке начали прикидывать нужный под задачу ПК.. получается машина, в разы лучше, чем используемая на данный момент для создания УП.. 1200 сокет 10/11 поколение корки 5, 32 Гб ОЗУ, ssd Nvme...По моему это прям совсем перебор..
Можно ли как-то скрестить "турбо-загрузку" TkLinuxCNC c Axis, Gmoccapy? В идеале бы - как Emacs.. что-бы ПК-1 хватало для решения таких задач. Готов проводить тесты/эксперементы на указанных выше ПК.
Спасибо.
-
- Мастер
- Сообщения: 1707
- Зарегистрирован: 28 авг 2018, 17:13
- Репутация: 285
- Настоящее имя: Алексей
- Контактная информация:
Re: К активно участвующим в развитии проекта LinuxCNC.
А если в г-код добавить первой строчкой
- решает вопрос?
Код: Выделить всё
(AXIS,stop)
- iMaks-RS
- Мастер
- Сообщения: 1728
- Зарегистрирован: 10 июл 2017, 09:25
- Репутация: 199
- Настоящее имя: Maks
- Откуда: От туда.
- Контактная информация:
Re: К активно участвующим в развитии проекта LinuxCNC.
Нет, не решает. К сожалению. Для этого и ставил Emacs на ПК-1
Я не программист.. глянул исполняемый файл axis - на сколько я понял, Axis, Gmoccapy используют либы "питона" для работы с файлами.
Файл с УП предоставить без разрешения Илья не могу, а написать цикл для генерации разумного g-code мозгов не хватает.. и есть подозрение что на питоне писать генератор не нужно... С++.. Как-бы идея сразу появляется.. оснастка/инструмент для тестирования в виде генератора примитивной УП с заданием количество строк кода.
Я не программист.. глянул исполняемый файл axis - на сколько я понял, Axis, Gmoccapy используют либы "питона" для работы с файлами.
Файл с УП предоставить без разрешения Илья не могу, а написать цикл для генерации разумного g-code мозгов не хватает.. и есть подозрение что на питоне писать генератор не нужно... С++.. Как-бы идея сразу появляется.. оснастка/инструмент для тестирования в виде генератора примитивной УП с заданием количество строк кода.
Re: К активно участвующим в развитии проекта LinuxCNC.
В качестве редактора кода вполне приемлем vim - он и блоки кода сворачивать умеет (не в стоковой с LCNC поставке, а в более свежей версии), и работает быстро. Что отдельно хорошо - режим редактирования текста и просто режим просмотра - разные вещи и для нас, с ж-кодом, очень полезные.
А про TkLinuxCNC GUI - можно больше подробностей и на русском? http://linuxcnc.org/docs/html/gui/tklinuxcnc.html Прописать в ini DISPLAY = tklinuxcnc, оно же DISPLAY = tkemc, не сложно, но уже минут десять не могу найти начала (провести хоминг). И в окошке Плоттер у меня ничего не отрисовывается.
А про TkLinuxCNC GUI - можно больше подробностей и на русском? http://linuxcnc.org/docs/html/gui/tklinuxcnc.html Прописать в ini DISPLAY = tklinuxcnc, оно же DISPLAY = tkemc, не сложно, но уже минут десять не могу найти начала (провести хоминг). И в окошке Плоттер у меня ничего не отрисовывается.
-
- Мастер
- Сообщения: 1707
- Зарегистрирован: 28 авг 2018, 17:13
- Репутация: 285
- Настоящее имя: Алексей
- Контактная информация:
Re: К активно участвующим в развитии проекта LinuxCNC.
Да python это всё переварит и не чихнёт.
Вопрос в разборе файла, но насколько я видел linuxcnc файл перед запуском не разбирает и не проверяет, это делается только для целей визуализации. Если её выключить, то и проблем не должно быть. Вроде бы.
А строчку в начало добавить, для этого никаких редакторов не надо.
Код: Выделить всё
echo "(AXIS,stop) " > new-file.gcode ## создать новый файл с одной строкой
cat existing-big-file.gcode >> new-file.gcode ## добавить содержимое файла в новый файл
head -20 new-file.gcode ## вывести первые 20 строчек нового файла
- iMaks-RS
- Мастер
- Сообщения: 1728
- Зарегистрирован: 10 июл 2017, 09:25
- Репутация: 199
- Настоящее имя: Maks
- Откуда: От туда.
- Контактная информация:
Re: К активно участвующим в развитии проекта LinuxCNC.
Плоттер тоже пустой, с датчиками считерил.. прописал в ини файл - в раздел traj: NO_HOMING_FORCE = 1
-
- Мастер
- Сообщения: 304
- Зарегистрирован: 18 май 2019, 15:24
- Репутация: 31
- Настоящее имя: Дмитрий
- Контактная информация:
Re: К активно участвующим в развитии проекта LinuxCNC.
Дилетантский вопрос: что тогда означают сообщения, вроде, возле строки 100500 начало или конец дуги не совпадает с заданным радиусом?
Американский форум: задал вопрос — получил ответ.
Израильский форум: задал вопрос — получил вопрос.
Русский форум: задал вопрос и потом долго выслушиваешь какой ты м*дак.
https://youtube.com/channel/UCv22xgeww0FIzS9n4VrT2TA
Израильский форум: задал вопрос — получил вопрос.
Русский форум: задал вопрос и потом долго выслушиваешь какой ты м*дак.
https://youtube.com/channel/UCv22xgeww0FIzS9n4VrT2TA
Re: К активно участвующим в развитии проекта LinuxCNC.
Я бегло попытался осилить описниае, что по ссылке - плоттер показывает пройденный путь. Потому, видимо, и запускается быстро. Но по моим меркам 450 метров - еще далекая перспектива. Пока укладываюсь в 3-7 метров. Когда надо - вручную сокращаю файлы и программы, организуя циклы.
А большой файл сгенерировать не вопрос - скормите комплектному image-to-gcode графический файл и задайте должные настройки дискретизации и можно получить нечто огромное.
-
- Мастер
- Сообщения: 1707
- Зарегистрирован: 28 авг 2018, 17:13
- Репутация: 285
- Настоящее имя: Алексей
- Контактная информация:
Re: К активно участвующим в развитии проекта LinuxCNC.
я туда не смотрел, возможно правда читает и парсит во внутренний формат...
точно знаю что некоторые ошибки очевидные только в работе выдает .типа выхода за края рабочей области.
- MX_Master
- Мастер
- Сообщения: 7469
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3089
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: К активно участвующим в развитии проекта LinuxCNC.
На здешнем форуме нет активных разработчиков LinuxCNC. Надо писать в issues гитхаба LinuxCNC. Но не факт, что кто-то отреагирует, ибо указанное ТЗ, по моим меркам, довольно большое.
Лично моё мнение - LinuxCNC уже давно перестала быть чем-то свободным по масштабу и независимым. Слишком уж много тонн всякого ненужного система тянет за собой. Слишком много ограничений по установке на современные системы. Я бы даже за деньги не взялся дорабатывать питоновские интерфейсы и оптимизировать отрисовку траектории. Перспективы в этом абсолютно никакой. Легче новое накатать.
Лично моё мнение - LinuxCNC уже давно перестала быть чем-то свободным по масштабу и независимым. Слишком уж много тонн всякого ненужного система тянет за собой. Слишком много ограничений по установке на современные системы. Я бы даже за деньги не взялся дорабатывать питоновские интерфейсы и оптимизировать отрисовку траектории. Перспективы в этом абсолютно никакой. Легче новое накатать.
- MX_Master
- Мастер
- Сообщения: 7469
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3089
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: К активно участвующим в развитии проекта LinuxCNC.
Я знаю о чём говорю. Легче тонну своего говнокода накатать, чем разбираться в чужом, пытаясь выдавить из него то, для чего он не был задуман. Кто видел код разных enterprise систем, не даст соврать. Там, блин, одни грабли, костыли и прочая пое.. повсеместно. В открытых проектах чуть получше, но всё равно единого подхода к архитектуре и модульности нет. Часть кода на С++, часть на С, часть на питоне, часть на TCL (+TK). И к каждому коду есть свои вопросы и косяки, которые никто исправлять не будет, ибо проект открытый.
-
- Мастер
- Сообщения: 304
- Зарегистрирован: 18 май 2019, 15:24
- Репутация: 31
- Настоящее имя: Дмитрий
- Контактная информация:
Re: К активно участвующим в развитии проекта LinuxCNC.
Еще там в исходниках есть комментарии к коду, типо: я не знаю как это работает.
Американский форум: задал вопрос — получил ответ.
Израильский форум: задал вопрос — получил вопрос.
Русский форум: задал вопрос и потом долго выслушиваешь какой ты м*дак.
https://youtube.com/channel/UCv22xgeww0FIzS9n4VrT2TA
Израильский форум: задал вопрос — получил вопрос.
Русский форум: задал вопрос и потом долго выслушиваешь какой ты м*дак.
https://youtube.com/channel/UCv22xgeww0FIzS9n4VrT2TA
Re: К активно участвующим в развитии проекта LinuxCNC.
Но есть и другие способы облегчения взлета. Например, в зависимости от того, кто и как создал г-код, использование регулярных выражений в команде замены кусков текста sed может облегчить вес файла на 25-30%. От тех самых 400мб это пусть даже 50 метров (12%) - и запуск вместо 90 минут будет несколько быстрее.
Гипотезу эту проверял на своем конкретном примере с текущим заданием (буфет) - около 85000 строк, около 5мб, сгенерировано во FreeCAD. Из спортивного интереса провел простейшие операции типа удаления из z19.000000 (а также из Х, У и подачи) шести нулей и точек. Получил облегчение на 15%. А в запасе оставались еще эти Z19 в каждой строке, подача в каждой строке, часто - неизменные Х или У. Тот же image-togcode в этом плане очень гуманен - не меняющиеся значения не пишет.
Гипотезу эту проверял на своем конкретном примере с текущим заданием (буфет) - около 85000 строк, около 5мб, сгенерировано во FreeCAD. Из спортивного интереса провел простейшие операции типа удаления из z19.000000 (а также из Х, У и подачи) шести нулей и точек. Получил облегчение на 15%. А в запасе оставались еще эти Z19 в каждой строке, подача в каждой строке, часто - неизменные Х или У. Тот же image-togcode в этом плане очень гуманен - не меняющиеся значения не пишет.
- MX_Master
- Мастер
- Сообщения: 7469
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3089
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: К активно участвующим в развитии проекта LinuxCNC.
На мой взгляд, основные тормоза вызывает отрисовка всех линий и дуг на питоне (opengl). Разбор текста в этом ряду занимает намного меньше времени.
- MX_Master
- Мастер
- Сообщения: 7469
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3089
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: К активно участвующим в развитии проекта LinuxCNC.
Не знаю как там в LinuxCNC, у меня в проекте есть свой внутренний бинарный формат. И в памяти никогда не лежат все файлы целиком. При отрисовке траектории тоже не всё показывает, как раз для оптимизации работы с программой. У LinuxCNC в этом направлении пробел. Даже не охота изучать. И исправлять, тем более, не охота эти грабли. Сделать отрисовку всей траектории на питоне за раз - это надо быть очень недальновидным разработчиком.
- iMaks-RS
- Мастер
- Сообщения: 1728
- Зарегистрирован: 10 июл 2017, 09:25
- Репутация: 199
- Настоящее имя: Maks
- Откуда: От туда.
- Контактная информация:
Re: К активно участвующим в развитии проекта LinuxCNC.
TkLinuxCNC отрисовку по дефолту не использует, на сколько я понял.. но всё равно... требует под задачу 8Гб.. будь то ОЗУ, либо ОЗУ+swap.
Даже скорости ДДР4 и "рязань" 3400 подтупливают на 8 секунд.. может это всё-таки такая работа с файлами. Даже если я открою исполняемые файлы TkLinuxCNC и Axis, то всё равно ничего не мойму.
Даже скорости ДДР4 и "рязань" 3400 подтупливают на 8 секунд.. может это всё-таки такая работа с файлами. Даже если я открою исполняемые файлы TkLinuxCNC и Axis, то всё равно ничего не мойму.
- MX_Master
- Мастер
- Сообщения: 7469
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3089
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: К активно участвующим в развитии проекта LinuxCNC.
8 секунд похожи на чтение файла УП и его анализ. Там уже GUI не причём. Скорее всего, инструментально выполнено на C++. Но, опять же, зачем весь файл в ОЗУ класть для анализа. Непонятно.
- iMaks-RS
- Мастер
- Сообщения: 1728
- Зарегистрирован: 10 июл 2017, 09:25
- Репутация: 199
- Настоящее имя: Maks
- Откуда: От туда.
- Контактная информация:
Re: К активно участвующим в развитии проекта LinuxCNC.
Ну просто не думали, что программы будут такого размера.. на linuxcnc.org пишут 4Гб достаточно.. это исходя из 500к строк на 1Гб.. те. УП небольшого размера изначалально задумано.. Интересно, как быстро откроет и запустит 18млн. строк версия LinuxCNC от Tormach...