Я запускаю пользовательский процессор на наборе строк, который, похоже, не работает параллельно. Основной текстовый файл размером ~ 1 ГБ сначала считывается в таблицу, которая разделяется с помощью циклического цикла. «Извлечение» выполняется на 200 вершин, но затем (в разделе «Агрегат») обработка [, которая выполняет различные сложные вычисления] происходит только на 2 вершинах, хотя параметр параллелизма намного выше. Есть ли специальный намек, который нужно использовать, чтобы диктовать компилятору использовать больше вершин? Есть ли функция или свойство, которые необходимо переопределить, чтобы установить параллельность на этом этапе?Управление распараллеливанием
1
A
ответ
1
Извините за поздний ответ. Но это время отпуска :).
Хорошо видеть, что фаза экстракции полностью расширена.
Без просмотра сценария или сгенерированного плана немного сложно сказать, почему в некоторых местах вы видите только две вершины. Существует несколько причин, почему это может быть так:
- У вас недостаточно данных для увеличения масштаба.
- вашей агрегированности требуется больше данных, и, следовательно, план имеет меньший параллелизм.
- Ваша операция по своей сути менее параллельна.
- Оценка мощности данных оптимизатора выключена и выбирает недостаточно параллелизма. У нас есть определенная способность намекать, но я скорее вижу работу.
Обратите внимание, что пользовательские процессоры часто блокируют оптимизатор от нажатия оптимизаций в скрипте (например, с помощью опции READ ONLY) и могут отбрасывать оценки мощности.
Если вы пришлете мне сценарий, график работы и ссылку на задание на mrys в Microsoft, я и команда рассмотрят его на следующей неделе после окончания праздников.
Смежные вопросы
- 1. Проблемы с распараллеливанием
- 2. Отменить нить с распараллеливанием openmp
- 3. Проблемы с распараллеливанием в MATLAB
- 4. Связанные фильтры с распараллеливанием в Java
- 5. Я не могу оптимизировать с распараллеливанием программы
- 6. Как все еще управлять распараллеливанием с помощью Future.get?
- 7. Управление изменениями/управление конфигурацией
- 8. Управление источниками Управление ветвями
- 9. Управление потоками/управление потоками Android
- 10. Управление интерфейсом и управление памятью
- 11. Управление бизнесом и управление процессами?
- 12. Управление трикотажем и управление сеансом
- 13. Управление пользователями vs Управление сервером
- 14. Управление версиями и управление выпуском
- 15. Управление проектом vs Управление развитием
- 16. Самый быстрый способ с распараллеливанием для вычисления расстояний между двумя точками с кодом Python
- 17. Является ли python автоматическим распараллеливанием разделов IO- и CPU или памяти?
- 18. Управление зависимостью от микросервисов - управление или управление доменом?
- 19. Управление пользователями и управление сеансом Проблема
- 20. ECM - Управление документооборотом/управление версиями и CMS
- 21. PHP MySQL: управление и управление содержимым
- 22. Управление флеш-памятью SoundChannel и управление памятью
- 23. Удаленное управление .NET, управление версиями и интерфейсы
- 24. Невозможно найти управление в asp.net Управление репитером
- 25. Управление и управление данными в таблицах
- 26. Управление веб-запуском Java и управление лицензиями
- 27. Управление HTML-сервером и управление веб-сервером
- 28. Управление несколькими параллелями Java Параллельное управление
- 29. Управление стандартными WPF и нормальное управление окнами
- 30. Управление версиями/Управление конфигурацией для АТС Avaya?
Я заметил, что оставил этот вопрос без ответа, поэтому позвольте мне закрыть цикл, чтобы обновить сообщество по разрешению. Поскольку у компилятора нет видимости того, что делает пользовательский процессор, его труднее распараллелить, и это должно быть вашим последним средством. Я приложил к тому, что пользовательский процессор делал с встроенными инструкциями u-sql C#, насколько я могу, и увидел заметную разницу. Спасибо, Майкл! – chi
Замечательно! И если вы можете избежать выполнения пользовательских процессоров, переместив код в UDF, вы обычно получаете лучшую производительность и масштабируемость. –