ublas по сравнению с матричной библиотекой шаблонов (MTL4)

Вы должны использовать такой код:

<div class="navbar-header">
    <button type="button" class="navbar-toggle" data-toggle="collapse" 
            data-target=".navbar-ex1-collapse">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
    </button>
    <a class="logo" rel="home" href="#" title="Buy Sell Rent Everyting">
        <img style=""
             src="/img/transparent-white-logo.png">
    </a>
</div>

Класс тега A должен быть «логотипом», а не navbar-брендом.

14
задан dodol 3 July 2009 в 00:04
поделиться

3 ответа

С вашими требованиями я, вероятно, выбрал бы BOOST :: uBLAS . Действительно, хорошее развертывание uBLAS должно примерно соответствовать MTL4 по скорости.

Причина в том, что существуют привязки для ATLAS (следовательно, распараллеливание с разделяемой памятью, которое вы можете эффективно оптимизировать для вашего компьютера), а также такие реализации, как Intel Math Kernel Library или HP MLIB .

С этими привязками uBLAS с хорошо настроенным ATLAS / Библиотека BLAS, выполняющая математические вычисления, должна быть достаточно быстрой. Если вы связываете данный BLAS / ATLAS, вы должны быть примерно на одном уровне с MTL4, связанным с тем же BLAS / ATLAS, используя флаг компилятора -DMTL_HAS_BLAS , и, скорее всего, быстрее, чем MTL4 без BLAS, согласно их собственному наблюдению (пример см. здесь , где GotoBLAS превосходит MTL4).

Подводя итог, Скорость не должна быть вашим решающим фактором, если вы готовы использовать какую-нибудь библиотеку BLAS. Удобство использования и поддержка важнее. Вы должны решить, что вам больше подходит: MTL или uBLAS. Я склоняюсь к uBLAS, учитывая, что он является частью BOOST, а MTL4 в настоящее время поддерживает BLAS только выборочно . Вы также можете найти это слегка устаревшее сравнение научных пакетов C ++ интересным.

Одно большое НО: для ваших требований (чрезвычайно большие матрицы) я бы, вероятно, пропустил "синтаксический сахар" uBLAS или MTL, и вызовите "металлический" интерфейс C BLAS / LAPACK напрямую. Но это' Только я ... Еще одно преимущество в том, что это должно быть проще, чем переключаться на ScaLAPACK (LAPACK с распределенной памятью, никогда не использовал его) для более серьезных проблем. Для ясности: для решения домашних проблем я бы не предлагал напрямую вызывать библиотеку BLAS.

11
ответ дан 24 October 2019 в 20:40
поделиться

Вы можете увидеть разницу в производительности прямо здесь: http://www.osl.iu.edu/research/mtl/mtl4/doc/performance.php3

Обе библиотеки являются разумными для использования с точки зрения их интерфейсов, я не думаю, что, поскольку uBLAS получил через процесс проверки BOOST он обязательно станет более надежным. У меня была своя доля кошмаров с неочевидными побочными эффектами и непредвиденными последствиями от реализаций uBLAS.

Это не значит, что uBLAS плохой, он действительно хорош, но я думаю, учитывая резкую разницу в производительности для MTL в наши дни, стоит использовать это вместо uBLAS, хотя это, возможно, немного более рискованно из-за того, что это группа поддержки «всего 2 разработчика».

В конце концов, речь идет о скорости с библиотекой матриц, переходите с MTL4.

1
ответ дан 24 October 2019 в 20:40
поделиться

Если вы программируете векторы, матрицы и линейную алгебру на C ++, я бы посмотрел на Eigen:

http://eigen.tuxfamily.org/

Это быстрее чем uBLAS (не уверен насчет MTL4) и гораздо более чистый синтаксис.

8
ответ дан 24 October 2019 в 20:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: