Skip to Content.
Sympa Menu

charm - Re: [charm] Projections question

charm AT lists.cs.illinois.edu

Subject: Charm++ parallel programming system

List archive

Re: [charm] Projections question


Chronological Thread 
  • From: Phil Miller <mille121 AT illinois.edu>
  • To: Jozsef Bakosi <jbakosi AT lanl.gov>
  • Cc: Ronak Buch <ronakbuch AT gmail.com>, "charm AT lists.cs.illinois.edu" <charm AT lists.cs.illinois.edu>
  • Subject: Re: [charm] Projections question
  • Date: Wed, 18 Dec 2019 23:46:57 -0500
  • Authentication-results: illinois.edu; spf=pass smtp.mailfrom=unmobile AT gmail.com; dkim=pass header.d=illinois-edu.20150623.gappssmtp.com header.s=20150623; dmarc=none header.from=illinois.edu


On Wed, Dec 18, 2019 at 10:23 PM Jozsef Bakosi <jbakosi AT lanl.gov> wrote:
Thanks Ronak,

Okay, then what is measured/denoted by DiagCG::DiagCG_rhs? (That is a
separate color and is not an entry method.) Could it be the following?

 entry void wait4rhs() {
    when ownrhs_complete( tk::Fields& dif ), comrhs_complete()
          serial "rhs" { solve( dif ); } }

I suspect DiagCG::DiagCG_rhs stands for the above DAG label "rhs". If
this is the case, than that measures the cost of solve(). Correct?


That seems likely. The easiest way to find out would be to change that serial "rhs" to something distinct from any other name in DiagCG, and see what appears then.
 

Jozsef

On 12.18.2019 18:02, Ronak Buch wrote:
> Hi Jozsef,
>
> redn_wrapper_advance(CkReductionMsg*impl_msg) just denotes that advance was
> called via a reduction. It includes the unpacking of variables from the
> message after it's been received, but it doesn't include communication or
> synchronization costs.
>
> Since advance() calls rhs() directly (as in not via a proxy), the time
> spent inside that call to rhs() is also attributed to it.
>
> Thanks,
> Ronak
>
> On Wed, Dec 18, 2019 at 1:07 PM Jozsef Bakosi <jbakosi AT lanl.gov> wrote:
>
> > Hi folks,
> >
> > I have a projections question: I have the following function names when I
> > hover over "Usage Profile" or "Timeline" plots:
> >
> > DiagCG::DiagCG_rhs and
> > DiagCG::redn_wrapper_advance(CkReductionMsg*impl_msg)
> >
> > The corresponding code is the following (DiagCG is a chare array):
> >
> > void
> > DiagCG::dt()
> > {
> >   // Contribute to minimum dt across all chares the advance to next step
> >   contribute( sizeof(tk::real), &mindt, CkReduction::min_double,
> >               CkCallback(CkReductionTarget(DiagCG,advance), thisProxy) );
> > }
> >
> > void
> > DiagCG::advance( tk::real newdt )
> > {
> >   // Compute rhs for next time step
> >   rhs();
> > }
> >
> > void
> > DiagCG::rhs()
> > {
> >   ...
> > }
> >
> > I would like to know how to interpret the usage (percentage) associated to
> > DiagCG::DiagCG_rhs and
> > DiagCG::redn_wrapper_advance(CkReductionMsg*impl_msg). More specifically,
> > what does the latter include in this case? The
> > communication/synchronization costs of the all-to-all? Does it also involve
> > what advance() calls, e.g., rhs()?
> >
> > Please let me know if you need more information.
> >
> > Thanks,
> > Jozsef



Archive powered by MHonArc 2.6.19.

Top of Page