Memory tagging in Charm++

Many scientific applications are logically decomposed into modules. each module performing a different type of computation. These modules are then linked together inside the same executable. While these modules are logically independent, they are not physically independent: a faulty module can corrupt the state of another one. By identifying the different modules inside an application, tagging the memory according to the different modules, and performing extra runtime checks, we can automatically detect certain type of errors. We implemented our idea inside the Charm++ runtime system, where modules can be easily identified. We illustrate the validity of our approach, and evaluate its overhead.