Как заставить 1с использовать все ресурсы многоядерного процессора #515038


#0 by krasnojrov
Есть задачка написанная на 1с8. Пытался использовать многоядерные процессоры, чтобы быстрее щелкала. Прогресса нет, запускал на одно ядерном(в файловом варианте) - диспетчер задач показывает загрузку ЦП 100%, на 4-х и 8 ядерном(двух процессорном) соответственно 25% и 13%, и диспетчер показывает примерно равномерную загрузку ядер ЦП. Пытался манипулировать, задавал соответствия (диспетчер задач>процессы>1cv8.exe>задать соответствие>ставил флажок на одно ядро)- на графике одно ядро работает по максимуму Загрузка процессора (в целом) не меняется. Что надо делать в в такой ситуации? Тот же RAR прекрасно работает с многоядерными и дает прирост в скорости.
#1 by ДенисЧ
купи/укради у 1с исходники и перепиши. Тот же 1с-сервер вполне себе использует многоядерность.
#2 by Irbis
>> Пытался использовать многоядерные процессоры, чтобы быстрее щелкала. Вот это как делал? С бубном танцевал?
#3 by krasnojrov
Остряки местные, или как?
#4 by ДенисЧ
или клюв у кое-кого отитанился.
#5 by Капитан Смоллет
Чувак, ты нас в выходные решил посмешить?
#6 by DES
Тут главное не мешать операционке.
#7 by krasnojrov
Ставил на сервер(db2 экспресс) - негде посмотреть настройку, в итоге скорость та-же, даже чуть меньше
#8 by Irbis
Куда уж нам, просто в 1С ни в клюшках ни в снеговике не припомню никаких инструкций по этому поводу
#9 by ДенисЧ
ты бы ещё на акссесс поставил...
#10 by krasnojrov
Что тогда ставить надо и как настроить?
#11 by МихаилМ
1) напишите внешнюю компоненту 2) перенесите проект на другой ЯП с многоПоточностью .   скоро будет вопрос, что тот же  рар умет задествовать мощности видеоускорителей. как задействовать в 1с.
#12 by Irbis
Смирись, лучше вылизывай код. Большинство тормозов из-за неверно заточеных рук программистов.
#13 by Капитан Смоллет
Пиши слезливое письмо генеральному конструктору 1с с просьбой переписать платформу на многопоточность. Единственно тебе уже посоветовали в 2
#14 by ДенисЧ
Ставь кошерный мссиквел и на сервере 1с настраивай количество рабочих процессов соответственно количеству процессоров. На ИТС есть соответствующие статьи. Вкратце - количество процессов == количество процессоров - 2
#15 by ДенисЧ
А клиентская часть не будет работать с многими процессами, пока не сделаешь
#16 by krasnojrov
Михаил, что такое ЯП?
#17 by krasnojrov
То есть в файловом варианте не сделать такое?
#18 by ДенисЧ
оймать... Ты программист или куда?
#19 by МихаилМ
язык программирования.
#20 by krasnojrov
Спасиб
#21 by КМ155
[То есть в файловом варианте не сделать такое] запусти 8 1с.Exe по шт. на ядро и распараллель задачку
#22 by krasnojrov
Ну запустить то я запущу, а как распаралелить?
#23 by krasnojrov
Все, догнал КМ. В принципе можно попробовать.
#24 by Капитан Смоллет
Ага. Поставь Windows Server 2008 R2 HPC. Сделай клауд-вычисления по сетке.. :)
#25 by КМ155
[а как распаралелить] Оооооо про это тома написаны
#26 by Капитан Смоллет
Как однопоточное приложение собираемся распараллеливать? пид-процесс один и тот же. Запись и чтение в базу данных может вызвать конфликт, поскольку система не может отличить пид-процесс, как в лучае клиент-серверного приложения. Для многоядерных процов надо писать спецприложения. И не надо путать распределение нагрузки с увеличением производительности.
#27 by krasnojrov
Спасибо КМ, идея весьма нетривиальная, прикидываю какие задачки распаралелить можно.
#28 by hhhh
можно 1с и rar пустить на разные ядра - вот уже и распараллеливание.
#29 by КМ155
почитай про конвейерные ЭВМ
#30 by Капитан Смоллет
Что читать-то? ОС Винда поддерживает эту архитектуру?
#31 by Живой Ископаемый
божечки, ну и почему же ты подумал что виноват rphost и процессоры? вернее их неиспользование?
#32 by КМ155
не надо путать архитектуру ОС с архитектурой вычислений
#33 by Капитан Смоллет
Тогда что ты предлагаешь человеку в ?
#34 by Живой Ископаемый
2 над одной базой или разными? если над одной, то что они должны будут делать? ну вот реально, чтобы это пригодилось?
#35 by krasnojrov
над одной, к примеру: документ с 20000 строками разбивать на 4.
#36 by Irbis
А зачем делать документ на 20000 строк, с тем расчетом чтобы потом его разбивать на 4 по 5000. Может сразу делать 4 документа?
#37 by Капитан Смоллет
Да ничего не надо делать, пока однопоточное приложение. )) в человек предложил РАСПРЕДЕЛИТЬ нагрузку на многоядерном процессоре. Реально увеличить производительность системы можно либо переписав его на многопоточность либо использовать cloud-вычисления (типа фермы Цитрикса).
#38 by КМ155
[документ с 20000 строками разбивать на 4] неудачный пример всё упрётся в блокировки
#39 by krasnojrov
Что за блокировки? Я предложил каждый документ обрабатывать на своем ядре в отдельном 1cv8.exe одновременно.
#40 by КМ155
[Что за блокировки] Рг
#41 by krasnojrov
Как расшифровывается Рг?
#42 by Капитан Смоллет
Ну что вы мучаетесь, давно уже г.но:
#43 by КМ155
Регистры
#44 by Капитан Смоллет
+
#45 by КМ155
bing забыл
#46 by Живой Ископаемый
2 И? - ну вот ты разбил такой документ на 4 и что дальше? в какой момент тебе поможет то, что приложение будет использовать 4 процессора вместо 1?
#47 by Живой Ископаемый
В момент записи их в базу? Так о какой производительности ты говоришь применительно к базе данных? Что в 1С выполняется дофига чисто математических вычислений без записи в базу? Разве что в каком-нибудь РАУЗе?
#48 by Живой Ископаемый
2 вот что произойдет когда все четыре "Я предложил каждый документ обрабатывать на своем ядре в отдельном 1cv8.exe одновременно." документа обработаются? Ты уже замерял на что расходуется время при обработке документов?
#49 by krasnojrov
Попробовал, вот что получилось: Система-Win2008, двухпроцессорный сервер с 8 ядрами. Документ 20809 строк. Запускал 4 копии документа на 4 приложениях(на каждое приложение свой документ). Первая попытка с заданными соответствиями(каждое приложение на своем ядре) - время работы: 10:36:24 10:32:02 10:37:38 10:45:00, в среднем 10:37:46. вторая попытка без задания соответствий время работы: 11:54:26 11:32:44 12:39:47 11:45:33, в среднем 11:58:08, то есть используя соответствия получаем 11% быстродействия. Быстродействие по сравнению с запуском задачи на одном приложении увеличивается кратно!!! Эта задачка(10 часов работы) не сильно напрягала меня, на ночь оставишь - утром все сделалось. Следующая задачка - в справочнике 188000 элементов надо найти каждому элементу соответствие в других справочниках(10, к-во элементов 16000), без "мероприятий" грозится работать за 90 часов, оптимизацией кода должно быть 24 часа(не успею доделать), вся надежда на распаралеливание и большую "считалку"
#50 by Immortal
мне кажется про справочники - один, ну максимум 2 запроса 90 часов - много.
#51 by krasnojrov
от 30 до 300
#52 by Immortal
это перебором что ли?
#53 by krasnojrov
4 запроса крутятся
#54 by Immortal
жираф большой, ему видней,)
#55 by krasnojrov
И не говори, кума...
Тэги: Админ
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С