Параллельные циклы (клонирование)

Темы связанные с инженерными разработками, но не подходящие в другие ветки форума
Ответить
Аватара пользователя
Sergey Ivanov

Activity Professionalism Gold Автор
expert
expert
Сообщения: 1217
Зарегистрирован: 01 мар 2009, 20:54
Награды: 5
Версия LabVIEW: 2018
Откуда: Санкт-Петербург, Кронштадт
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Параллельные циклы (клонирование)

Сообщение Sergey Ivanov »

Всем привет.
Вопрос такой, касательно циклов.
На картинке ниже 3 цикла, которые выполняются параллельно.
Скриншот 10-02-2021 19.50.33.png
А если мне понадобится 30 циклов, например, это можно реализовать средствами :labview: , чтобы вручную огород не городить?
Добро пожаловать на http://rk-stud.ru/
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Параллельные циклы (клонирование)

Сообщение Borjomy_1 »

Как обычно. оформляете в виде реентрантной VI и динамически запускаете столько экземпляров, сколько вам нужно.
Посмотрите примеры, например, Asynchronous Call and Collect
Аватара пользователя
Sergey Ivanov

Activity Professionalism Gold Автор
expert
expert
Сообщения: 1217
Зарегистрирован: 01 мар 2009, 20:54
Награды: 5
Версия LabVIEW: 2018
Откуда: Санкт-Петербург, Кронштадт
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Параллельные циклы (клонирование)

Сообщение Sergey Ivanov »

Стал разбираться, но возник вопрос. Время обработки циклов разное. В первом случае ( когда одна ссылка) время примерно 600 мс, во втором, когда 4 ссылки - времени затрачивается больше в 4 раза.
Оно так и должно ? Или я неправильно сделал ?
Вложения
read_url.vi
(13.66 КБ) 96 скачиваний
Target - HTTP Get for Async Call.vi
(9.75 КБ) 92 скачивания
test-raz.vi
(10.52 КБ) 100 скачиваний
Скриншот 10-02-2021 23.21.07.png
Скриншот 10-02-2021 23.21.40.png
Скриншот 10-02-2021 23.21.53.png
Добро пожаловать на http://rk-stud.ru/
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5461
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 27 раз
Поблагодарили: 86 раз

Re: Параллельные циклы (клонирование)

Сообщение IvanLis »

Сейчас нет параллельного запуска, функции выполняются последовательно.
По этому и время зависит от ping и количества ссылок.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3391
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Параллельные циклы (клонирование)

Сообщение Artem.spb »

Sergey Ivanov писал(а): 10 фев 2021, 23:25 В первом случае ( когда одна ссылка) время примерно 600 мс, во втором, когда 4 ссылки - времени затрачивается больше в 4 раза.
Логично, что на запрос 4 страниц времени в 4 раза больше.
И подозреваю, что вы сделали не совсем то, что предлагалось.

Надо исходный цикл оформить в виде subVI и запустить в свободное плавание. И из каждого клона отправлять результат в какой-то центр обработки
Впрочем, зависит от желаемого результата. Нужна ли вообще параллельная работа? Может, достаточно получать каждую страницу по-очереди? Тогда и реентрантность не понадобится.
Аватара пользователя
Sergey Ivanov

Activity Professionalism Gold Автор
expert
expert
Сообщения: 1217
Зарегистрирован: 01 мар 2009, 20:54
Награды: 5
Версия LabVIEW: 2018
Откуда: Санкт-Петербург, Кронштадт
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Параллельные циклы (клонирование)

Сообщение Sergey Ivanov »

IvanLis писал(а): 11 фев 2021, 00:43 Сейчас нет параллельного запуска, функции выполняются последовательно.
По этому и время зависит от ping и количества ссылок.
Что изменить можно, чтобы был параллельный запуск ?
Artem.spb писал(а): 11 фев 2021, 00:43 Надо исходный цикл оформить в виде subVI и запустить в свободное плавание. И из каждого клона отправлять результат в какой-то центр обработки
Впрочем, зависит от желаемого результата. Нужна ли вообще параллельная работа? Может, достаточно получать каждую страницу по-очереди? Тогда и реентрантность не понадобится.
Что значит свободное плавание ?) Параллельная работа нужна.
Добро пожаловать на http://rk-stud.ru/
ujin1
adviser
adviser
Сообщения: 231
Зарегистрирован: 06 ноя 2020, 15:37
Версия LabVIEW: 19
Благодарил (а): 18 раз
Поблагодарили: 37 раз
Контактная информация:

Re: Параллельные циклы (клонирование)

Сообщение ujin1 »

Sergey Ivanov писал(а): 11 фев 2021, 07:53 Что значит свободное плавание ?) Параллельная работа нужна.
под свободным плаванием, насколько я понимаю, подразумевается вызов vi c флагом call and forget.
https://knowledge.ni.com/KnowledgeArtic ... AE&l=ru-RU
Start asynchronous call.jpg
Start asynchronous call proj.jpg
В примерах есть разные варианты. Там только не очень подробно показано как данные передавать между этими vi и сервером.
В данном случае больше очередь подходит.
Изображение
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Параллельные циклы (клонирование)

Сообщение dadreamer »

Sergey Ivanov писал(а): 11 фев 2021, 07:53Что значит свободное плавание ?) Параллельная работа нужна.
viewtopic.php?p=64134#p64134
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5461
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 27 раз
Поблагодарили: 86 раз

Re: Параллельные циклы (клонирование)

Сообщение IvanLis »

Sergey Ivanov писал(а): 11 фев 2021, 07:52 Что изменить можно, чтобы был параллельный запуск ?
Пример примитивный, но думаю идея понятна.
Тут как раз в цикле мы запускаем несколько SubVI и "забываем" про них. :wink:
Потом в другом цикле ожидаем от них ответа, а когда все отозвались, выводим результат.
Ivanov.zip
(12.85 КБ) 91 скачивание
Call.png
Get.png
Ответить

Вернуться в «Общие»