Я нашел несколько ссылок, которые, кажется, говорят, что это теперь существует в QGIS 2.2, но похоже, что он использует только одно ядро для полной загрузки.
Это работает на Ubuntu 14.04
Текущий процесс создает большое количество регулярных точек. Как я могу заставить этот процесс использовать больше, чем одно ядро?
qgis
geoprocessing
multithreading
jpmaniac87
источник
источник
Ответы:
В QGIS 2.2 нет многопоточного рендеринга, это функция, которая будет доступна в QGIS 2.4.
Вы можете попробовать QGIS Master (по ночам) для тестирования, а затем выпуск QGIS 2.4 запланирован на 20 июня 2014 года .
К сожалению, неправильно прочитал ваш вопрос, и из комментариев это выглядит так, как будто многопоточная обработка происходит на уровне разработчика QGIS или на уровне участника Python Plugin.
Если есть определенный инструмент QGIS, который вы используете из меню, встроенного в QGIS, чем для многопоточной обработки, его, вероятно, нужно будет кодировать разработчиком для QGIS или даже в корне инструмента (GDAL, SAGA, Orfeo, GRASS, R разработчики и т.д ...).
Если есть определенный плагин, то, скорее всего, он написан на Python, и разработчик или разработчик этого плагина может увидеть, возможно ли включить модули
multiprocessing
илиthreading
для повышения его производительности.В любом случае, отправка запроса на функцию или проверка его наличия обычно является лучшим способом начать работу. Это даст вам знать, если кто-то уже взялся за улучшение или какие ресурсы понадобятся для его запуска.
источник
multiprocessing
илиthreading
(threading
обычно используется сqueue
), который они должны были бы специально добавить в свои скрипты.Источник: http://osgeo-org.1560.x6.nabble.com/Will-Processing-in-QGIS-3-support-parallelization-td5301809.html
Старый ответ: во время Google Summer of Code 2015 была разработана поддержка многопоточности для QGIS Processing. Код в настоящее время пересматривается и, как ожидается, появится в версии для разработчиков в 2016 году. (Источник: http://boundlessgeo.com/2015/12/latest-developments-in-qgis-processing/ )
... К сожалению, это решение не может быть объединено.
источник
Некоторая многопоточность включена в базовую функциональность QGIS (рендеринг, например, как описано в ответе SaultDons), но многие функции или алгоритмы могут иметь или не иметь встроенную многопоточность в зависимости от их развития.
Для тех авторов плагинов pyQGIS (возможно, включая OP), которые хотят включить многопоточность в свой плагин / скрипт, некоторая помощь доступна в блоге snorfalorpagus. Надеемся, что все больше и больше разработчиков будут использовать многопоточность - особенно для более сложных алгоритмов.
В качестве временного промежутка вы можете создавать сценарии для своего процесса и использовать схему параллельных процессов с плохой структурой, используя вызовы асинхронных сценариев оболочки, как описано в ответе alexis здесь.
Если у кого-то еще есть хорошие ресурсы для распараллеливания заданий QGIS, пожалуйста, не стесняйтесь редактировать и добавлять их к этому ответу :)
источник