[petsc-dev] Alice Memory Snooper code

Barry Smith bsmith at mcs.anl.gov
Wed Feb 24 14:26:45 CST 2010

    I have located the tarball for the Alice Memory Snooper code  
(AMS). If anybody would like a copy of it to look at, send me an  
email. The code is ten years old and its makefile system is out of  
date and would need minor working to get things compiled. This does  
not include any PETSc code or interface code specific to PETSc (that  
can be found in very old PETSc tarballs if anyone is interested).

   How it works. You register blocks of memory and their sizes in your  
program via an API with names and then "lock" and "unlock" read and  
write access to those registered blocks via the API. There can be a  
hierarchy of these registered blocks. Then other programs can via  
another API, access these blocks of memory and read and write values  
to them. It is implemented by having the original process spawn a  
thread that waits for socket connects and processing the requests,  
subject to locks that may be turned on and off in the original  
program. It can be built so that original program is a parallel  
program running with MPI.  It provides a way for someone to "find out  
what the heck is actually going on" in a long running program without  
resorting to printfs and other nonsense. It is pretty well documented.

   It is a pretty sweet model and piece of code but would require a  
small amount of hacking to get running. If anyone wants to hack at it  
we could set up a repository.


   When we developed it, ORNL had a similar but much more limited  
piece of software that ran on top of PVM called CUMULUS, we were told  
that ANL shouldn't spend any money on AMS because it "competed" with  
CUMULUS. Hence I dropped it, that was over 10 years ago so I don't see  
that as an issue any more.

More information about the petsc-dev mailing list