On Jun 4, 2006, at 12:35 PM, Mario Blazevic wrote:
The profiled version of the latest Edison library doesn't work for me.
I got Edison 1.2 via darcs. I used the regular 'make system' command to build and install the regular (non-profiled) version of Edison. Then I went to edison-api and edison-core subdirectories, in turn, and executed the Cabal commands:
runhaskell Setup.hs clean runhaskell Setup.hs configure --enable-library-profiling runhaskell Setup.hs build runhaskell Setup.hs install
The library seems to be properly installed:
$ ls -l /usr/local/lib/EdisonCore-1.2/ghc-6.4.2/ total 9985 drwxr-xr-x 3 root root 72 Jun 3 20:28 Data -rw-r--r-- 1 root root 1939264 Jun 4 12:08 HSEdisonCore-1.2.o -rw-r--r-- 1 root root 2932114 Jun 4 12:08 libHSEdisonCore-1.2.a -rw-r--r-- 1 root root 5339788 Jun 4 12:08 libHSEdisonCore-1.2_p.a
$ ls -l /usr/local/lib/EdisonCore-1.2/ghc-6.4.2/Data/Edison/ Assoc/ total 720 -rw-r--r-- 1 root root 86508 Jun 4 12:08 AssocList.hi -rw-r--r-- 1 root root 86513 Jun 4 12:08 AssocList.p_hi -rw-r--r-- 1 root root 61267 Jun 4 12:08 Defaults.hi -rw-r--r-- 1 root root 61272 Jun 4 12:08 Defaults.p_hi -rw-r--r-- 1 root root 67740 Jun 4 12:08 PatriciaLoMap.hi -rw-r--r-- 1 root root 67745 Jun 4 12:08 PatriciaLoMap.p_hi -rw-r--r-- 1 root root 56208 Jun 4 12:08 StandardMap.hi -rw-r--r-- 1 root root 56213 Jun 4 12:08 StandardMap.p_hi -rw-r--r-- 1 root root 86239 Jun 4 12:08 TernaryTrie.hi -rw-r--r-- 1 root root 86244 Jun 4 12:08 TernaryTrie.p_hi
I compile the profile version of my program using the following line:
ghc -package text -package EdisonAPI -fglasgow-exts --make Main -o gens-prof -odir profiler -hidir profiler -prof -auto-all
The ghc version is 6.4.2, by the way. When I run the compiled program, it keeps grabbing memory until it's killed by the system.
Enabling profiling can significantly change the space behavior of programs. There may be some important optimizations that don't occur in the presence of profiling, and the profiling data itself takes some memory. I have to admit, I don't know a lot about GHC profiling so I'm afraid I can't be of much help. If you can scale down the problem size to do your profiling, that may keep it from being OOM'd and let you get some useful data.
The non-profiled version of the program runs perfectly well. In fact, the PatriciaLoMap from Edison seems to be about two to three times faster than Data.Map library for my purposes.
That's good to hear. What's the usage pattern?
Lots of unions. So you might say that I don't need profiling any more, but still...
Any ideas on what might have gone wrong?
Rob Dockins Speak softly and drive a Sherman tank. Laugh hard; it's a long way to the bank. -- TMBG