I second that.
An empty 3.15 IOC has ~15 threads, plus 2 for each CA client, plus 1 for
each asyn port, plus 1 for each state set, plus a few for autoSaveRestore...
Starting three IOCs on one machine, you will see a wealth of threads
being thrown around between the available cores.
You might want to experiment with using the standard scheduler vs. using
posix real-time scheduling. I have seen systems acting very different
depending on that switch, especially when they are being loaded.
In case you decide you need even more knobs to screw with the real-time
behavior, the MCoreUtils module [1] offers ways to tune CPU affinity,
priority, and scheduling policy of threads inside IOCs.
There is no problem in running multiple IOCs in parallel. However, in
specific configurations clients will not be able to "see" all IOCs on
one node. There is a slim and neat iptables trick that you can apply to
that machine [2], which fixes the behavior requiring no changes on the
client side.
Good luck!
~Ralph
[1] http://epics.sourceforge.net/mcoreutils/
[2]
https://wiki-ext.aps.anl.gov/epics/index.php/How_to_Make_Channel_Access_Reach_Multiple_Soft_IOCs_on_a_Linux_Host
On 12/01/2016 14:08, Mark Rivers wrote:
Either way should work. If you run 3 devices in one IOC they will still use multiple threads/cores for some things, for example each asynSerialPort driver will run in its own thread. There is no problem to run multiple IOCs on the same computer either.
Mark
________________________________________
From: [email protected] [[email protected]] on behalf of Christian Pauly [[email protected]]
Sent: Tuesday, January 12, 2016 6:45 AM
To: [email protected]
Subject: running multiple iocs on raspberry 2
Hi
I am setting up a measuerement setup consisting of three individual
devices, which i would like to control with EPICS, running the IOC on a
Raspberry Pi. Communication with each of the devices is done using
altogether three USB-Serial converter, and based on StreamDevice.
I already have working IOCs for each individual device.
Now:
If i would like to run the full setup simultaneously:
Is it better to run the three IOCs individual on the Raspberry, one for
each device ? And relying on Linux for the Multitasking ?
Or is it preferable to run only a single IOC, and load the three
database .dbd files into the same IOC, Initializing all three Serial
ports in the same st.cmd startup file ???
The Raspberry2 has a quadcore CPU, so I could imagine, that running
three individual IOCs might give better performance, since three cores
are used ? But isn't there a problem to run more than one IOC in parallel ?
Any advice welcome !
Best regards.
Christian
- References:
- running multiple iocs on raspberry 2 Christian Pauly
- RE: running multiple iocs on raspberry 2 Mark Rivers
- Navigate by Date:
- Prev:
Re: Device Support for I2C and GPIO Jeong Han Lee
- Next:
Re: Device Support for I2C and GPIO Florian Feldbauer
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
<2016>
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
RE: running multiple iocs on raspberry 2 Mark Rivers
- Next:
RE: Cost effective solution for monitor a large number of temperatures w EPICS austen.rose
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
<2016>
2017
2018
2019
2020
2021
2022
2023
2024
|