[PLUG] MPI for C.

tim at wescottdesign.com tim at wescottdesign.com
Fri Nov 24 23:42:30 UTC 2017


Since C was invented, there have been about 1.23 bazillion different 
guaranteed replacements for it.  All have fallen by the wayside except 
for C++.  I'm sure that Go is different, however (where's that damned 
"I'm being a sarcastic ass" emoticon, again?).

Why does program B have to lock the file?

Why not just have program A pipe the file to B, or produce the file and 
then pipe "It's ready" to B?  With the right program structure, either 
of those could be done from the command line:

> "Program A" | "Program B"

(I suspect you have a good reason, but I'm interested in hearing it).

On 2017-11-24 09:04, michael wrote:
> http://condor.cc.ku.edu/~grobe/docs/intro-MPI-C.shtml
> 
> I want to use message passing interface in C programs running on
> Raspberry Pi 3's running Raspbian Stretch, but I don't know which
> package to install
> via apt for mpi.h. There is the question of whether or not I can catch
> on to how mpi works quickly.  I have a hard December 12th deadline to
> make three
> C programs work at least decently together.  Program A produces a PNG
> file, program B tries to lock that file and display it.  There are a
> few cases to
> consider.  Case 1, the file does not exist, Case 2, the file exists
> but is not completely written out, Case 3, the file is written out and
> ready,
> Case 4, file exists but it is not a good PNG file.  The programs
> currently try to lock the file in question, but you don't want to lock
> on Cases 1, 2,
> or 4.  Best if A can signal B to process the file when the file is
> ready.  Signalling is preferable because the file is being frequently
> replaced by
> program A.
> 
> A separate issue, program A needs to start before program B because
> program B needs the file that A creates.  Thoughts on how to fix
> program B so that
> it will sleep and not lock the file before A has created it are very
> much appreciated.  One caveat, B should print an error message if A
> doesn't get
> the file made in 12-20 seconds.  The only thought I have is can a C
> program check for a specific process by name and sleep if that process
> can't be
> found?  Program B should NEVER run in the absence of program A for
> more than a few seconds and B should wait for no longer than twenty
> seconds to let
> A complete production of the PNG file it needs.
> 
> A friend and professional programmer recommends that the project be
> redone in the Go programming language.  Thoughts on using Go, sticking
> with C, or
> switching to C++ are very much appreciated.  OpenCV is C++ based by
> the way and we are doing computer vision processing in this project.
> The C
> language predates multi core programs that run multiple threads and
> pass information via multiple processes and multiple files.  The PNG
> file is
> written to an NFS 4 share by the way as well, so there is a networking
> component involved.  I don't have much time to figure out the
> networking part
> let alone change it sadly.  When you have multiple projectors calling
> one controller, that gets to be a lot for that controller.  Pi 3's are
> limited.
> What tools should I be using to troubleshoot the controller and make
> sure it isn't being overloaded?  I want to answer this question
> accurately, "How
> many projectors can one controller support?"  If the system isn't fast
> enough, it won't be used and everyone at Apex will be put out of work
> :-(
> _______________________________________________
> PLUG mailing list
> PLUG at pdxlinux.org
> http://lists.pdxlinux.org/mailman/listinfo/plug




More information about the PLUG mailing list