Сейчас многие люди пользуются библиотекой.
бестолковый в ваших программах на Python, поскольку это значительно ускоряет работу с данными и выполнение математических операций.
Однако во многих случаях бестолковый работает во много раз медленнее, чем может. потому что использует только один процессор, хотя мог бы использовать все, что у вас есть.
Дело в том, что для выполнения многих операций бестолковый вызывает функции из библиотеки линейной алгебры.
Именно здесь обычно и кроется проблема.
К счастью, все довольно легко исправить.
Итак, возможны три ситуации:
- у вас не установлены никакие библиотеки линейной алгебры и тогда numpy использует встроенную библиотеку, и надо сказать, что она очень медленная;
- у вас уже установлены классические библиотеки вроде ATLAS и BLAS, и они могут использовать только один процессор;
- у вас установлены современные библиотеки OpenBLAS, MKL и подобные.
После чего, если вы работаете в Linux, то запустите вершина , а если вы работаете в Windows, перейдите на вкладку «Производительность» в диспетчере задач (вызывается по Ctrl+Shift+Esc)… Если вершина показывает загрузку на уровне 100%, а индикатор «Загрузка ЦП» на вкладке «Производительность», наоборот, показывает значение во много раз ниже 100%, а это значит, что вычислениями занято только одно ядро — и эта статья для вас .import numpy as np size = 10000 a = np.random.random_sample((size, size)) b = np.random.random_sample((size, size)) n = np.dot(a,b)
Те, у кого все процессоры в работе, могут порадоваться — у них все хорошо — и дальше можно не читать.
Решение для Windows
Теоретически можно, конечно, найти исходники библиотек, перекомпилировать их и пересобрать бестолковый .Я даже слышал, как кто-то писал, что видел людей, говорящих, что им это удалось.
В общем, проще всего установить научный дистрибутив Python, например.
В дистрибутив входят не только питон И бестолковый , но и целая куча полезных библиотек для расчетов и визуализации.
После чего можно перезапустить первоначальный тест, чтобы убедиться, что скорость значительно увеличилась.
Решение для Linux
На самом деле вы также можете установить готовый дистрибутив.Анаконда , Навес или еще что со всеми библиотеками сразу.
Но если вы предпочитаете собирать его самостоятельно, то читайте дальше – все рецепты там.
Проверка библиотек
Как вы помните, есть два варианта:- у вас установлены «старые» (или «устаревшие», как вам нравится) библиотеки (например, ATLAS);
- у вас не установлены библиотеки, а numpy использует встроенную библиотеку (которая еще медленнее)
cd core
ldd multiarray.so
В более ранних версиях бестолковый библиотеки multiarray.so нет, но есть _dotblas.so :
ldd _dotblas.so
Вывод команды лдд покажет вам, если он использует бестолковый сторонние библиотеки линейной алгебры.
linux-vdso.so.1 => (0x00007fffe58a2000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f8adbff4000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f8adbdd6000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8adba10000)
/lib64/ld-linux-x86-64.so.2 (0x00007f8adc68c000)
Если вы не видите его в списке libblas.so , это значит твой бестолковый использует свою внутреннюю библиотеку.
Если вы это видите, значит, у вас есть ATLAS или BLAS. В любом случае сначала вам понадобится подходящая библиотека линейной алгебры.
Установка OpenBLAS
OpenBLAS — хорошая библиотека алгоритмов и функций линейной алгебры, лежащих в основе современных методов анализа данных и машинного обучения.Прежде всего вам понадобится компилятор Фортрана, поскольку OpenBLAS несовместим со стандартным компилятором.
g77 .
sudo apt-get install gfortran
Загрузите OpenBLAS с github (после возвращения в соответствующий каталог для установки): git clone https://github.com/xianyi/OpenBLAS.git
Теперь переходим в каталог и запускаем сборку: cd OpenBLAS
make FC=gfortran
После успешного завершения компиляции и сборки установите библиотеку.
sudo make install
По умолчанию библиотека будет установлена в /opt/OpenBLAS .
Если вы хотите установить его где-то еще, запустите сделать установку с ключом ПРЕФИКС : sudo make install PREFIX=/your/preferred/location
Переназначение библиотек
Если вы ранее узнали, что у вас уже установлена какая-то библиотека линейной алгебры, то вам достаточно запустить команду переназначения библиотеки: sudo update-alternatives --install /usr/lib/libblas.so.3 libblas.so.3 \
Теги: #python #Numpy #OpenBLAS #atlas #BLAS #LAPACK #python #Интеллектуальный анализ данных #Большие данные
-
Freenas 10 — Новое Лицо Старого Хранилища
19 Oct, 24 -
Спамеры Сдаются?
19 Oct, 24 -
Sfpropelmemcacheплагин
19 Oct, 24 -
Ноутбук От Playstation 3
19 Oct, 24