Documentation for ReadOnly is inaccurate regarding the number of copies per process
"They are broadcast to every PE by the Charm++ runtime, and can be accessed in the same way as C++ ``global'' variables on any PE. "
Readonly data is broadcast to every Cmi Node (process), only one copy exists per process. Not per PE. This applies to simple types and complicated types. We only pup it once.
This inaccuracy could lead to at least two different kinds of trouble
1. Assume that one needs a different mechanism to get one copy per process readonly data, thereby wasting effort reinventing the wheel.
2. Falsely assume your readonly data has an independent copy on each PE, then modifying it (in violation of the readonly label), thus leading to ugly race conditions and correctness failures when all the PEs of a single node are in fact modifying the same data.