Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] Open-MPI and gprof
From: Daniel Spångberg (daniels_at_[hidden])
Date: 2009-04-23 03:12:52


I have used vprof, which is free, and also works well with openmpi:
http://sourceforge.net/projects/vprof/

One might need slight code modifications to get output, depending on
compilers used, such as adding
vmon_begin();
to start profiling and
vmon_done_task(rank);
to end profiling where rank is the MPI rank integer.

vprof can also use papi, but I have not (yet) tried this.

Daniel Spångberg

Den 2009-04-23 02:00:01 skrev Brock Palen <brockp_at_[hidden]>:

> There is a tool (not free) That I have liked that works great with
> OMPI, and can use gprof information.
>
> http://www.allinea.com/index.php?page=74
>
> Also I am not sure but Tau (which is free) Might support some gprof
> hooks.
> http://www.cs.uoregon.edu/research/tau/home.php
>
> Brock Palen
> www.umich.edu/~brockp
> Center for Advanced Computing
> brockp_at_[hidden]
> (734)936-1985
>
>
>
> On Apr 22, 2009, at 7:37 PM, jgans wrote:
>
>> Hi,
>>
>> Yes you can profile MPI applications by compiling with -pg. However, by
>> default each process will produce an output file called "gmon.out",
>> which is a problem if all processes are writing to the same global file
>> system (i.e. all processes will try to write to the same file).
>>
>> There is an undocumented feature of gprof that allows you to specify
>> the filename for profiling output via the environment variable
>> GMON_OUT_PREFIX. For example, one can set this variable in the .bashrc
>> file for every node to insure unique profile filenames, i.e.:
>>
>> export GMON_OUT_PREFIX='gmon.out-'`/bin/uname -n`
>>
>> The filename will appear as GMON_OUT_PREFIX.pid, where pid is the
>> process id on a given node (so this will work when multiple nodes are
>> contained in a single host).
>>
>> Regards,
>>
>> Jason
>>
>> Tiago Almeida wrote:
>>> Hi,
>>> I've never done this, but I believe that an executable compiled with
>>> profilling support (-pg) will generate the gmon.out file in its
>>> current directory, regardless of running under MPI or not. So I think
>>> that you'll have a gmon.out on each node and therefore you can "gprof"
>>> them independently.
>>>
>>> Best regards,
>>> Tiago Almeida
>>> ---------------------------------
>>> jody wrote:
>>>> Hi
>>>> I wanted to profile my application using gprof, and proceeded like
>>>> when profiling a normal application:
>>>> - compile everything with option -pg
>>>> - run application
>>>> - call gprof
>>>> This returns a normal-looking output, but i don't know
>>>> whether this is the data for node 0 only or accumulated for all nodes.
>>>>
>>>> Does anybody have experience in profiling parallel applications?
>>>> Is there a way to have profile data for each node separately?
>>>> If not, is there another profiling tool which can?
>>>>
>>>> Thank You
>>>> Jody
>>>> _______________________________________________
>>>> users mailing list
>>>> users_at_[hidden]
>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>>
>>>>
>>> _______________________________________________
>>> users mailing list
>>> users_at_[hidden]
>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>
>> _______________________________________________
>> users mailing list
>> users_at_[hidden]
>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>
>>
>
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users

-- 
Daniel Spångberg
Materialkemi
Uppsala Universitet