Использование Gmagick с OpenMP
Я использую Gmagick для оперативного изменения размеров изображений из PHP и хотел бы использовать преимущества OpenMP для использования всех ядер ЦП.
Моя командная строка GraphicsMagick скомпилирована с поддержкой OpenMP и использует ее: когда я изменяю размер очень большого изображения, я вижу, что загрузка ЦП выходит за пределы 100%, что означает, что он использует несколько ядер ЦП:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
55727 ben 20 0 927584 465024 5304 R 326.0 11.5 0:10.29 gm
Однако, когда я запускаю аналогичное задание из PHP с Gmagick, загрузка ЦП всегда ограничивается 100%, что означает, что он использует одно ядро (а глобальное использование ЦП в системных ограничениях составляет 25% на моем 4-ядерном компьютере):
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
55911 ben 20 0 1236632 555132 20140 R 100.0 13.8 0:05.37 php
В настоящее время я использую стандартные RPM-пакеты Fedora для GraphicsMagick и RPI-пакеты Remi для Gmagick и других пакетов PHP 7.
Я попытался скачать исходники Gmagick и найти опцию OpenMP в configure
, но пока безуспешно.
Можно ли скомпилировать Gmagick для использования OpenMP?
Разве он не должен использовать OpenMP автоматически, так как основной пакет GraphicsMagick, поставляемый с Fedora, уже скомпилирован с OpenMP?
Обратите внимание, что Imagick, эквивалентная библиотека для ImageMagick, позволяет использовать OpenMP.