Имя: Пароль:
1C
1С v8
Почему 1С не поддерживает параллельные процессы (многоядерность)
,
0 Joshim
 
13.09.12
17:09
Кто что думает по этому поводу?
1 GROOVY
 
13.09.12
17:10
Потому что гладиолус!
2 ДенисЧ
 
13.09.12
17:10
Потому что её писали не настолько умные люди, как ты.
Подходит ответ?
3 Kreont
 
13.09.12
17:11
А зачем, вся тяжелая логика должна работать/обрабатываться не на 1С а на сервере (постгрес, МССЮЛ) и т.д., вопрос к ним.
4 Joshim
 
13.09.12
17:11
(2) нет
вот сижу жду пока журнал регистрации думает уже минут 5, при этом одно ядро простаивает
5 AaNnDdRrEeYy
 
13.09.12
17:11
сервер поддерживает, rphostы крутятся на разных ядрах
6 МихаилМ
 
13.09.12
17:12
вчера такая же тема была
7 Joshim
 
13.09.12
17:14
(3) у СУБД задачи предоставить данные, а к обрабатыванию данных СУБД никакого отношения не имеет
8 Joshim
 
13.09.12
17:14
(6)дайте ссылку пожалуйста
9 Лефмихалыч
 
13.09.12
17:15
(0) нахрена, например, тонкому клиенту многоядерность?
10 Alex S D
 
13.09.12
17:15
11 МихаилМ
 
13.09.12
17:15
12 Joshim
 
13.09.12
17:15
(5)(9) а как насчет обработки проведения по партиям, которая на одном ядре может сутками выполняться?
13 МихаилМ
 
13.09.12
17:16
(9)
для предобработки загружаемых данных.
14 Лефмихалыч
 
13.09.12
17:16
(12) будь мужиком, оптимизируй, блеать
15 Kreont
 
13.09.12
17:16
(0) Давай назови какие знаешь программы, что поддерживает параллельные процессы (многоядерность) ?
16 AaNnDdRrEeYy
 
13.09.12
17:16
(12) потому что она на клиенте.
17 Лефмихалыч
 
13.09.12
17:17
(13) какая религия мешает это делать на сервере?
18 1C-band
 
13.09.12
17:17
Действительно, при операциях ввода-вывода быстродействие процессора является самым "узким" местом и простаивание ядра ОЧЕНЬ критично. )))
19 Kreont
 
13.09.12
17:17
Проведение если долго, то ето не в ядрам проблема а в коде, или в скорости работы как раз сервера БД
20 eduspec82
 
13.09.12
17:17
много потоков = лицензирование по потокам
1с ЖАДНЫЕ
да и логика движка сложнее гыгыгыг
21 Gromover
 
13.09.12
17:18
Так как в 1с приоритет на Клиент-Серверный вариант то там все было построено на блокировках данных базы, а если они будут обращаться то будут вылетать баги.
22 AaNnDdRrEeYy
 
13.09.12
17:19
(17) в 8.2 для этого нужно передать контекст формы. а если канал слабый то лутше обрабатывать на клиенте и вызывать безконтекстные методы сервера.
23 Kreont
 
13.09.12
17:19
Запусти Оперу, ядра простаивать не будут :)
24 rs_trade
 
13.09.12
17:19
(12) ты правда думаешь что долго из за одного ядра?
25 ЧашкаЧая
 
13.09.12
17:19
(4) Журнал регистрации простой текстовик, как вы себе представляете чтение текстовика в два и больше потоков?

(15) Гугл хром
26 Joshim
 
13.09.12
17:21
(16) на сервере то же самое, не будет одна обработка использовать больше одного ядра
27 rs_trade
 
13.09.12
17:22
(26) как напишешь
28 МихаилМ
 
13.09.12
17:23
(13)
религия практики проектирования системп распределенных  вычислений.
29 Kreont
 
13.09.12
17:24
(25) Про Гугл хром, не угадал: он тупо запускает каждую вкладку в отдельном процессе, а не например обработку загрузки и показа одной страницы на 8-ми ядрах, это не совсем то
30 Joshim
 
13.09.12
17:24
(27) а можно написать чтоб задействовать свободные ядра? как?
31 Beduin
 
13.09.12
17:24
(4) Как у тебя журнал регистрации загрузить целое ядро?
Он вообще тупо из системы хранения читает и все.
32 dfxz
 
13.09.12
17:24
(12) да потому что у проведение по партиям типовая реализация не очень, её обычно переписывают и ускоряемся в разы....
33 Kreont
 
13.09.12
17:25
(5) Не то, отдельные процессы, это хорошо, но для правильной многопоточности и распаралеливания, надо чтоб ядро умело одной задачей грузить все ядра
34 AaNnDdRrEeYy
 
13.09.12
17:25
(27) в (26) прав. одна обработка работает под одним сеансом, один сеанс ложится только на один rphost, а один рпхост только на одно ядро.
35 aka MIK
 
13.09.12
17:26
(15) rar
36 Beduin
 
13.09.12
17:26
И вообще распределение задачи по ядрам это функция ОС. Ее либо используешь когда программируешь либо нет. Поправьте если не прав?
37 Kreont
 
13.09.12
17:27
Я из програм что умеют себя распаралеливать по ядрам один раз только видел какой то обработчик видео, и все :(
38 Beduin
 
13.09.12
17:27
(37) WinRar еще. И этот Battlefield!
39 rs_trade
 
13.09.12
17:28
(30)(34) если некую задачу разбить на фоновые задачи, то они грузят все ядра. и грузят прилично.
40 Joshim
 
13.09.12
17:28
(36) да, но в языке разработки разработчик описывает логику распаллеливания. В 1С почему то не делают этого
41 Mafoni
 
13.09.12
17:29
ТС - журнал регистрации - это файло как ты его многопоточно читать то будеш ?
42 AaNnDdRrEeYy
 
13.09.12
17:29
(39) а синхронизировать их как будеш ну типо оператор lock же нету или класса mutex?
43 aka MIK
 
13.09.12
17:29
(0) Потому что им еще выпускать версию 9...
44 ДенисЧ
 
13.09.12
17:30
(42) кто мешает локи самому сделать?
45 Kreont
 
13.09.12
17:31
Проверил: Winrar только при упаковке грузит ядра, при распаковке только одно :)
46 AaNnDdRrEeYy
 
13.09.12
17:32
(44) через регистры или константы? это не локи это извращения. я не говорю про блокировки таблиц базы данных, я говорю про то когда один поток или процесс должен подождать завершение другого или про блоки потокобезопасного когда доступ к блоку должен получить только 1 поток
47 rs_trade
 
13.09.12
17:35
(46) в цикле ожидать завершения всех задач. через обработчик ожидания наверное еще можно.
48 Joshim
 
13.09.12
17:35
(32) если стоит мощный сервак с мощной СУБД и при проведении по партиям СУБД практически простаивает, то это вопрос к платформе больше, так как узкое место процессор. Поправьте если я не прав?
49 МихаилМ
 
13.09.12
17:37
линейные преобразования прекрано рапараллеливаются . к ним можно отнести 1/3 кода задачи 1с програмирования.

вот интересный сайт на тему многопоточности и 1с
http://www.richmedia.us/post/2011/05/04/multithreading-1c-82.aspx
http://www.richmedia.us/post/2009/11/02/1c-multithreading-and-callback-functions.aspx
50 Lexusss
 
13.09.12
17:37
В УФ формирование отчета выполняется на одном ядре. В это время ты можешь работать, загружая другое ядро
51 Joshim
 
13.09.12
17:37
(46) так это и не ясно, почему 1С в платформе не делает поддержки методов и функций для создания и синхронизации процессов
52 rs_trade
 
13.09.12
17:38
(46) я делал выгрузку большого объема данных параллельно. мне не надо было ждать. исходный массив данных делился на несколько частей, обрабатывался и выгружался в отдельный файл. при использовании 2-3-х фоновых заданий время выполнения сокращалось примерно в таких же пропорциях.
53 Ахиллес
 
13.09.12
17:42
(41) Первый поток спереду, второй сзаду. Втретятся посередине :-)
Уже ускорение в два раза. :-)
54 AaNnDdRrEeYy
 
13.09.12
17:42
(52)а вот если бы надо было записать все в 1 файл а обработать в 3 фоновых  то пришлось бы ждать когда обработку завершат все 3 и записывать в том который вызвал 3 фоновых вот тут было бы на 1С гораздо сложнее.
55 Нуф-Нуф
 
13.09.12
17:52
(1) согласен. это кстати официальная позиция 1С по многим вопросам
56 rs_trade
 
13.09.12
18:01
(51) потому что это ни к чему.
57 Рэйв
 
13.09.12
18:06
(0)  Там и без организации параллельных потоков глюков хватает...Так что лучше не надо
58 Рэйв
 
13.09.12
18:07
(0)+ и кстати. Многоядерность и много поточночть - это как бы разные вещи.
59 Fragster
 
гуру
13.09.12
18:14
60 Fragster
 
гуру
13.09.12
18:15
в 8.2, кстати, намного лучше фоновые работают
61 Рэйв
 
13.09.12
18:18
(60)Фоновые - это пример многопоточности Win 95. Она на самом деле не была многозадачной. Просто по прерыванию один поток прерывал выполнение других и какое то время выполнялся, а потом по таймеру отдавал управление обратно
62 Fragster
 
гуру
13.09.12
18:19
(61) это только на файловой, на клиент-серверной реально параллельно выполняются
63 Рэйв
 
13.09.12
18:20
(62)Споить не буду.Не проверял лично.
64 KRV
 
13.09.12
18:30
Нахрена в ларьках многоядерность?
65 Terve-R-
 
13.09.12
18:30
Нахрен мне ваши сервер не упал! У меня все базы файловые!!
66 Terve-R-
 
13.09.12
18:30
7 ядер простаивает :(
67 Terve-R-
 
13.09.12
18:34
и все равно как правильно заметили выше
"одна обработка работает под одним сеансом, один сеанс ложится только на один rphost, а один рпхост только на одно ядро"
68 МуМу
 
13.09.12
18:42
1С поддерживает параллельные процессы, просто некоторые неумеют их готовить.
На эту тему писал ранее http://softpoint.ru/article_id376.htm
(12) http://softpoint.ru/article_id375.htm  Это тоже возможно.
Вообще на эту тему есть целое научное направление. Вот пример доклада на конференции. http://pavt.susu.ru/2012/short/261.pdf
(46) Согласен аналога мьютекса в стандартном функционале несколько не хватает да и издержки на фоновых задачах есть небольшие. Но это тоже обходится использованием внешней компоненты с помощью которой можно передавать управление.
Вывод общий - писать с использованием параллельных вычислений дольше и дороже. Вот собственно говоря и причина почему их так редко используют.
69 МуМу
 
13.09.12
18:48
(57)+1
70 H A D G E H O G s
 
13.09.12
20:31
Я писал прогу распределенных вычислений по сети (по компам раскидывала брутфорс на xor). Это писец такое писать. Но это куйня. Писец такое отлаживать.
71 H A D G E H O G s
 
13.09.12
20:33
Вообще я куею от того, что доблесные спецы делают все на сервере, в то время, как весь мир идет к распределенным вычислениям.
Это конечно годно, когда нужны данные в процессе, но если нет, или данных немного - отлично все можно сделать на клиенте.
72 Ненавижу 1С
 
гуру
13.09.12
20:40
(71)а я вообще за то, чтобы проведение делалось прямо на сервере баз данных
73 Рэйв
 
13.09.12
20:42
(70)Я писал рабочее место для менеджера заказов поставщиков...Со всеми их формулами и 3-6 месячными прогнозами

Твой распределенные нервно курит в стронке.
74 aleks-id
 
13.09.12
20:43
(72) а в управляемом приложении оно где то еще может провестись?
75 ЧашкаЧая
 
13.09.12
20:43
(72) На СУБД имелось ввиду?
76 МуМу
 
13.09.12
20:46
(72) Это конечно да. Скорость сразу на порядок быстрее.Нет лишних издержек. Все делается на СУБД. У нас у 7-и клиентов к примеру реализована большая логика напрямую на SQL.Причем у двух БД не на 1С.Мне к примеру одно время PLSQL стал как родной.(да и TSQL тоже, хотя сейчас подзабыл). Сейчас готовлю доклад для MSSQL club на тему параллельных вычеслений для MSSQL(TSQL).
77 Рэйв
 
13.09.12
20:47
(72)Глупость:-)
78 Рэйв
 
13.09.12
20:47
+(77)Уж извини
79 H A D G E H O G s
 
13.09.12
20:48
Реальные спецы, я так посмотрю, меряются логарифмической линейкой.
80 МуМу
 
13.09.12
20:53
Думаю, первый вопрос политический. 1С должна "разрабатываться" на 1С языке. Второй вопрос это унификация (MSSQL, ORACLE,DB2, файловая версия).Хотя из них только MSSQL можно считать корпоративным стандартом(мое мнение).
81 Рэйв
 
13.09.12
20:55
(80)Да ты вообще не в теме..

1С -  и DOS...  
Это тема.
82 Рэйв
 
13.09.12
20:57
Как наладить соответствие?...Никто же даже не думал!
83 Рэйв
 
13.09.12
20:57
Мы все умрем..Я так и знал.
84 МуМу
 
13.09.12
20:59
(72),(77) Проблема основная в сопровождении изменений. Сложно будет вести один и тот же код(логику) на TSQL(PLSQL) и на 1С. Нужно выбирать что то одно.  Тогда пришлось бы генерить автоматически читаемые views.(мы такое делали для онлайн интеграции с web). Но в этом случае вопрос нелицензионного использования(точнее его контроля) усложняется серьезно технически. Мое мнение что это одна из основных проблем для официального открытия 1С доступа напрямую к данным.
85 Рэйв
 
13.09.12
21:00
(84)Все равно (83)...
Эхх...
86 Рэйв
 
13.09.12
21:04
Мне вот только интересно, чего ожидают , присутствующие в этой теме?6-)))

Что бы ЭХХ  было прям сейчас, а вы успели запастись попкорном?.

Обойдетесь.
87 Рэйв
 
13.09.12
21:05
спасибо за внимание, можете расходиться.
88 МуМу
 
13.09.12
21:09
Нет дискусии, а мне много чего есть сказать на эту тему:)
89 МуМу
 
13.09.12
21:12
Подведу итог. Тренд на ближайшие 20 лет - параллельные вычисления.(там возможно квантовые суперэвм появятся) Только вот плюсы от их использования пока не покрывают минусы(трудно и дорого). Думаю это произойдет через 5-10 лет.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн