Думается это вполне можно опубликовать в журнале типа «Вычислительные методы и программирование».
Я однажды хотел опубликоваться в этом журнале, но был ответ, что публикация возможна только для тех, кто учится/работает в университете. А я уже закончил. Пришлось в другом месте публиковать. Сейчас, возможно, правила изменились.
А какие у вас заданы абсолютные размеры/массы/времена, т.е. соответствует ли видео в каком-то виде реальности или не особо?
Из физических констант задаю только G=1, а начальный диаметр 'галактики' задаю равным 100. Массы все одинаковые кроме центрального тела. К реальным величинам пересчитать возможно, но я этого пока не делал.
Посмотрел код примера из CUDA SDK. Вы этот имели ввиду?
CPU код из SDK примерно соответствует моему на стадии 'openmp'. GPU код у нас организован похоже, только у них перед внутренним циклом есть директива 'unroll'.
Таким образом, если сравнивать мои 'openmp' и СUDA реализации, то разница будет примерно в 20 раз. При сравнении с однопоточной версией CUDA реализация быстрее в 120 раз.
В статье, сопропровождающей SDK, есть такие строки:
The result is an algorithm that runs more than 50 times as fast as a highly tuned serial
implementation (Elsen et al. 2006) or 250 times faster than our portable C implemen-
tation.
Непонятно что такое 'portable C implementation', но первая половина хорошо соотносится с моими результатами.
На днях попробую собрать пример из SDK и сравнить более детально.
Боюсь, таких людей нельзя отнести к тупицам. Например, нормальный руководитель не будет спорить с узким специалистом, у которого познания в конкретной области могут быть намного больше. Это же не признак тупости.
Старые-новые это не так важно. Главное, что для OSS использование бесплатное.
Сейчас на travis-ci основной образ Ubuntu 14.04, в бете 16.04.
А те, кто хотят поновее, могут собрать свой в chroot или docker. Вот тут собирают 18.04.
Свой сервер это конечно хорошо, но не всегда возможно.
Например, на travis-ci каждый получает готовый образ системы, и потом сам устанавливает те пакеты, от которых зависит проект.
Конфигурацию каждый сам описывает.
Возможно здесь дело в наличии «собственных серверов». При активном OSS сообществе быстро зашкалит их количество, работающих условно бесплатно.
Coverity делает немного по другому. Анализатор отрабатывает на сервисе travis-ci или на своём железе, а на сервера анализатора загружаются только логи. Причём логи запакованы и, видимо, зашифрованы. Без загрузки на сервис coverity они бесполезны.
На сегодняшний день не существует универсального метода оценки качества склейки изображений. Как правило качество склейки оценивается экспертами органолептически
В большинстве фотограмметрических пакетов в качестве этой меры используют ошибку проецирования связующих точек (что есть мера согласования геометрии снимков). Меру оценки согласования яркостей изображений имеет смысл рассматривать только после оценки геометрии.
Однако это явный false alarm, а для статического анализатора нет ничего хуже ложных срабатываний — если его не отключат после первого крика «волки», то после десятого точно.
Порой это лучше, чем ничего, особенно если есть возможность поставить исключения после первого просмотра.
При этом на других языках можно хотя бы юнит-тесты писать, а тут — никак.
В своём небольшом проекте мы директивой #include включали код шейдеров в код на c++, и с помощью нескольких дефайнов и обёрток превращали шейдеры в обычные функции, которые возможно вызвать.
Если пользователям интерфейса пришлось узнавать о реализации, то что-то пошло не так…
А константность, на мой взгляд, нужна для облегчения использования интерфейса, а не наоборот. Она только подчёркивает свойства метода, позволяет избежать ошибок ещё во время компиляции.
Злоупотреблять, расставляя const где попало, конечно не стоит.
Буду благодарен за ссылку на метод. Беглый поиск в гугле не даёт мне результата.
Я однажды хотел опубликоваться в этом журнале, но был ответ, что публикация возможна только для тех, кто учится/работает в университете. А я уже закончил. Пришлось в другом месте публиковать. Сейчас, возможно, правила изменились.
Из физических констант задаю только G=1, а начальный диаметр 'галактики' задаю равным 100. Массы все одинаковые кроме центрального тела. К реальным величинам пересчитать возможно, но я этого пока не делал.
CPU код из SDK примерно соответствует моему на стадии 'openmp'. GPU код у нас организован похоже, только у них перед внутренним циклом есть директива 'unroll'.
Таким образом, если сравнивать мои 'openmp' и СUDA реализации, то разница будет примерно в 20 раз. При сравнении с однопоточной версией CUDA реализация быстрее в 120 раз.
В статье, сопропровождающей SDK, есть такие строки:
Непонятно что такое 'portable C implementation', но первая половина хорошо соотносится с моими результатами.
На днях попробую собрать пример из SDK и сравнить более детально.
Можно ещё в сторону libpodofo посмотреть
http://podofo.sourceforge.net/about.html
Боюсь, таких людей нельзя отнести к тупицам. Например, нормальный руководитель не будет спорить с узким специалистом, у которого познания в конкретной области могут быть намного больше. Это же не признак тупости.
Сейчас на travis-ci основной образ Ubuntu 14.04, в бете 16.04.
А те, кто хотят поновее, могут собрать свой в chroot или docker.
Вот тут собирают 18.04.
Свой сервер это конечно хорошо, но не всегда возможно.
Конфигурацию каждый сам описывает.
Coverity делает немного по другому. Анализатор отрабатывает на сервисе travis-ci или на своём железе, а на сервера анализатора загружаются только логи. Причём логи запакованы и, видимо, зашифрованы. Без загрузки на сервис coverity они бесполезны.
С этим ключём можно будет интегрировать PVS в CI процесс на travis?
В большинстве фотограмметрических пакетов в качестве этой меры используют ошибку проецирования связующих точек (что есть мера согласования геометрии снимков). Меру оценки согласования яркостей изображений имеет смысл рассматривать только после оценки геометрии.
А большое количество предкоммитных проверок не затягивают время коммита? Я так понимаю, что на время предкоммитной проверки репозиторий блокируется?
Порой это лучше, чем ничего, особенно если есть возможность поставить исключения после первого просмотра.
В своём небольшом проекте мы директивой #include включали код шейдеров в код на c++, и с помощью нескольких дефайнов и обёрток превращали шейдеры в обычные функции, которые возможно вызвать.
А константность, на мой взгляд, нужна для облегчения использования интерфейса, а не наоборот. Она только подчёркивает свойства метода, позволяет избежать ошибок ещё во время компиляции.
Злоупотреблять, расставляя const где попало, конечно не стоит.
Отличная подборка материала про интерфейсы, и подводные камни в реализации и использовании.
Вы могли бы раскрыть здесь подробнее, какие сложности нас могут ожидать на этом пути.