freepooma-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [pooma-dev] GCC 3.2 on Redhat 8.0--a fair number of compiler warnin


From: James Crotinger
Subject: RE: [pooma-dev] GCC 3.2 on Redhat 8.0--a fair number of compiler warnings?
Date: Fri, 25 Apr 2003 09:38:49 -0600

I don't know where GCC 3.2 is with respect to optimizing Pooma. In the past we used GCC for development but not production as it could not peel away sufficient layers of inlining to achieve hand-coded speed. At the time that the ACL Pooma team left Los Alamos, only KCC and SGI CC could do a good job of optimizing Pooma. I would assume that icc can also do this, but someone else will have to confirm this.

Note that if the hand-coded version is assuming a single patch of memory for the entire calculation domain, then it is definitely not a fair comparison to compare that to the MultiPatch Pooma version. Our goal was to make Array<Dim,T,Brick> work as fast as hand-coded single-patch loops. Even then there are ways to write hand-coded loops to be faster - for instance, loop-jamming (doing two array expressions in a single loop) can result in huge savings in some instances. Some of this performance can be recovered with stencil/scalar type code, but at a loss of clarity.

Are you using SMARTS for parallel execution? (You imply that you're not using MPI yet).

        Jim

------------------------------------------------------------------------
James A. Crotinger                           email:     address@hidden
NumeriX, LLC                                 phone:  (505) 424-4477 x104
2960 Rodeo Park Dr. W.
Santa Fe, NM 87505
 

-----Original Message-----
From: George Talbot [mailto:address@hidden]
Sent: Friday, April 25, 2003 8:22 AM
To: 'address@hidden'
Subject: Re: [pooma-dev] GCC 3.2 on Redhat 8.0--a fair number of compiler warnings?

Not so good news.  So I went back to the hand-coded program and reversed
the indices, indexing x in the inner loop and y in the outer to reflect
the memory layout of the array.  Now the hand-coded variant is twice as
fast as the equivalent POOMA program.  This is with GCC 3.2.
Distributing it among the two processors on my workstation doesn't bring
the performance up to the single-processor hand-coded version.

I will try today to beat the hand-coded program with MPI over more than
two processors.  However, I would like to know something.  Is the
diffusion example from the book a realistic example to show the
performance of POOMA vs. hand-coded stuff?  I need to be able to
describe the break-even point where a POOMA app will outperform a
uniprocessor app.  Of course, I probably need to try to apply it to one
of my in-house programs to be realistic, but I was hoping that someone
on the list could suggest a particular demonstration program that would
show POOMA outperforming a uniprocessor hand-coded implementation.

--George


On Wed, 2003-04-23 at 16:10, George Talbot wrote:
> Hi,
>
> New POOMA II user.  Got everything to compile and link today.  The
> performance of this stuff is shocking.
>
> I ran a hand coded version of your 2D diffusion program on my box for
> 250 steps, 800x800 array.  1m34s, uniprocessor.
>
> Using a stencil, same box, uniprocessor.  25s.  WOW.
>
> Using -shmem -np 2 to distribute the shared array version on both of my
> processors on my box.  12s.  Truly amazing.  I think this may be a
> dramatically useful tool.
>
> The only thing that irks me a bit is that there are a fair number of
> compiler warnings, which I will append, along with the source I used, to
> this e-mail.  Is this normal?  Swimming in a sea of warnings from the
> POOMA headers, I might miss some on my own code...
>
> Take care.
>
> --
> George T. Talbot
> <address@hidden>
>
> Here's the program:
>
> #include <iostream>
> using namespace std;
>
> #define STENCIL
> #define POOMA
> #define DISTRIBUTED
>
> #ifdef POOMA
> #include "Pooma/Arrays.h"
> #endif
>
> #ifdef STENCIL
> class NinePtDiffusion
> {
> public:
>     template <class C>
>     inline typename C::Element_t operator()(const C& c, int I, int J)
> const
>     {
>         return (1.0/9.0) *
>                     (c.read(I+1, J+1) + c.read(I+1, J  ) + c.read(I+1,
> J-1) +
>                      c.read(I  , J+1) + c.read(I  , J  ) + c.read(I  ,
> J-1) +
>                      c.read(I-1, J+1) + c.read(I-1, J  ) + c.read(I-1,
> J-1));
>     }
>    
>     inline int lowerExtent(int) const { return 1; }
>     inline int upperExtent(int) const { return 1; }
> };
> #endif
>
> int main(int argc, char* argv[])
> {
> #ifdef POOMA
>     Pooma::initialize(argc, argv);
> #endif
>
>     long    numAveragings = 250, numSteps;
>
>     numSteps    = (numAveragings+1)/2;
>
>     long    n = 800;
>
>     long    numProcessors=2;
>
> #ifdef POOMA
>     Inform  output;
>    
>     output << "processors=" << numProcessors
>            << " avgs=" << numAveragings
>            << " n=" << n
>            << endl;
> #else
>     cout << "processors=" << numProcessors
>          << " avgs=" << numAveragings
>          << " n=" << n
>          << endl;
> #endif
>
> #ifdef POOMA
>     Interval<1> N(0, n-1);
>     Interval<2> problemDomain(N, N);
>
>     Interval<1> I(1, n-2);
>     Interval<1> J(1, n-2);
>     Interval<2> interiorDomain(I, I);
>
> #ifdef DISTRIBUTED
>     UniformGridPartition<2>
> partition(Loc<2>(numProcessors,numProcessors), GuardLayers<2>(1),
> GuardLayers<2>(0));
>     UniformGridLayout<2>    layout(problemDomain, partition,
> DistributedTag());
>
>     Array<2, double, MultiPatch<UniformTag, Remote<Brick> > > 
> a(layout);
>     Array<2, double, MultiPatch<UniformTag, Remote<Brick> > > 
> b(layout);
> #else
>     Array<2, double, Brick> a(problemDomain);
>     Array<2, double, Brick> b(problemDomain);
> #endif
>
>     a = b = 0.0;
>
>     Pooma::blockAndEvaluate();
>     b(n/2, n/2) = 1000.0;
>
> #ifdef STENCIL
>     Stencil<NinePtDiffusion>    diffusion;
> #endif
>
> #else
>     double  a[n][n], b[n][n];
>
>     for (long x=1; x<n-1; x++)
>     {
>         for (long y=1; y<n-1; y++)
>         {
>             a[x][y] = b[x][y] = 0.0;
>         }
>     }
>    
>     b[n/2][n/2] = 1000.0;
> #endif
>
>     const double    weight = 1.0/9.0;
>
>     for (long i=0; i<numSteps; i++)
>     {
> #ifdef STENCIL
>         a(interiorDomain)   = diffusion(b, interiorDomain);
>         b(interiorDomain)   = diffusion(a, interiorDomain);
> #elif defined (POOMA)
>         a(I,J)  = weight *
>                     (b(I+1, J+1) + b(I+1, J  ) + b(I+1, J-1) +
>                      b(I  , J+1) + b(I  , J  ) + b(I  , J-1) +
>                      b(I-1, J+1) + b(I-1, J  ) + b(I-1, J-1));
>
>         b(I,J)  = weight *
>                     (a(I+1, J+1) + a(I+1, J  ) + a(I+1, J-1) +
>                      a(I  , J+1) + a(I  , J  ) + a(I  , J-1) +
>                      a(I-1, J+1) + a(I-1, J  ) + a(I-1, J-1));
> #else
>         for (long x=1; x<n-1; x++)
>         {
>             for (long y=1; y<n-1; y++)
>             {
>                 a[x][y]  = weight *
>                             (b[x+1][y+1] + b[x+1][y]   + b[x+1][y-1] +
>                              b[x]  [y+1] + b[x]  [y]   + b[x]  [y-1] +
>                              b[x-1][y+1] + b[x-1][y]   + b[x-1][y-1]);
>             }
>         }
>
>         for (long x=1; x<n-1; x++)
>         {
>             for (long y=1; y<n-1; y++)
>             {
>                 b[x][y]  = weight *
>                             (a[x+1][y+1] + a[x+1][y]   + a[x+1][y-1] +
>                              a[x]  [y+1] + a[x]  [y]   + a[x]  [y-1] +
>                              a[x-1][y+1] + a[x-1][y]   + a[x-1][y-1]);
>             }
>         }
> #endif
>     }
>
> #ifdef POOMA
>     Pooma::blockAndEvaluate();
>    
>     output << "Center position: " << a(n/2, n/2) << endl;
>
>     Pooma::finalize();
> #else
>     cout << "Center position: " << a[n/2][n/2] << endl;
> #endif
>
>     return 0;
> }
>
>
> Here's the compiler warnings, plus the compiler command line:
>
> g++ -c -pipe -Wall -W -O2 -D_REENTRANT  -DQT_NO_DEBUG
> -DQT_THREAD_SUPPORT -I/usr/local/qt/mkspecs/default -I.
> -I/usr/local/cots/cheetah/linux/src
> -I/usr/local/cots/cheetah/linux/lib/g++-ex -I/usr/local/cots/pooma/src
> -I/usr/local/cots/pooma/linux/lib/PoomaConfiguration
> -I/usr/local/qt/include -o diffusion_test.o diffusion_test.cpp
> In file included from /usr/local/cots/pooma/src/Pooma/Domains.h:42,
>                  from
> /usr/local/cots/pooma/src/Domain/DomainRemoveOverlap.h:32,                 from /usr/local/cots/pooma/src/Layout/SparseTileLayout.cpp:36,

>                  from
> /usr/local/cots/pooma/src/Layout/SparseTileLayout.h:1201,
>                  from
> /usr/local/cots/pooma/src/Engine/IsValidLocation.h:55,
>                  from /usr/local/cots/pooma/src/Array/PrintArray.h:57,
>                  from /usr/local/cots/pooma/src/Array/Array.h:58,
>                  from /usr/local/cots/pooma/src/Pooma/BrickArrays.h:42,
>                  from /usr/local/cots/pooma/src/Pooma/UMPArrays.h:40,
>                  from /usr/local/cots/pooma/src/Pooma/Arrays.h:39,
>                  from diffusion_test.cpp:9:
> /usr/local/cots/pooma/src/Domain/Grid.h: In copy constructor
>    `Grid<1>::Grid(const Grid<1>&)':
> /usr/local/cots/pooma/src/Domain/Grid.h:360: warning: base class `class
>    Domain<1, DomainTraits<Grid<1> > >' should be explicitly initialized
> in the
>    copy constructor
> In file included from /usr/local/cots/pooma/src/Pooma/Arrays.h:46,
>                  from diffusion_test.cpp:9:
> /usr/local/cots/pooma/src/Engine/RemoteEngine.h: In copy constructor
>    `GatherContexts::GatherContextsData::GatherContextsData(const
>    GatherContexts::GatherContextsData&)':
> /usr/local/cots/pooma/src/Engine/RemoteEngine.h:1697: warning: base
> class `
>    class RefCounted' should be explicitly initialized in the copy
> constructor
> diffusion_test.cpp: In function `int main(int, char**)':
> diffusion_test.cpp:100: warning: unused variable `const double weight'
> In file included from
> /usr/local/cots/pooma/src/Engine/RemoteEngine.h:1499,
>                  from /usr/local/cots/pooma/src/Array/Array.h:108,
>                  from diffusion_test.cpp:77:
> /usr/local/cots/pooma/src/Layout/UniformGridLayout.h: In copy
> constructor
>    `UniformGridLayout<Dim>::UniformGridLayout(const
> UniformGridLayout<Dim>&)
>    [with int Dim = 2]':
> /usr/local/cots/pooma/src/Layout/LayoutBase.h:806:   instantiated from
> `LayoutBaseViewData<Dim, Dim2, L>::LayoutBaseViewData(const L&, const
> Domain<Dim, DT>&) [with DT = DomainTraits<Interval<2> >, int Dim = 2,
> int Dim2 = 2, L = UniformGridLayout<2>]'
> /usr/local/cots/pooma/src/Layout/LayoutBase.h:1368:   instantiated from
> `UniformGridLayoutViewData<Dim, Dim2>::UniformGridLayoutViewData(const
> UniformGridLayout<Dim2>&, const Domain<Dim, DT>&) [with DT =
> DomainTraits<Interval<2> >, int Dim
> = 2, int Dim2 = 2]'
> /usr/local/cots/pooma/src/Layout/LayoutBase.h:1109:   instantiated from
> `LayoutBaseView<Dim, Dim2, lvd>::LayoutBaseView(lvd*) [with int Dim = 2,
> int Dim2 = 2, lvd = UniformGridLayoutViewData<2, 2>]'
> /usr/local/cots/pooma/src/Engine/RemoteEngine.h:1499:   instantiated
> from `UniformGridLayoutView<Dim,
> Dim2>::UniformGridLayoutView(UniformGridLayoutViewData<Dim,
> Dim2>::Layout_t&, const Domain<Dim2, DT>&) [with DT =
> DomainTraits<Interval<2> >, int Dim = 2, int Dim2 = 2]'
> /usr/local/cots/pooma/src/Engine/RemoteEngine.h:992:   instantiated from
> `Engine<Dim, T, MultiPatchView<LayoutTag, PatchTag, Dim2>
> >::Engine(const Engine<Dim2,
> T, MultiPatch<LayoutTag, PatchTag> >&, const Domain<Dim2, DT>&) [with DT
> = DomainTraits<Interval<2> >, int Dim = 2, T = double, LayoutTag =
> UniformTag, PatchTag = Remote<Brick>, int Dim2 = 2]'
> /usr/local/cots/pooma/src/Engine/RemoteEngine.h:1457:   instantiated
> from `Array<Dim, T, EngineTag>::Array(const Engine<Dim2, T2,
> EngineTag2>&, const Initializer&) [with int Dim2 = 2, T2 = double,
> EngineTag2 = MultiPatch<UniformTag, Remote<Brick> >, Initializer =
> Interval<2>, int Dim = 2, T = double, EngineTag =
> MultiPatchView<UniformTag, Remote<Brick>, 2>]'
> /usr/local/cots/pooma/src/Engine/RemoteEngine.h:676:   instantiated from
> `static Array<View0<Array<D1, T1, E1> >::newDim, T, NewEngine<Array<D1,
> T1, E1>::Engine_t, Array<D1, T1, E1>::Domain_t>::Type_t::Tag_t>
> View0<Array<D1, T1, E1> >::make(const Array<D1, T1, E1>&) [with int Dim
> = 2, T = double, EngineTag = MultiPatch<UniformTag, Remote<Brick> >]'
> /usr/local/cots/pooma/src/Engine/RemoteEngine.h:1910:   instantiated
> from `AltView0<Array<D1, T1, E1> >::Type_t Array<Dim, T,
> EngineTag>::operator()() const [with int Dim = 2, T = double, EngineTag
> = MultiPatch<UniformTag, Remote<Brick>
> >]'/usr/local/cots/pooma/src/Engine/RemoteEngine.h:1909:   instantiated
> from `void
> Evaluator<RemoteMultiPatchEvaluatorTag>::evaluate(const LHS&, const Op&,
> const RHS&) const [with LHS = Array<2, double,
> MultiPatchView<UniformTag, Remote<Brick>, 2> >, RHS = Array<2, double,
> ConstantFunction>, Op = OpAssign]'
> /usr/local/cots/pooma/src/Array/Array.h:108:   instantiated from `void
> Evaluator<MainEvaluatorTag>::evaluate(const LHS&, const Op&, const RHS&)
> const [with LHS
> = Array<2, double, MultiPatch<UniformTag, Remote<Brick> > >, RHS =
> Array<2, double, ConstantFunction>, Op = OpAssign]'
> /usr/local/cots/pooma/src/Array/Array.h:2504:   instantiated from `const
> Array<D1, T1, E1>& assign(const Array<D1, T1, E1>&, const T1&, const
> Op&) [with int Dim = 2, T = double, EngineTag = MultiPatch<UniformTag,
> Remote<Brick> >, T1 = double, Op = OpAssign]'
> /usr/local/cots/pooma/src/Array/Array.h:2117:   instantiated from `const
> Array<Dim, T, EngineTag>& Array<Dim, T, EngineTag>::operator=(const T1&)
> const [with T1 = double, int Dim = 2, T = double, EngineTag =
> MultiPatch<UniformTag, Remote<Brick> >]'
> /usr/local/cots/pooma/src/Array/Array.h:2105:   instantiated from
> `Array<Dim, T, EngineTag>& Array<Dim, T, EngineTag>::operator=(const
> Array<Dim, T, EngineTag>&) [with int Dim = 2, T = double, EngineTag =
> MultiPatch<UniformTag, Remote<Brick> >]'
> diffusion_test.cpp:77:   instantiated from here
> /usr/local/cots/pooma/src/Layout/UniformGridLayout.h:1831: warning: base
> class
>    `class Observer<UniformGridLayoutData<2> >' should be explicitly
> initialized
>    in the copy constructor
> In file included from
> /usr/local/cots/pooma/src/Engine/RemoteEngine.h:1519,
>                  from diffusion_test.cpp:108:
> /usr/local/cots/pooma/src/Layout/LayoutBase.h: In constructor
>    `LayoutBaseViewData<Dim, Dim2, L>::LayoutBaseViewData(const L&, const
> LV&,
>    const ViewIndexer<Dim, Dim2>&, const Domain<Dim, DT>&,
> GuardLayers<Dim>,
>    GuardLayers<Dim>) [with DT = DomainTraits<Interval<2> >, LV =
>    UniformGridLayoutView<2, 2>, int Dim = 2, int Dim2 = 2, L =
>    UniformGridLayout<2>]':
> /usr/local/cots/pooma/src/Layout/LayoutBase.h:1388:   instantiated from
> `UniformGridLayoutViewData<Dim, Dim2>::UniformGridLayoutViewData(const
> UniformGridLayoutView<Dim, Dim2>&, const Domain<Dim, DT>&) [with DT =
> DomainTraits<Interval<2> >, int Dim = 2, int Dim2 = 2]'
> /usr/local/cots/pooma/src/Layout/LayoutBase.h:1109:   instantiated from
> `LayoutBaseView<Dim, Dim2, lvd>::LayoutBaseView(lvd*) [with int Dim = 2,
> int Dim2 = 2, lvd = UniformGridLayoutViewData<2, 2>]'
> /usr/local/cots/pooma/src/Engine/RemoteEngine.h:1519:   instantiated
> from `UniformGridLayoutView<Dim, Dim2>::UniformGridLayoutView(const
> UniformGridLayoutView<Dim, Dim2>&, const Domain<Dim, DT>&) [with DT =
> DomainTraits<Interval<2> >, int Dim = 2, int Dim2 = 2]'
> /usr/local/cots/pooma/src/Engine/RemoteEngine.h:1012:   instantiated
> from `Engine<Dim, T, MultiPatchView<LayoutTag, PatchTag, Dim2>
> >::Engine(const Engine<Dim,
> T, MultiPatchView<LayoutTag, PatchTag, Dim2> >&, const Domain<Dim, DT>&)
> [with DT = DomainTraits<Interval<2> >, int Dim = 2, T = double,
> LayoutTag = UniformTag, PatchTag = Remote<Brick>, int Dim2 = 2]'
> /usr/local/cots/pooma/src/Engine/RemoteEngine.h:1457:   instantiated
> from `Array<Dim, T, EngineTag>::Array(const Engine<Dim2, T2,
> EngineTag2>&, const Initializer&) [with int Dim2 = 2, T2 = double,
> EngineTag2 = MultiPatchView<UniformTag, Remote<Brick>, 2>, Initializer =
> Interval<2>, int Dim = 2, T = double, EngineTag =
> MultiPatchView<UniformTag, Remote<Brick>, 2>]'
> /usr/local/cots/pooma/src/Engine/RemoteEngine.h:676:   instantiated from
> `static Array<View0<Array<D1, T1, E1> >::newDim, T, NewEngine<Array<D1,
> T1, E1>::Engine_t, Array<D1, T1, E1>::Domain_t>::Type_t::Tag_t>
> View0<Array<D1, T1, E1> >::make(const Array<D1, T1, E1>&) [with int Dim
> = 2, T = double, EngineTag = MultiPatchView<UniformTag, Remote<Brick>,
> 2>]'
> /usr/local/cots/pooma/src/Engine/RemoteEngine.h:1910:   instantiated
> from `AltView0<Array<D1, T1, E1> >::Type_t Array<Dim, T,
> EngineTag>::operator()() const [with int Dim = 2, T = double, EngineTag
> = MultiPatchView<UniformTag, Remote<Brick>, 2>]'
> /usr/local/cots/pooma/src/Engine/RemoteEngine.h:1909:   instantiated
> from `void
> Evaluator<RemoteMultiPatchEvaluatorTag>::evaluate(const LHS&, const Op&,
> const RHS&) const [with LHS = Array<2, double,
> MultiPatchView<UniformTag, Remote<Brick>, 2> >, RHS = Array<2, double,
> StencilEngine<NinePtDiffusion, Array<2, double,
> MultiPatchView<UniformTag, Remote<Brick>, 2> > > >, Op = OpAssign]'
> diffusion_test.cpp:108:   instantiated from `void
> Evaluator<MainEvaluatorTag>::evaluate(const LHS&, const Op&, const RHS&)
> const [with LHS = Array<2, double, MultiPatchView<UniformTag,
> Remote<Brick>, 2> >, RHS = Array<2, double,
> StencilEngine<NinePtDiffusion, Array<2, double,
> MultiPatchView<UniformTag, Remote<Brick>, 2> > > >, Op = OpAssign]'
> diffusion_test.cpp:2486:   instantiated from `const Array<D1, T1, E1>&
> assign(const Array<D1, T1, E1>&, const Array<D2, T2, E2>&, const Op&)
> [with int Dim = 2,
> T = double, EngineTag = MultiPatchView<UniformTag, Remote<Brick>, 2>,
> int OtherDim = 2, OtherT = double, OtherEngineTag =
> StencilEngine<NinePtDiffusion, Array<2, double,
> MultiPatchView<UniformTag, Remote<Brick>, 2> > >, Op = OpAssign]'
> diffusion_test.cpp:2117:   instantiated from `const Array<Dim, T,
> EngineTag>& Array<Dim, T, EngineTag>::operator=(const T1&) const [with
> T1 = Array<2, double, StencilEngine<NinePtDiffusion, Array<2, double,
> MultiPatchView<UniformTag, Remote<Brick>, 2> > > >, int Dim = 2, T =
> double, EngineTag = MultiPatchView<UniformTag, Remote<Brick>, 2>]'
> diffusion_test.cpp:105:   instantiated from here
> /usr/local/cots/pooma/src/Layout/LayoutBase.h:1027: warning: member
>    initializers for `ViewIndexer<2, 2> LayoutBaseViewData<2, 2,
>    UniformGridLayout<2> >::indexer_m'
> /usr/local/cots/pooma/src/Layout/LayoutBase.h:1010: warning:   and `long
> int
>    LayoutBaseViewData<2, 2, UniformGridLayout<2> >::id_m'
> /usr/local/cots/pooma/src/Layout/LayoutBase.h:871: warning:   will be
>    re-ordered to match declaration order
> /usr/local/cots/pooma/src/Layout/LayoutBase.h:1040: warning: member
>    initializers for `bool LayoutBaseViewData<2, 2, UniformGridLayout<2>
>    >::subdomainsComputed_m'
> /usr/local/cots/pooma/src/Layout/LayoutBase.h:1021: warning:   and `
>    GuardLayers<2> LayoutBaseViewData<2, 2, UniformGridLayout<2>
>    >::internalGuards_m'
> /usr/local/cots/pooma/src/Layout/LayoutBase.h:871: warning:   will be
>    re-ordered to match declaration order
> /usr/local/cots/pooma/src/Engine/Stencil.h: In constructor
>    `StencilIntersector<Dim, Intersect>::StencilIntersector(const
>    Interval<Dim>&, const Intersect&) [with int Dim = 2, Intersect =
>    Intersector<2>]':
> diffusion_test.cpp:863:   instantiated from `static int
> LeafFunctor<Engine<D, T, StencilEngine<Function, _expression_> >,
> ExpressionApply<IntersectorTag<Intersect> > >::apply(const Engine<D, T,
> StencilEngine<Function, _expression_> >&, const
> ExpressionApply<IntersectorTag<Intersect> >&) [with int D = 2, T =
> double, S = NinePtDiffusion, E = Array<2, double,
> MultiPatchView<UniformTag, Remote<Brick>, 2>
> >, Intersect = Intersector<2>]'
> diffusion_test.cpp:2307:   instantiated from `static int
> LeafFunctor<Array<D1, T1, E1>, ExpressionApply<Tag> >::apply(const
> Array<D1, T1, E1>&, const ExpressionApply<Tag>&) [with int Dim = 2, T =
> double, E = StencilEngine<NinePtDiffusion, Array<2, double,
> MultiPatchView<UniformTag, Remote<Brick>, 2> > >, Tag =
> IntersectorTag<Intersector<2> >]'
> diffusion_test.cpp:80:   instantiated from `static LeafFunctor<LeafType,
> LeafTag>::Type_t ForEach<Expr, FTag, CTag>::apply(const Expr&, const
> FTag&, const CTag&) [with Expr = Array<2, double,
> StencilEngine<NinePtDiffusion, Array<2, double,
> MultiPatchView<UniformTag, Remote<Brick>, 2> > > >, FTag =
> ExpressionApply<IntersectorTag<Intersector<2> > >, CTag = NullCombine]'
> diffusion_test.cpp:88:   instantiated from `ForEach<Expr, FTag,
> CTag>::Type_t forEach(const Expr&, const FTag&, const CTag&) [with Expr
> = Array<2, double, StencilEngine<NinePtDiffusion, Array<2, double,
> MultiPatchView<UniformTag, Remote<Brick>, 2> > > >, FTag =
> ExpressionApply<IntersectorTag<Intersector<2> > >, CTag =
> NullCombine]'
> diffusion_test.cpp:276:   instantiated from `void expressionApply(const
> A&, const Tag&) [with A = Array<2, double,
> StencilEngine<NinePtDiffusion, Array<2, double,
> MultiPatchView<UniformTag, Remote<Brick>, 2> > > >, Tag =
> IntersectorTag<Intersector<2> >]'
> diffusion_test.cpp:1914:   instantiated from `void
> Evaluator<RemoteMultiPatchEvaluatorTag>::evaluate(const LHS&, const Op&,
> const RHS&) const [with LHS = Array<2, double,
> MultiPatchView<UniformTag, Remote<Brick>, 2> >, RHS = Array<2, double,
> StencilEngine<NinePtDiffusion, Array<2, double,
> MultiPatchView<UniformTag, Remote<Brick>, 2> > > >, Op = OpAssign]'
> diffusion_test.cpp:108:   instantiated from `void
> Evaluator<MainEvaluatorTag>::evaluate(const LHS&, const Op&, const RHS&)
> const [with LHS = Array<2, double, MultiPatchView<UniformTag,
> Remote<Brick>, 2> >, RHS = Array<2, double,
> StencilEngine<NinePtDiffusion, Array<2, double,
> MultiPatchView<UniformTag, Remote<Brick>, 2> > > >, Op = OpAssign]'
> diffusion_test.cpp:2486:   instantiated from `const Array<D1, T1, E1>&
> assign(const Array<D1, T1, E1>&, const Array<D2, T2, E2>&, const Op&)
> [with int Dim = 2,
> T = double, EngineTag = MultiPatchView<UniformTag, Remote<Brick>, 2>,
> int OtherDim = 2, OtherT = double, OtherEngineTag =
> StencilEngine<NinePtDiffusion, Array<2, double,
> MultiPatchView<UniformTag, Remote<Brick>, 2> > >, Op = OpAssign]'
> diffusion_test.cpp:2117:   instantiated from `const Array<Dim, T,
> EngineTag>& Array<Dim, T, EngineTag>::operator=(const T1&) const [with
> T1 = Array<2, double, StencilEngine<NinePtDiffusion, Array<2, double,
> MultiPatchView<UniformTag, Remote<Brick>, 2> > > >, int Dim = 2, T =
> double, EngineTag = MultiPatchView<UniformTag, Remote<Brick>, 2>]'
> diffusion_test.cpp:105:   instantiated from here
> /usr/local/cots/pooma/src/Engine/Stencil.h:844: warning: member
> initializers
>    for `Intersector<2> StencilIntersector<2, Intersector<2>
> >::intersector_m'
> /usr/local/cots/pooma/src/Engine/Stencil.h:843: warning:   and
> `Interval<2>
>    StencilIntersector<2, Intersector<2> >::domain_m'
> /usr/local/cots/pooma/src/Engine/Stencil.h:788: warning:   will be
> re-ordered
>    to match declaration order
> /usr/local/cots/pooma/src/Domain/DomainTraits.Interval.h: In static
> member
>    function `static void DomainTraits<Interval<1> >::setDomain(int
> (&)[2],
>    const T1&, const T2&) [with T1 = int, T2 = unsigned int]':
> /usr/local/cots/pooma/src/Domain/Interval.h:369:   instantiated from
> here
> /usr/local/cots/pooma/src/Domain/DomainTraits.Interval.h:264: warning:
> comparison
>    between signed and unsigned integer expressions
> /usr/local/cots/pooma/src/Domain/DomainTraits.Interval.h: In static
> member
>    function `static void DomainTraits<Interval<1> >::setDomain(int
> (&)[2],
>    const T1&, const T2&) [with T1 = int, T2 = long unsigned int]':
> /usr/local/cots/pooma/src/Domain/Interval.h:377:   instantiated from
> here
> /usr/local/cots/pooma/src/Domain/DomainTraits.Interval.h:264: warning:
> comparison
>    between signed and unsigned integer expressions
> /usr/local/cots/pooma/src/Domain/DomainTraits.Range.h: In static member
>    function `static void DomainTraits<Range<1> >::setDomain(int (&)[3],
> const
>    T1&, const T2&) [with T1 = int, T2 = unsigned int]':
> /usr/local/cots/pooma/src/Domain/Range.h:396:   instantiated from here
> /usr/local/cots/pooma/src/Domain/DomainTraits.Range.h:239: warning:
> comparison
>    between signed and unsigned integer expressions
> /usr/local/cots/pooma/src/Domain/DomainTraits.Range.h: In static member
>    function `static void DomainTraits<Range<1> >::setDomain(int (&)[3],
> const
>    T1&, const T2&) [with T1 = int, T2 = long unsigned int]':
> /usr/local/cots/pooma/src/Domain/Range.h:407:   instantiated from here
> /usr/local/cots/pooma/src/Domain/DomainTraits.Range.h:239: warning:
> comparison
>    between signed and unsigned integer expressions
> /usr/local/cots/pooma/src/Domain/DomainTraits.Grid.h: In static member
> function
>    `static void DomainTraits<Grid<1> >::setDomain(IndirectionList<int>&,
> const
>    T1&, const T2&) [with T1 = int, T2 = unsigned int]':
> /usr/local/cots/pooma/src/Domain/Grid.h:395:   instantiated from here
> /usr/local/cots/pooma/src/Domain/DomainTraits.Grid.h:245: warning:
> comparison
>    between signed and unsigned integer expressions
> /usr/local/cots/pooma/src/Domain/DomainTraits.Grid.h: In static member
> function
>    `static void DomainTraits<Grid<1> >::setDomain(IndirectionList<int>&,
> const
>    T1&, const T2&) [with T1 = int, T2 = long unsigned int]':
> /usr/local/cots/pooma/src/Domain/Grid.h:404:   instantiated from here
> /usr/local/cots/pooma/src/Domain/DomainTraits.Grid.h:245: warning:
> comparison
>    between signed and unsigned integer expressions
> /usr/local/cots/pooma/src/Engine/MultiPatchEngine.cpp: In copy
> constructor
>    `Engine<Dim, T, MultiPatch<LayoutTag, PatchTag> >::Engine(const
> Engine<Dim,
>    T, MultiPatch<LayoutTag, PatchTag> >&) [with int Dim = 2, T = double,
>    LayoutTag = UniformTag, PatchTag = Remote<Brick>]':
> /usr/local/cots/pooma/src/Engine/MultiPatchEngine.h:992:   instantiated
> from `Engine<Dim, T, MultiPatchView<LayoutTag, PatchTag, Dim2>
> >::Engine(const Engine<Dim2, T, MultiPatch<LayoutTag, PatchTag> >&,
> const Domain<Dim2, DT>&) [with DT = DomainTraits<Interval<2> >, int Dim
> = 2, T = double, LayoutTag = UniformTag, PatchTag = Remote<Brick>, int
> Dim2 = 2]'
> /usr/local/cots/pooma/src/Engine/RemoteEngine.h:1457:   instantiated
> from `Array<Dim, T, EngineTag>::Array(const Engine<Dim2, T2,
> EngineTag2>&, const Initializer&) [with int Dim2 = 2, T2 = double,
> EngineTag2 = MultiPatch<UniformTag, Remote<Brick> >, Initializer =
> Interval<2>, int Dim = 2, T = double, EngineTag =
> MultiPatchView<UniformTag, Remote<Brick>, 2>]'
> /usr/local/cots/pooma/src/Engine/RemoteEngine.h:676:   instantiated from
> `static Array<View0<Array<D1, T1, E1> >::newDim, T, NewEngine<Array<D1,
> T1, E1>::Engine_t, Array<D1, T1, E1>::Domain_t>::Type_t::Tag_t>
> View0<Array<D1, T1, E1> >::make(const Array<D1, T1, E1>&) [with int Dim
> = 2, T = double, EngineTag = MultiPatch<UniformTag, Remote<Brick> >]'
> /usr/local/cots/pooma/src/Engine/RemoteEngine.h:1910:   instantiated
> from `AltView0<Array<D1, T1, E1> >::Type_t Array<Dim, T,
> EngineTag>::operator()() const [with int Dim = 2, T = double, EngineTag
> = MultiPatch<UniformTag, Remote<Brick>
> >]'/usr/local/cots/pooma/src/Engine/RemoteEngine.h:1909:   instantiated
> from `void
> Evaluator<RemoteMultiPatchEvaluatorTag>::evaluate(const LHS&, const Op&,
> const RHS&) const [with LHS = Array<2, double,
> MultiPatchView<UniformTag, Remote<Brick>, 2> >, RHS = Array<2, double,
> ConstantFunction>, Op = OpAssign]'
> /usr/local/cots/pooma/src/Array/Array.h:108:   instantiated from `void
> Evaluator<MainEvaluatorTag>::evaluate(const LHS&, const Op&, const RHS&)
> const [with LHS
> = Array<2, double, MultiPatch<UniformTag, Remote<Brick> > >, RHS =
> Array<2, double, ConstantFunction>, Op = OpAssign]'
> /usr/local/cots/pooma/src/Array/Array.h:2504:   instantiated from `const
> Array<D1, T1, E1>& assign(const Array<D1, T1, E1>&, const T1&, const
> Op&) [with int Dim = 2, T = double, EngineTag = MultiPatch<UniformTag,
> Remote<Brick> >, T1 = double, Op = OpAssign]'
> /usr/local/cots/pooma/src/Array/Array.h:2117:   instantiated from `const
> Array<Dim, T, EngineTag>& Array<Dim, T, EngineTag>::operator=(const T1&)
> const [with T1 = double, int Dim = 2, T = double, EngineTag =
> MultiPatch<UniformTag, Remote<Brick> >]'
> /usr/local/cots/pooma/src/Array/Array.h:2105:   instantiated from
> `Array<Dim, T, EngineTag>& Array<Dim, T, EngineTag>::operator=(const
> Array<Dim, T, EngineTag>&) [with int Dim = 2, T = double, EngineTag =
> MultiPatch<UniformTag, Remote<Brick> >]'
> diffusion_test.cpp:77:   instantiated from here
> /usr/local/cots/pooma/src/Engine/MultiPatchEngine.cpp:151: warning: base
> class
>    `class Observer<UniformGridLayout<2> >' should be explicitly
> initialized in
>    the copy constructor
> /usr/local/cots/pooma/src/Layout/UniformGridLayout.h: In member function
> `int
>    UniformGridLayoutData<Dim>::globalID(const Loc<Dim>&) const [with int
> Dim =
>    2]':
> /usr/local/cots/pooma/src/Layout/LayoutBase.h:472:   instantiated from
> `int LayoutBase<Dim, LBD>::globalID(const Loc<Dim>&) const [with int Dim
> = 2, LBD = UniformGridLayoutData<2>]'
> /usr/local/cots/pooma/src/Utilities/RefCountedBlockPtr.h:758: 
> instantiated from `T& RefCountedBlockPtr<T, BoundsChecked,
> Controller>::operator[](int) const [with T = Engine<2, double,
> Remote<Brick> >, bool BoundsChecked = false, Controller =
> RefBlockController<Engine<2, double, Remote<Brick> > >]'
> /usr/local/cots/pooma/src/Engine/RemoteEngine.h:458:   instantiated from
> `RemoteProxy<T> Engine<Dim, T, Remote<Tag> >::operator()(const
> Loc<Dim>&) const [with int Dim = 2, T = double, Tag = Brick]'
> /usr/local/cots/pooma/src/Tulip/RemoteProxy.h:1367:   instantiated from
> `Engine<Dim, T, PatchTag>::ElementRef_t Engine<Dim, T,
> MultiPatch<LayoutTag, PatchTag> >::operator()(const Loc<Dim>&) const
> [with int Dim = 2, T = double, LayoutTag = UniformTag, PatchTag =
> Remote<Brick>]'
> /usr/local/cots/pooma/src/Tulip/RemoteProxy.h:166:   instantiated from
> `static Array<D1, T1, E1>::ElementRef_t View1Implementation<Array<D1,
> T1, E1>, Domain, true>::make(const Array<D1, T1, E1>&, const S1&, const
> S2&, const Combine&) [with
> S1 = long int, S2 = long int, Combine = CombineDomainOpt<NewDomain2<long
> int, long int>, true>, int Dim = 2, T = double, EngineTag =
> MultiPatch<UniformTag, Remote<Brick> >, Domain = Loc<2>]'
> /usr/local/cots/pooma/src/Tulip/RemoteProxy.h:823:   instantiated from
> `static View1Implementation<Array<D1, T1, E1>, NewDomain2<Sub1,
> Sub2>::SliceType_t, View2<Array<D1, T1, E1>, Sub1, Sub2>::sv>::Type_t
> View2<Array<D1, T1, E1>, Sub1, Sub2>::make(const Array<D1, T1, E1>&,
> const Sub1&, const Sub2&) [with int Dim = 2, T = double, EngineTag =
> MultiPatch<UniformTag, Remote<Brick> >, Sub1 = long int,
> Sub2 = long int]'
> /usr/local/cots/pooma/src/Tulip/RemoteProxy.h:1926:   instantiated from
> `View2<Array<Dim, T, EngineTag>, Sub1, Sub2>::Type_t Array<Dim, T,
> EngineTag>::operator()(const Sub1&, const Sub2&) const [with Sub1 = long
> int, Sub2 = long int, int Dim = 2, T = double, EngineTag =
> MultiPatch<UniformTag, Remote<Brick> >]'
> /usr/local/cots/pooma/src/Tulip/RemoteProxy.h:176:   instantiated from
> `RemoteProxy<T>& RemoteProxy<T>::operator=(const S&) [with S = double, T
> = double]'
> diffusion_test.cpp:80:   instantiated from here
> /usr/local/cots/pooma/src/Layout/UniformGridLayout.h:2127: warning:
> comparison
>    between signed and unsigned integer expressions
> /usr/local/cots/pooma/src/Layout/UniformGridLayout.h: In member function
> `int
>    UniformGridLayoutData<Dim>::touches(const OtherDomain&, OutIter,
> const
>    ConstructTag&) const [with OtherDomain = Range<2>, OutIter =
>    std::back_insert_iterator<std::vector<Node<Range<2>, Interval<2> >,
>    std::allocator<Node<Range<2>, Interval<2> > > > >, ConstructTag =
>    TouchesConstructNodeObj, int Dim = 2]':
> /usr/local/cots/pooma/src/Layout/LayoutBase.h:641:   instantiated from
> `int LayoutBase<Dim, LBD>::touches(const OtherDomain&, OutIter, const
> ConstructTag&) const [with OtherDomain = Range<2>, OutIter =
> std::back_insert_iterator<std::vector<Node<Range<2>, Interval<2> >,
> std::allocator<Node<Range<2>, Interval<2> > > > >, ConstructTag =
> TouchesConstructNodeObj, int Dim = 2, LBD = UniformGridLayoutData<2>]'
> /usr/local/cots/pooma/src/Engine/Intersector.h:703:   instantiated from
> `int LayoutBase<Dim, LBD>::touches(const OtherDomain&, OutIter) const
> [with OtherDomain
> = Range<2>, OutIter =
> std::back_insert_iterator<std::vector<Node<Range<2>, Interval<2> >,
> std::allocator<Node<Range<2>, Interval<2> > > > >, int Dim = 2, LBD =
> UniformGridLayoutData<2>]'
> /usr/local/cots/pooma/src/Engine/Intersector.h:942:   instantiated from
> `int LayoutBaseViewData<Dim, Dim2, L>::touches(const OtherDomain&,
> OutIter, const ConstructTag&) const [with OtherDomain = Interval<2>,
> OutIter = std::back_insert_iterator<std::vector<INode<2>,
> std::allocator<INode<2> > > >, ConstructTag = TouchesConstructINode<2>,
> int Dim = 2, int Dim2 = 2, L = UniformGridLayout<2>]'
> /usr/local/cots/pooma/src/Engine/Intersector.h:1285:   instantiated from
> `int LayoutBaseView<Dim, Dim2, lvd>::touches(const OtherDomain&,
> OutIter, const ConstructTag&) const [with OtherDomain = Interval<2>,
> OutIter = std::back_insert_iterator<std::vector<INode<2>,
> std::allocator<INode<2> > > >, ConstructTag = TouchesConstructINode<2>,
> int Dim = 2, int Dim2 = 2, lvd = UniformGridLayoutViewData<2, 2>]'
> /usr/local/cots/pooma/src/Engine/Intersector.h:333:   instantiated from
> `void IntersectorData<Dim>::touches(const Layout&) [with Layout =
> UniformGridLayoutView<2, 2>, int Dim = 2]'
> /usr/local/cots/pooma/src/Engine/Intersector.h:171:   instantiated from
> `bool IntersectorData<Dim>::intersect(const Engine&, const
> GuardLayers<Dim2>&) [with Engine = Engine<2, double,
> MultiPatchView<UniformTag, Remote<Brick>, 2> >, int Dim2 = 2, int Dim =
> 2]'
> /usr/local/cots/pooma/src/Engine/Intersector.h:440:   instantiated from
> `bool Intersector<Dim>::intersect(const Engine&, const
> GuardLayers<Dim2>&) [with Engine
> = Engine<2, double, MultiPatchView<UniformTag, Remote<Brick>, 2> >, int
> Dim2 = 2, int Dim = 2]'
> /usr/local/cots/pooma/src/Array/Array.h:1729:   instantiated from
> `static int LeafFunctor<Engine<Dim, T, MultiPatchView<LayoutTag,
> PatchTag, Dim2> >, ExpressionApply<IntersectorTag<Intersect> >
> >::applyHandler(const Engine<Dim, T, MultiPatchView<LayoutTag, PatchTag,
> Dim2> >&, const ExpressionApply<IntersectorTag<Intersect> >&, const
> WrappedInt<1>&) [with int Dim = 2, T = double, LT = UniformTag, PatchTag
> = Remote<Brick>, int BD = 2, Intersect = Intersector<2>]'
> /usr/local/cots/pooma/src/Array/Array.h:1716:   instantiated from
> `static int LeafFunctor<Engine<Dim, T, MultiPatchView<LayoutTag,
> PatchTag, Dim2> >, ExpressionApply<IntersectorTag<Intersect> >
> >::apply(const Engine<Dim, T, MultiPatchView<LayoutTag, PatchTag, Dim2>
> >&, const ExpressionApply<IntersectorTag<Intersect> >&) [with int Dim =
> 2, T = double, LT = UniformTag, PatchTag = Remote<Brick>, int
> BD = 2, Intersect = Intersector<2>]'
> /usr/local/cots/pooma/src/Array/Array.h:2307:   instantiated from
> `static int LeafFunctor<Array<D1, T1, E1>, ExpressionApply<Tag>
> >::apply(const Array<D1, T1, E1>&, const ExpressionApply<Tag>&) [with
> int Dim = 2, T = double, E = MultiPatchView<UniformTag, Remote<Brick>,
> 2>, Tag = IntersectorTag<Intersector<2> >]'
> /usr/local/cots/pooma/src/Array/Array.h:80:   instantiated from `static
> LeafFunctor<LeafType, LeafTag>::Type_t ForEach<Expr, FTag,
> CTag>::apply(const Expr&, const FTag&, const CTag&) [with Expr =
> Array<2, double, MultiPatchView<UniformTag,
> Remote<Brick>, 2> >, FTag =
> ExpressionApply<IntersectorTag<Intersector<2> > >, CTag = NullCombine]'
> /usr/local/cots/pooma/src/Array/Array.h:88:   instantiated from
> `ForEach<Expr, FTag, CTag>::Type_t forEach(const Expr&, const FTag&,
> const CTag&) [with Expr = Array<2, double, MultiPatchView<UniformTag,
> Remote<Brick>, 2> >, FTag =
> ExpressionApply<IntersectorTag<Intersector<2> > >, CTag = NullCombine]'
> /usr/local/cots/pooma/src/Array/Array.h:276:   instantiated from `void
> expressionApply(const A&, const Tag&) [with A = Array<2, double,
> MultiPatchView<UniformTag, Remote<Brick>, 2> >, Tag =
> IntersectorTag<Intersector<2> >]'
> /usr/local/cots/pooma/src/Array/Array.h:1913:   instantiated from `void
> Evaluator<RemoteMultiPatchEvaluatorTag>::evaluate(const LHS&, const Op&,
> const RHS&) const [with LHS = Array<2, double,
> MultiPatchView<UniformTag, Remote<Brick>, 2> >,
> RHS = Array<2, double, ConstantFunction>, Op = OpAssign]'
> /usr/local/cots/pooma/src/Array/Array.h:108:   instantiated from `void
> Evaluator<MainEvaluatorTag>::evaluate(const LHS&, const Op&, const RHS&)
> const [with LHS
> = Array<2, double, MultiPatch<UniformTag, Remote<Brick> > >, RHS =
> Array<2, double, ConstantFunction>, Op = OpAssign]'
> /usr/local/cots/pooma/src/Array/Array.h:2504:   instantiated from `const
> Array<D1, T1, E1>& assign(const Array<D1, T1, E1>&, const T1&, const
> Op&) [with int Dim = 2, T = double, EngineTag = MultiPatch<UniformTag,
> Remote<Brick> >, T1 = double, Op = OpAssign]'
> /usr/local/cots/pooma/src/Array/Array.h:2117:   instantiated from `const
> Array<Dim, T, EngineTag>& Array<Dim, T, EngineTag>::operator=(const T1&)
> const [with T1 = double, int Dim = 2, T = double, EngineTag =
> MultiPatch<UniformTag, Remote<Brick> >]'
> /usr/local/cots/pooma/src/Array/Array.h:2105:   instantiated from
> `Array<Dim, T, EngineTag>& Array<Dim, T, EngineTag>::operator=(const
> Array<Dim, T, EngineTag>&) [with int Dim = 2, T = double, EngineTag =
> MultiPatch<UniformTag, Remote<Brick> >]'
> diffusion_test.cpp:77:   instantiated from here
> /usr/local/cots/pooma/src/Layout/UniformGridLayout.h:297: warning:
> comparison
>    between signed and unsigned integer expressions
> /usr/local/cots/pooma/src/Partition/DistributedMapper.h: In member
> function
>    `void DistributedMapper<Dim>::map(const
> std::vector<Node<Interval<Dim>,
>    Interval<Dim> >*, std::allocator<Node<Interval<Dim>, Interval<Dim>
> >*> >&)
>    const [with int Dim = 2]':
> /usr/local/cots/pooma/src/Utilities/RefCountedBlockPtr.h:411: 
> instantiated from here
> /usr/local/cots/pooma/src/Partition/DistributedMapper.h:68: warning:
> comparison
>    between signed and unsigned integer expressions
> /usr/local/cots/pooma/src/Partition/BisectionMapper.h: In member
> function `void
>    BisectionMapper<Dim>::map(const std::vector<Node<Interval<Dim>,
>    Interval<Dim> >*, std::allocator<Node<Interval<Dim>, Interval<Dim>
> >*> >&)
>    const [with int Dim = 2]':
> /usr/local/cots/pooma/src/Partition/DistributedMapper.h:86: 
> instantiated from
> `void DistributedMapper<Dim>::map(const std::vector<Node<Interval<Dim>,
> Interval<Dim> >*, std::allocator<Node<Interval<Dim>, Interval<Dim> >*>
> >&) const [with int Dim = 2]'
> /usr/local/cots/pooma/src/Utilities/RefCountedBlockPtr.h:411: 
> instantiated from here
> /usr/local/cots/pooma/src/Partition/BisectionMapper.h:86: warning:
> comparison
>    between signed and unsigned integer expressions
>


reply via email to

[Prev in Thread] Current Thread [Next in Thread]