-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
So, two related things:
- Sometimes a loop might want to have multiple vectors/matrices/etc.; for example, maybe device A wants to output two things which are then read by devices B and C, or maybe device D wants to send something to device F, but without replacing the main pipeline state because device E needs it too.
- The current paradigm for doing IPC between anyloop and e.g. a plotting program in Julia is to use a named pipe. However, this has two disadvantages:
- named pipes have a limited buffer size, so Julia will eventually start blocking anyloop
- this is good for applications where we don't want to miss data, but not for e.g. a realtime view of a matrix
- named pipes involve copying to kernel space and back, which can be slow.
- named pipes have a limited buffer size, so Julia will eventually start blocking anyloop
My current proposal is to fix both of these issues by using proper mmaped shared memory. There are a few considerations for this, however:
- We can't use pointers in shared memory.
- Care will have to be taken with regards to allocating GSL objects to make their underlying data reside in shared memory.
- We probably want mutexes too.
- Julia will need a package or something.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels