Всем привет.
Вопрос такой, касательно циклов.
На картинке ниже 3 цикла, которые выполняются параллельно.
А если мне понадобится 30 циклов, например, это можно реализовать средствами , чтобы вручную огород не городить?
Параллельные циклы (клонирование)
-
Sergey Ivanov
- expert
- Сообщения: 1217
- Зарегистрирован: 01 мар 2009, 20:54
- Награды: 5
- Версия LabVIEW: 2018
- Откуда: Санкт-Петербург, Кронштадт
- Благодарил (а): 11 раз
- Поблагодарили: 1 раз
- Контактная информация:
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Параллельные циклы (клонирование)
Как обычно. оформляете в виде реентрантной VI и динамически запускаете столько экземпляров, сколько вам нужно.
Посмотрите примеры, например, Asynchronous Call and Collect
Посмотрите примеры, например, Asynchronous Call and Collect
-
Sergey Ivanov
- expert
- Сообщения: 1217
- Зарегистрирован: 01 мар 2009, 20:54
- Награды: 5
- Версия LabVIEW: 2018
- Откуда: Санкт-Петербург, Кронштадт
- Благодарил (а): 11 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Параллельные циклы (клонирование)
Стал разбираться, но возник вопрос. Время обработки циклов разное. В первом случае ( когда одна ссылка) время примерно 600 мс, во втором, когда 4 ссылки - времени затрачивается больше в 4 раза.
Оно так и должно ? Или я неправильно сделал ?
Оно так и должно ? Или я неправильно сделал ?
- Вложения
-
- read_url.vi
- (13.66 КБ) 97 скачиваний
-
- Target - HTTP Get for Async Call.vi
- (9.75 КБ) 93 скачивания
-
- test-raz.vi
- (10.52 КБ) 101 скачивание
Добро пожаловать на http://rk-stud.ru/
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: Параллельные циклы (клонирование)
Сейчас нет параллельного запуска, функции выполняются последовательно.
По этому и время зависит от ping и количества ссылок.
По этому и время зависит от ping и количества ссылок.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- professor
- Сообщения: 3406
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Параллельные циклы (клонирование)
Логично, что на запрос 4 страниц времени в 4 раза больше.Sergey Ivanov писал(а): ↑10 фев 2021, 23:25 В первом случае ( когда одна ссылка) время примерно 600 мс, во втором, когда 4 ссылки - времени затрачивается больше в 4 раза.
И подозреваю, что вы сделали не совсем то, что предлагалось.
Надо исходный цикл оформить в виде subVI и запустить в свободное плавание. И из каждого клона отправлять результат в какой-то центр обработки
Впрочем, зависит от желаемого результата. Нужна ли вообще параллельная работа? Может, достаточно получать каждую страницу по-очереди? Тогда и реентрантность не понадобится.
-
Sergey Ivanov
- expert
- Сообщения: 1217
- Зарегистрирован: 01 мар 2009, 20:54
- Награды: 5
- Версия LabVIEW: 2018
- Откуда: Санкт-Петербург, Кронштадт
- Благодарил (а): 11 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Параллельные циклы (клонирование)
Что изменить можно, чтобы был параллельный запуск ?
Что значит свободное плавание ?) Параллельная работа нужна.Artem.spb писал(а): ↑11 фев 2021, 00:43 Надо исходный цикл оформить в виде subVI и запустить в свободное плавание. И из каждого клона отправлять результат в какой-то центр обработки
Впрочем, зависит от желаемого результата. Нужна ли вообще параллельная работа? Может, достаточно получать каждую страницу по-очереди? Тогда и реентрантность не понадобится.
Добро пожаловать на http://rk-stud.ru/
-
- adviser
- Сообщения: 231
- Зарегистрирован: 06 ноя 2020, 15:37
- Версия LabVIEW: 19
- Благодарил (а): 18 раз
- Поблагодарили: 37 раз
- Контактная информация:
Re: Параллельные циклы (клонирование)
под свободным плаванием, насколько я понимаю, подразумевается вызов vi c флагом call and forget.Sergey Ivanov писал(а): ↑11 фев 2021, 07:53 Что значит свободное плавание ?) Параллельная работа нужна.
https://knowledge.ni.com/KnowledgeArtic ... AE&l=ru-RU В примерах есть разные варианты. Там только не очень подробно показано как данные передавать между этими vi и сервером.
В данном случае больше очередь подходит.
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Параллельные циклы (клонирование)
viewtopic.php?p=64134#p64134Sergey Ivanov писал(а): ↑11 фев 2021, 07:53Что значит свободное плавание ?) Параллельная работа нужна.
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: Параллельные циклы (клонирование)
Пример примитивный, но думаю идея понятна.
Тут как раз в цикле мы запускаем несколько SubVI и "забываем" про них.
Потом в другом цикле ожидаем от них ответа, а когда все отозвались, выводим результат.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...