Skip to Content.
Sympa Menu

charm - Re: [charm] Turning off scalable-start

charm AT lists.cs.illinois.edu

Subject: Charm++ parallel programming system

List archive

Re: [charm] Turning off scalable-start


Chronological Thread 
  • From: Phil Miller <mille121 AT illinois.edu>
  • To: Tom Quinn <trq AT astro.washington.edu>
  • Cc: charm <charm AT lists.cs.illinois.edu>
  • Subject: Re: [charm] Turning off scalable-start
  • Date: Fri, 8 Jul 2016 08:55:31 -0500

Ah, I believe valgrind can happily work with Charm++ programs without such a script.

Please try something like this:

charmrun +p2 `which valgrind` --track-origins=yes --leak-check=yes --log-file=VG.out.%p --trace-children=yes ./ChaNGa ...

A couple things of note here:
- Valgrind knows how to write its output to a file named by PID, using the %p specifier
- Valgrind can follow forked children on its own, using the --trace-children=yes option

Also, depending on your aims, it may be faster and easier to compile and run with AddressSanitizer and LeakSanitizer. AddressSanitizer can be enabled simply by building Charm++ with the 'asan' build option. E.g. netlrts-linux-x86_64-asan. LeakSanitizer is a newer tool, so I don't know what exact compiler versions(s) it first appears in. But enabling it should be a matter of passing the option -fsanitize=leak at compile time. Both of their overheads will be much lower than valgrind, and they can be directed to output to a file instead of stderr through environment variables.


On Fri, Jul 8, 2016 at 8:37 AM, Tom Quinn <trq AT astro.washington.edu> wrote:
Let me be explict about what I'm doing: I'm using valgrind to check for memory errors and I have a script that looks like this:

#!/bin/sh -f
$HOME/bin/valgrind --track-origins=yes --leak-check=yes --log-file=VG.out.$$ $*

which I invoke using the ++runscript argument:
./charmrun +p $proc ++runscript $HOME/bin/vgleak ./ChaNGa ...

I'd like those VG.out.NNNNNNN to be a different file for each PE, but I'm now getting one file per node.


On Fri, 8 Jul 2016, Phil Miller wrote:

As an alternative, I think there was an option added not too long ago
to have each PE redirect its output to a file, without any need for
shell script hacking. I'll follow up later today, if someone else
hasn't chimed in.

On Thu, Jul 7, 2016 at 11:34 PM, Tom Quinn <trq AT astro.washington.edu> wrote:
I have a need to turn off scalable start: I want to redirect output to
separate files using the "$$" shell variable, so I need different shells for
each process on a node.  Is there a way to do this now?

Tom







Archive powered by MHonArc 2.6.16.

Top of Page