Параллельные вычисления

Простейшие вопросы в области инженерной разработки

Параллельные вычисления

Postby Fancnc on 20 Mar 2017, 22:35

Здравствуйте!
Подскажите как организовать параллельные вычисления с назначением ядра под определенную задачу. Есть два независимых цикла, 1-ый сбора данный, 2-ой обработка этих данных. на первый цикл отводится 1 и 2 ядро, а под обработку с 3 по 8. Возможно ли такое организовать?
Fancnc
assistant
assistant
 
Posts: 107
Joined: 15 Nov 2011, 22:39
Location: СПб
LabVIEW Version: 2016
Karma: 5

Re: Параллельные вычисления

Postby IvanLis on 20 Mar 2017, 23:09

Fancnc wrote:Здравствуйте!
Подскажите как организовать параллельные вычисления с назначением ядра под определенную задачу. Есть два независимых цикла, 1-ый сбора данный, 2-ой обработка этих данных. на первый цикл отводится 1 и 2 ядро, а под обработку с 3 по 8. Возможно ли такое организовать?

Посмотрите: http://zone.ni.com/reference/en-XX/help ... pu_assign/
User avatar
IvanLis
professor
professor
 
Posts: 4381
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 675
hardware VIP bloggers teachers

Re: Параллельные вычисления

Postby Fancnc on 21 Mar 2017, 00:11

Получается, нужно делать 2 цикла сбора данных и 6 циклов обработки, и потом все это дело синхронизировать :suicide: ???
Fancnc
assistant
assistant
 
Posts: 107
Joined: 15 Nov 2011, 22:39
Location: СПб
LabVIEW Version: 2016
Karma: 5

Re: Параллельные вычисления

Postby Fancnc on 21 Mar 2017, 01:56

По такому принципу нужно делать ?
Похоже этот вариант не подходит, ацп работают на частоте 2 МГц и как их синхронизировать в разных циклах не особо понимаю...
Attachments
test_FFT_timed_loop.vi
(93.78 KiB) Downloaded 30 times
Fancnc
assistant
assistant
 
Posts: 107
Joined: 15 Nov 2011, 22:39
Location: СПб
LabVIEW Version: 2016
Karma: 5

Re: Параллельные вычисления

Postby IvanLis on 21 Mar 2017, 21:41

Fancnc wrote:По такому принципу нужно делать ?
Похоже этот вариант не подходит, ацп работают на частоте 2 МГц и как их синхронизировать в разных циклах не особо понимаю...


Выложите snippet, не все переехали на 2016 версию..
User avatar
IvanLis
professor
professor
 
Posts: 4381
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 675
hardware VIP bloggers teachers

Re: Параллельные вычисления

Postby Artem.spb on 21 Mar 2017, 21:51

Fancnc wrote:По такому принципу нужно делать ?
Похоже этот вариант не подходит, ацп работают на частоте 2 МГц и как их синхронизировать в разных циклах не особо понимаю...

синхронизация должна выражаться в чём?
у вас и так всё условно работает. С АЦП берётся пачка данных (на 2МГц про поточечную обработку можно забыть), через очередь отправляется в соседний цикл, там обрабатывается.
Только нотификаторы - не самый лучший способ в данном случае. Если цикл обработки пропустит данный, они безвозвратно затрутся следующей пачкой.

IvanLis wrote:Выложите snippet, не все переехали на 2016 версию..

приложение максимум в 15, просто некоторым лень корректно заполнить профиль
Artem.spb
expert
expert
 
Posts: 1110
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 207
CLD hardware I/O VIP freelance

Re: Параллельные вычисления

Postby Fancnc on 21 Mar 2017, 22:16

синхронизация должна выражаться в чём?

синхронный старт всех модулей ацп, когда в разных циклах, то каждый модуль стартует рандомно, если делать все в одном цикле проблем нет.
на 2МГц про поточечную обработку можно забыть

PXIe-8880 справляется c 64 каналами по 2МГц, но на грани, хочется раскинуть определенные задачи по ядрам, а то стандартный параллелизм For Loop странно раскидывает задачи
Только нотификаторы - не самый лучший способ в данном случае

а как лучше сделать?
приложение максимум в 15, просто некоторым лень корректно заполнить профиль

на работе и дома разные версии, извиняйте=)
Выложите snippet, не все переехали на 2016 версию..
Attachments
code.png
Last edited by Fancnc on 21 Mar 2017, 22:34, edited 1 time in total.
Fancnc
assistant
assistant
 
Posts: 107
Joined: 15 Nov 2011, 22:39
Location: СПб
LabVIEW Version: 2016
Karma: 5

Re: Параллельные вычисления

Postby Artem.spb on 21 Mar 2017, 22:28

Fancnc wrote:
синхронизация должна выражаться в чём?

синхронный старт всех модулей ацп, когда в разных циклах, то каждый модуль стартует рандомно, если делать все в одном цикле проблем нет.

как раз в запихивании всего чтения в один цикл нет ничего плохого. Но если хочется разнести то копайте стартовые триггеры (есть во многих примерах чтения DAQmx)

Только нотификаторы - не самый лучший способ в данном случае

а как лучше сделать?

очередь
Artem.spb
expert
expert
 
Posts: 1110
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 207
CLD hardware I/O VIP freelance

Re: Параллельные вычисления

Postby Fancnc on 21 Mar 2017, 22:46

Но если хочется разнести то копайте стартовые триггеры (есть во многих примерах чтения DAQmx)

Так и делаю, но проблема в том, что циклы запускаются в разное время и сбор данных и из-за этого разбегается. Синхронизировать их можно с частотой 1 КГц, что не очень помогает, если ацп работают на 2МГц,
Fancnc
assistant
assistant
 
Posts: 107
Joined: 15 Nov 2011, 22:39
Location: СПб
LabVIEW Version: 2016
Karma: 5

Re: Параллельные вычисления

Postby Artem.spb on 21 Mar 2017, 22:57

при чём тут старт циклов?
конфигурируете стартовые триггеры, и чтение начнётся одновременно. А циклы подождут
http://www.ni.com/tutorial/4329/en/
Artem.spb
expert
expert
 
Posts: 1110
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 207
CLD hardware I/O VIP freelance

Re: Параллельные вычисления

Postby Borjomy_1 on 21 Mar 2017, 23:36

У очередей и нотификаторов есть ограничения по времени выполнения, накладываемые операционной системой (время переключения процессов). Поэтому даже на мощной машине интенсивная работа с очередями нагружает процессор серьезно (вопрос не в размере передаваемых данных, а в частоте вызова функций чтения и записи в очередь). Альтернативный вариант кода без очередей работает на пару порядков быстрее. Для высокоскоростных вычислений это может стать проблемой.
Borjomy_1
expert
expert
 
Posts: 1687
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 295
VIP

Re: Параллельные вычисления

Postby Fancnc on 21 Mar 2017, 23:47

конфигурируете стартовые триггеры, и чтение начнётся одновременно. А циклы подождут

наверное, что то не понимаю.
конфигурируется система следующим образом, используется counter он же задает и fd и запускается по тригеру
схему приблизительно набросал как реализовано
Attachments
sync.PNG
Fancnc
assistant
assistant
 
Posts: 107
Joined: 15 Nov 2011, 22:39
Location: СПб
LabVIEW Version: 2016
Karma: 5

Re: Параллельные вычисления

Postby Artem.spb on 22 Mar 2017, 00:09

почти, но ведомую задачу надо подготовить к старту, а ведущую стартовать только после подготовки ведомой
start.png

за безошибочность не ручаюсь, проверить на на чем
Artem.spb
expert
expert
 
Posts: 1110
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 207
CLD hardware I/O VIP freelance

Re: Параллельные вычисления

Postby Fancnc on 22 Mar 2017, 00:15

но ведомую задачу надо подготовить к старту, а ведущую стартовать только после подготовки ведомой

а Flat Sequence Structure нельзя использовать??
Fancnc
assistant
assistant
 
Posts: 107
Joined: 15 Nov 2011, 22:39
Location: СПб
LabVIEW Version: 2016
Karma: 5

Re: Параллельные вычисления

Postby Artem.spb on 22 Mar 2017, 00:32

зачем, если есть провода?
Artem.spb
expert
expert
 
Posts: 1110
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 207
CLD hardware I/O VIP freelance

Next

Return to Для чайников

Who is online

Users browsing this forum: No registered users and 4 guests

cron