Технология параллельных вычислений для 1С 8.2/8.3 (бесплатная компонента) |
Введение
Существует множество методов оптимизации производительности информационных систем на базе 1С – MS SQL: линейная оптимизация тяжелых запросов (для этого можно изменить текст запроса, алгоритм формирования, индексный тюнинг), уменьшение множества блокировок (управляемый режим), увеличение производительности аппаратных ресурсов и прочие. Но если все перечисленные способы исчерпаны, а значительного увеличения скорости нет, то для определенных случаев можно применить технологию параллельных вычислений.
Что такое технология параллельных вычислений?
Технологии параллельных вычислений на данный момент применяются в основном для сложных инженерных расчетов в различных областях для ускорения выполнения на супер ЭВМ с большим количеством процессоров. Учитывая тот факт, что многопроцессорные серверы стали промышленным стандартом практически во всех крупных и средних организаций – применение параллельных вычислений в современных информационных системах, в том числе 1С, вполне обоснованно.
![]() Рис.1.
Как видно из рис.1, из приложения последовательно передаются запросы для параллельного выполнения на сервере БД. После получения выборок запросов данные передаются в приложение и могут дальше обрабатываться.
Основные сложности применения технологии параллельных вычислений:
В своем решении мы попытались нивелировать сложности насколько это возможно для уменьшения трудозатрат при внедрении. В чем секрет ускорения? Часто заблуждением является тот факт, что при покупке многопроцессорного сервера или работы с многопоточной программой все операции пользователя информационной системы распараллеливаются. Если мы говорим о конкретном сеансе пользователя с последовательным выполнением конкретного функционала приложения- то даже на многоядерном сервере не используется более одного процессора ( не берем возможность распараллеливания запроса средствами MS SQL - это немного другая специфика). Таким образом, увеличение аппаратных ресурсов сервером приводит к увеличению скорости совокупной многопользовательской работы, но не увеличение линейной скорости отдельного пользователя. В случае использования параллельных вычислений мы используем по максимуму все доступные аппаратные ресурсы серверов для увеличения линейной скорости. Для каких ситуаций применимы параллельные вычисления?
Если бы параллельные вычисления можно было бы сделать для любой операции информационной системы (в том числе 1С), то все системы были бы адаптированы к параллельным вычислениям по умолчанию производителем. На практике существует ряд очень важных ограничений для их использования. Мы перечислим основные ограничения нашего решения:
Несколько основных рисков:
-Для уменьшения влияния меж поточного взаимодействия необходимо, чтобы предполагаемая длительность запросов была более 5 секунд.
-Реализована только для OleDB (ADO, Native) – MS SQLсистем.
-Запрос для распараллеливания возвращает только одну выборку (recordset). Для систем 1С 8 – запрос может состоять из последовательности запросов (например, создание виртуальных таблиц, заполнение и прочее), запрос программы на произвольном языке (Delphi, C++ … )состоит из одной конструкции и одной выборки.
Таким образом, наиболее реальная область применения в 1С 8 –распараллеливание запросов 1С при формировании больших отчетов и обработок. В других системах на других языках – на усмотрение программиста/архитектора.
Ожидаемый эффект по производительности:
Не стоит ожидать большого эффекта от распараллеливания запросов 1С для любых аппаратных ресурсов. На наш взгляд наиболее эффективно распараллеливание, если вы обладаете многоядерным сервером и достаточно производительной СХД.
Количество потоков определяется обычно количеством ядер и рассчитывается эмпирически на тестовых прогонах.
Нам на практике удалось уменьшить длительность выполнения и получение выборки 3-х запросов в 2,2 – 2,5 раза. При этом надо помнить, что выполняя параллельно N запросов, требуется заранее спланировать возможное увеличения оперативной памяти rphost.exe для всех выборок параллельно выполняющихся запросов.
Как проверить на практике (технология внедрения в информационную систему)?
Для внедрения на практике предлагается шаблон отчета для распараллеливания запросов в 1С (в списке файлов). В шаблоне есть служебная процедура ВыполнитьЗапросыПараллельно, в которой реализован механизм взаимодействия с компонентой по распараллеливанию, ее текст менять не разрешается без консультаций с разработчиками: support@softpoint.ru .
Как зарегистрироваться и применять в 1С 8.2/8.3?
Для внедрения параллельных вычислений в вашу систему необходимо(описание в инструкции по установке):
Скачивая файл, Вы подтверждаете, что согласны получать информационные сообщения об этой программе.
Скачать "Инструкция по установке и лицензированию"
В случае возникновения сложностей можно обратиться в службу поддержки: support@softpoint.ru
|
Статья: Технология параллельных вычислений для 1С 8.2/8.3 (бесплатная компонента) |
Перейти на главную страницу компании "Софтпоинт" |