Script to run MPI script. Number of detector/source and sink processes, events, event size and queue size. Optionally a list of nodes (with globbing). No nodes means run on current node. After the daqrate options, art options can be given.
Sample reader on the queue going. Sizes of buffers are not consistent in the application.
Thread for art still needs to be added. End-to-end test not ready yet, but likely getting close.
What about fixes event count?
Is this a good idea?
Troubleshooting for Chris has been an issue.
Good - OpenMP TLS problem is a glibc bug in SL6. Bug report will be made to the linux people in January.
Good - state machine for event processor is fine as is. Schedule does not need state machine.
Gennadiy concentrating on ptr. Not really necessary, but good exercise. Lack of debugging tools has been a problem.
What does making ptr thread safe mean?
Relevant for up-demand loading of products from multiple threads.
What about module cloning?
Cloning of modules is really necessary and a clone function must be supplied.
Can the copy constructor is used? Seems to be difficult because there is not a good point to use this.
Using shared_ptr is probably not what is wanted in modules, developers will likely want to use value_ptr.
We need good instructions for writing this clone function.
What about using OpenMP for locks?
algorithms and modules¶
Is OpenMP a reasonable candidate?
Concern of Walter - data structures for parallel processing may be available that we do not need to develop. our use of data structures (STL and other) will introduce problems for parallel processing applications. spilling guts from interface is going to be problematic. begin and end functions are going to cause problems.
Walter spoke of some parallel container libraries that are available.
using data parallelism or other schemes for operating on containers will be necessary to make things better.
Chris wants to work through an example. We can do this with the examples we collected over the year.