Instrumenting src/Evaluator Header Files
Jeffrey Oldham
oldham at codesourcery.com
Tue Oct 9 23:03:27 UTC 2001
Stephen and I tried to get PDToolkit 2.01b and Tau 2.9.22 to work on
Linux/KCC, but we both failed. Instead, we used Linux/g++ to produce
a patch of instrumentation for interesting header files. Stephen says
these are all in src/Evaluator. It's a hack, but it moves work
forward.
Thanks,
Jeffrey D. Oldham
oldham at codesourcery.com
-------------- next part --------------
Index: Evaluator.h
===================================================================
RCS file: /home/pooma/Repository/r2/src/Evaluator/Evaluator.h,v
retrieving revision 1.57
diff -c -p -r1.57 Evaluator.h
*** Evaluator.h 2001/03/29 00:41:21 1.57
--- Evaluator.h 2001/10/09 23:00:34
***************
*** 1,3 ****
--- 1,4 ----
+ #include <Profile/Profiler.h>
// -*- C++ -*-
// ACL:license
// ----------------------------------------------------------------------
***************
*** 72,79 ****
template <class EvalTag>
struct Evaluator
! {
! };
//-----------------------------------------------------------------------------
// Main Evaluator:
--- 73,79 ----
template <class EvalTag>
struct Evaluator
! {};
//-----------------------------------------------------------------------------
// Main Evaluator:
*************** struct Evaluator<MainEvaluatorTag>
*** 88,98 ****
{
// Default ctor.
! Evaluator() { }
// Destructor
! ~Evaluator() { }
// evaluate(expression)
// Input an expression and cause it to be evaluated.
--- 88,102 ----
{
// Default ctor.
! Evaluator() {
! TAU_PROFILE("Evaluator<MainEvaluatorTag> &Evaluator<MainEvaluatorTag>::Evaluator()", CT(*this), TAU_USER);
! }
// Destructor
! ~Evaluator() {
! TAU_PROFILE("void Evaluator<MainEvaluatorTag>::~Evaluator()", CT(*this), TAU_USER);
! }
// evaluate(expression)
// Input an expression and cause it to be evaluated.
*************** struct Evaluator<MainEvaluatorTag>
*** 101,106 ****
--- 105,112 ----
template <class LHS, class RHS, class Op>
void evaluate(const LHS& lhs, const Op& op, const RHS& rhs) const
{
+ TAU_PROFILE("void Evaluator<MainEvaluatorTag>::evaluate(const LHS &, const Op &, const RHS &) const", CT(*this), TAU_USER);
+
typedef typename EvaluatorTag<LHS, RHS>::Evaluator_t Eval_t;
Evaluator<Eval_t> evaluator;
*************** struct Evaluator<MainEvaluatorTag>
*** 121,126 ****
--- 127,134 ----
template <class LHS, class RHS, class Op>
void evaluateZeroBased(const LHS& lhs, const Op& op, const RHS& rhs) const
{
+ TAU_PROFILE("void Evaluator<MainEvaluatorTag>::evaluateZeroBased(const LHS &, const Op &, const RHS &) const", CT(*this), TAU_USER);
+
typedef typename EvaluatorTag<LHS, RHS>::Evaluator_t Eval_t;
Evaluator<Eval_t> evaluator;
*************** struct Evaluator<SinglePatchEvaluatorTag
*** 146,156 ****
{
// Default ctor.
! Evaluator() { }
// Destructor
! ~Evaluator() { }
// evaluate(expression)
// Input an expression and cause it to be evaluated.
--- 154,168 ----
{
// Default ctor.
! Evaluator() {
! TAU_PROFILE("Evaluator<SinglePatchEvaluatorTag> &Evaluator<SinglePatchEvaluatorTag>::Evaluator()", CT(*this), TAU_USER);
! }
// Destructor
! ~Evaluator() {
! TAU_PROFILE("void Evaluator<SinglePatchEvaluatorTag>::~Evaluator()", CT(*this), TAU_USER);
! }
// evaluate(expression)
// Input an expression and cause it to be evaluated.
*************** struct Evaluator<SinglePatchEvaluatorTag
*** 159,164 ****
--- 171,178 ----
template <class LHS, class RHS, class Op>
void evaluate(const LHS& lhs, const Op& op, const RHS& rhs) const
{
+ TAU_PROFILE("void Evaluator<SinglePatchEvaluatorTag>::evaluate(const LHS &, const Op &, const RHS &) const", CT(*this), TAU_USER);
+
typedef typename KernelTag<LHS,RHS>::Kernel_t Kernel_t;
#if POOMA_REORDER_ITERATES
Pooma::Iterate_t *iterate = generateKernel(lhs, op, rhs, Kernel_t());
*************** struct Evaluator<MultiPatchEvaluatorTag>
*** 182,192 ****
{
// Default ctor.
! Evaluator() { }
// Destructor
! ~Evaluator() { }
// evaluate(expression)
// Input an expression and cause it to be evaluated.
--- 196,210 ----
{
// Default ctor.
! Evaluator() {
! TAU_PROFILE("Evaluator<MultiPatchEvaluatorTag> &Evaluator<MultiPatchEvaluatorTag>::Evaluator()", CT(*this), TAU_USER);
! }
// Destructor
! ~Evaluator() {
! TAU_PROFILE("void Evaluator<MultiPatchEvaluatorTag>::~Evaluator()", CT(*this), TAU_USER);
! }
// evaluate(expression)
// Input an expression and cause it to be evaluated.
*************** struct Evaluator<MultiPatchEvaluatorTag>
*** 195,200 ****
--- 213,220 ----
template <class LHS, class RHS, class Op>
void evaluate(const LHS& lhs, const Op& op, const RHS& rhs) const
{
+ TAU_PROFILE("void Evaluator<MultiPatchEvaluatorTag>::evaluate(const LHS &, const Op &, const RHS &) const", CT(*this), TAU_USER);
+
typedef Intersector<LHS::dimensions> Inter_t;
Inter_t inter;
Index: InlineEvaluator.h
===================================================================
RCS file: /home/pooma/Repository/r2/src/Evaluator/InlineEvaluator.h,v
retrieving revision 1.26
diff -c -p -r1.26 InlineEvaluator.h
*** InlineEvaluator.h 2001/04/13 02:15:06 1.26
--- InlineEvaluator.h 2001/10/09 23:00:35
***************
*** 1,3 ****
--- 1,4 ----
+ #include <Profile/Profiler.h>
// -*- C++ -*-
// ACL:license
// ----------------------------------------------------------------------
*************** struct KernelEvaluator<InlineKernelTag>
*** 97,102 ****
--- 98,105 ----
template<class LHS,class Op,class RHS>
inline static void evaluate(const LHS& lhs,const Op& op,const RHS& rhs)
{
+ TAU_PROFILE("void KernelEvaluator<InlineKernelTag>::evaluate(const LHS &, const Op &, const RHS &)", " ", TAU_USER);
+
typedef typename LHS::Domain_t Domain_t;
evaluate(lhs,op,rhs,lhs.domain(),
WrappedInt<Domain_t::dimensions>());
*************** struct KernelEvaluator<InlineKernelTag>
*** 115,120 ****
--- 118,125 ----
inline static void evaluate(const LHS& lhs,const Op& op,const RHS& rhs,
const Domain& domain)
{
+ TAU_PROFILE("void KernelEvaluator<InlineKernelTag>::evaluate(const LHS &, const Op &, const RHS &, const Domain &)", " ", TAU_USER);
+
evaluate(lhs,op,rhs,domain,
WrappedInt<Domain::dimensions>());
POOMA_INCREMENT_STATISTIC(NumInlineEvaluations)
*************** struct KernelEvaluator<InlineKernelTag>
*** 155,160 ****
--- 160,167 ----
inline static void evaluate(const LHS& lhs,const Op& op,const RHS& rhs,
const Domain& domain,WrappedInt<1>)
{
+ TAU_PROFILE("void KernelEvaluator<InlineKernelTag>::evaluate(const LHS &, const Op &, const RHS &, const Domain &, WrappedInt<1>)", " ", TAU_USER);
+
CTAssert(Domain::unitStride);
PAssert(domain[0].first() == 0);
int e0 = domain[0].length();
*************** struct KernelEvaluator<InlineKernelTag>
*** 166,171 ****
--- 173,180 ----
inline static void evaluate(const LHS& lhs,const Op& op,const RHS& rhs,
const Domain& domain,WrappedInt<2>)
{
+ TAU_PROFILE("void KernelEvaluator<InlineKernelTag>::evaluate(const LHS &, const Op &, const RHS &, const Domain &, WrappedInt<2>)", " ", TAU_USER);
+
CTAssert(Domain::unitStride);
PAssert(domain[0].first() == 0);
PAssert(domain[1].first() == 0);
*************** struct KernelEvaluator<InlineKernelTag>
*** 180,185 ****
--- 189,196 ----
inline static void evaluate(const LHS& lhs,const Op& op,const RHS& rhs,
const Domain& domain,WrappedInt<3>)
{
+ TAU_PROFILE("void KernelEvaluator<InlineKernelTag>::evaluate(const LHS &, const Op &, const RHS &, const Domain &, WrappedInt<3>)", " ", TAU_USER);
+
CTAssert(Domain::unitStride);
PAssert(domain[0].first() == 0);
PAssert(domain[1].first() == 0);
*************** struct KernelEvaluator<InlineKernelTag>
*** 197,202 ****
--- 208,215 ----
inline static void evaluate(const LHS& lhs,const Op& op,const RHS& rhs,
const Domain& domain,WrappedInt<4>)
{
+ TAU_PROFILE("void KernelEvaluator<InlineKernelTag>::evaluate(const LHS &, const Op &, const RHS &, const Domain &, WrappedInt<4>)", " ", TAU_USER);
+
CTAssert(Domain::unitStride);
PAssert(domain[0].first() == 0);
PAssert(domain[1].first() == 0);
*************** struct KernelEvaluator<InlineKernelTag>
*** 217,222 ****
--- 230,237 ----
inline static void evaluate(const LHS& lhs,const Op& op,const RHS& rhs,
const Domain& domain,WrappedInt<5>)
{
+ TAU_PROFILE("void KernelEvaluator<InlineKernelTag>::evaluate(const LHS &, const Op &, const RHS &, const Domain &, WrappedInt<5>)", " ", TAU_USER);
+
CTAssert(Domain::unitStride);
PAssert(domain[0].first() == 0);
PAssert(domain[1].first() == 0);
*************** struct KernelEvaluator<InlineKernelTag>
*** 240,245 ****
--- 255,262 ----
inline static void evaluate(const LHS& lhs,const Op& op,const RHS& rhs,
const Domain& domain,WrappedInt<6>)
{
+ TAU_PROFILE("void KernelEvaluator<InlineKernelTag>::evaluate(const LHS &, const Op &, const RHS &, const Domain &, WrappedInt<6>)", " ", TAU_USER);
+
CTAssert(Domain::unitStride);
PAssert(domain[0].first() == 0);
PAssert(domain[1].first() == 0);
*************** struct KernelEvaluator<InlineKernelTag>
*** 267,272 ****
--- 284,291 ----
inline static void evaluate(const LHS& lhs,const Op& op,const RHS& rhs,
const Domain& domain,WrappedInt<7>)
{
+ TAU_PROFILE("void KernelEvaluator<InlineKernelTag>::evaluate(const LHS &, const Op &, const RHS &, const Domain &, WrappedInt<7>)", " ", TAU_USER);
+
CTAssert(Domain::unitStride);
PAssert(domain[0].first() == 0);
PAssert(domain[1].first() == 0);
Index: CompressibleEval.h
===================================================================
RCS file: /home/pooma/Repository/r2/src/Evaluator/CompressibleEval.h,v
retrieving revision 1.25
diff -c -p -r1.25 CompressibleEval.h
*** CompressibleEval.h 2000/05/31 02:40:03 1.25
--- CompressibleEval.h 2001/10/09 23:00:35
***************
*** 1,3 ****
--- 1,4 ----
+ #include <Profile/Profiler.h>
// -*- C++ -*-
// ACL:license
// ----------------------------------------------------------------------
*************** struct KernelEvaluator<CompressibleViewK
*** 81,86 ****
--- 82,89 ----
template<class LHS, class Op, class RHS>
static void evaluate(const LHS &lhs, const Op &op, const RHS &rhs)
{
+ TAU_PROFILE("void KernelEvaluator<CompressibleViewKernelTag>::evaluate(const LHS &, const Op &, const RHS &)", " ", TAU_USER);
+
// Try this for now. We just pass the uncompressed engine
// to the inline evaluator. If you want to pack this in an
// array go ahead, but then you'll have to include Array.h.
*************** struct KernelEvaluator<CompressibleKerne
*** 98,103 ****
--- 101,108 ----
template<class LHS, class Op, class RHS>
static void evaluate(const LHS &lhs, const Op &op, const RHS &rhs)
{
+ TAU_PROFILE("void KernelEvaluator<CompressibleKernelTag>::evaluate(const LHS &, const Op &, const RHS &)", " ", TAU_USER);
+
// If everybody is compressed, then we do a compressed assign,
// provided the left-hand-side is viewing the entire compressed
// block or the value being assigned is the same as the compressed
Index: ExpressionKernel.h
===================================================================
RCS file: /home/pooma/Repository/r2/src/Evaluator/ExpressionKernel.h,v
retrieving revision 1.45
diff -c -p -r1.45 ExpressionKernel.h
*** ExpressionKernel.h 2001/03/28 19:14:51 1.45
--- ExpressionKernel.h 2001/10/09 23:00:35
***************
*** 1,3 ****
--- 1,4 ----
+ #include <Profile/Profiler.h>
// -*- C++ -*-
// ACL:license
// ----------------------------------------------------------------------
***************
*** 83,88 ****
--- 84,91 ----
template<class LHS,class Op,class RHS,class EvalTag>
class ExpressionKernel : public Pooma::Iterate_t
{
+ TAU_PROFILE("ExpressionKernel<LHS, Op, RHS, EvalTag>::ExpressionKernel", CT(*this), TAU_USER);
+
public:
typedef ExpressionKernel<LHS,Op,RHS,EvalTag> This_t;
*************** ExpressionKernel(const LHS& lhs,const Op
*** 131,136 ****
--- 134,141 ----
: Pooma::Iterate_t(Pooma::scheduler()),
lhs_m(lhs), op_m(op), rhs_m(rhs)
{
+ TAU_PROFILE("ExpressionKernel<LHS, Op, RHS, EvalTag>::ExpressionKernel", CT(*this), TAU_USER);
+
hintAffinity(engineFunctor(lhs, DataObjectRequest<BlockAffinity>()));
// Request locks
*************** ExpressionKernel(const LHS& lhs,const Op
*** 161,166 ****
--- 166,173 ----
template<class LHS,class Op,class RHS,class EvalTag>
ExpressionKernel<LHS,Op,RHS,EvalTag>::~ExpressionKernel()
{
+ TAU_PROFILE("ExpressionKernel<LHS, Op, RHS, EvalTag>::~ExpressionKernel", CT(*this), TAU_USER);
+
// The write request remembers the data block it sees on the left
// so that it can check and see if it finds it on the right.
*************** template<class LHS,class Op,class RHS,cl
*** 184,189 ****
--- 191,198 ----
void
ExpressionKernel<LHS,Op,RHS,EvalTag>::run()
{
+ TAU_PROFILE("ExpressionKernel<LHS, Op, RHS, EvalTag>::run", CT(*this), TAU_USER);
+
// Just evaluate the expression.
KernelEvaluator<EvalTag>::evaluate(lhs_m,op_m,rhs_m);
*************** inline static
*** 195,200 ****
--- 204,211 ----
ExpressionKernel<LHS,Op,RHS,EvalTag>*
generateKernel(const LHS& lhs, const Op& op, const RHS& rhs, const EvalTag&)
{
+ TAU_PROFILE("ExpressionKernel<LHS, Op, RHS, EvalTag> *generateKernel(const LHS &, const Op &, const RHS &, const EvalTag &)", " ", TAU_USER);
+
return new ExpressionKernel<LHS,Op,RHS,EvalTag>(lhs, op, rhs);
}
Index: LoopApply.h
===================================================================
RCS file: /home/pooma/Repository/r2/src/Evaluator/LoopApply.h,v
retrieving revision 1.4
diff -c -p -r1.4 LoopApply.h
*** LoopApply.h 2001/04/13 02:15:06 1.4
--- LoopApply.h 2001/10/09 23:00:35
***************
*** 1,3 ****
--- 1,4 ----
+ #include <Profile/Profiler.h>
// -*- C++ -*-
// ACL:license
// ----------------------------------------------------------------------
*************** struct LoopApplyEvaluator
*** 91,102 ****
--- 92,107 ----
template<class Op, class Dom>
inline static void evaluate(Op &op, const Dom &domain)
{
+ TAU_PROFILE("void LoopApplyEvaluator::evaluate(Op &, const Dom &)", " ", TAU_USER);
+
evaluate(op, domain, WrappedInt<Dom::dimensions>());
}
template<class Op, class Domain>
inline static void evaluate(Op &op, const Domain &domain, WrappedInt<1>)
{
+ TAU_PROFILE("void LoopApplyEvaluator::evaluate(Op &, const Domain &, WrappedInt<1>)", " ", TAU_USER);
+
CTAssert(Domain::unitStride);
int f0 = domain[0].first();
int e0 = domain[0].last();
*************** struct LoopApplyEvaluator
*** 107,112 ****
--- 112,119 ----
template<class Op, class Domain>
inline static void evaluate(Op &op, const Domain &domain, WrappedInt<2>)
{
+ TAU_PROFILE("void LoopApplyEvaluator::evaluate(Op &, const Domain &, WrappedInt<2>)", " ", TAU_USER);
+
CTAssert(Domain::unitStride);
int f0 = domain[0].first();
int f1 = domain[1].first();
*************** struct LoopApplyEvaluator
*** 120,125 ****
--- 127,134 ----
template<class Op, class Domain>
inline static void evaluate(Op &op, const Domain &domain, WrappedInt<3>)
{
+ TAU_PROFILE("void LoopApplyEvaluator::evaluate(Op &, const Domain &, WrappedInt<3>)", " ", TAU_USER);
+
CTAssert(Domain::unitStride);
int f0 = domain[0].first();
int f1 = domain[1].first();
*************** struct LoopApplyEvaluator
*** 136,141 ****
--- 145,152 ----
template<class Op, class Domain>
inline static void evaluate(Op &op, const Domain &domain, WrappedInt<4>)
{
+ TAU_PROFILE("void LoopApplyEvaluator::evaluate(Op &, const Domain &, WrappedInt<4>)", " ", TAU_USER);
+
CTAssert(Domain::unitStride);
int f0 = domain[0].first();
int f1 = domain[1].first();
*************** struct LoopApplyEvaluator
*** 155,160 ****
--- 166,173 ----
template<class Op, class Domain>
inline static void evaluate(Op &op, const Domain &domain, WrappedInt<5>)
{
+ TAU_PROFILE("void LoopApplyEvaluator::evaluate(Op &, const Domain &, WrappedInt<5>)", " ", TAU_USER);
+
CTAssert(Domain::unitStride);
int f0 = domain[0].first();
int f1 = domain[1].first();
*************** struct LoopApplyEvaluator
*** 177,182 ****
--- 190,197 ----
template<class Op, class Domain>
inline static void evaluate(Op &op, const Domain &domain, WrappedInt<6>)
{
+ TAU_PROFILE("void LoopApplyEvaluator::evaluate(Op &, const Domain &, WrappedInt<6>)", " ", TAU_USER);
+
CTAssert(Domain::unitStride);
int f0 = domain[0].first();
int f1 = domain[1].first();
*************** struct LoopApplyEvaluator
*** 202,207 ****
--- 217,224 ----
template<class Op, class Domain>
inline static void evaluate(Op &op, const Domain &domain, WrappedInt<7>)
{
+ TAU_PROFILE("void LoopApplyEvaluator::evaluate(Op &, const Domain &, WrappedInt<7>)", " ", TAU_USER);
+
CTAssert(Domain::unitStride);
int f0 = domain[0].first();
int f1 = domain[1].first();
Index: PatchFunction.h
===================================================================
RCS file: /home/pooma/Repository/r2/src/Evaluator/PatchFunction.h,v
retrieving revision 1.29
diff -c -p -r1.29 PatchFunction.h
*** PatchFunction.h 2000/09/20 16:22:10 1.29
--- PatchFunction.h 2001/10/09 23:00:35
***************
*** 1,3 ****
--- 1,4 ----
+ #include <Profile/Profiler.h>
// -*- C++ -*-
// ACL:license
// ----------------------------------------------------------------------
*************** struct PatchParticle3 { };
*** 118,125 ****
template<class EvalTag>
class PatchEvaluator
! {
! };
template<>
class PatchEvaluator<MainEvaluatorTag>
--- 119,125 ----
template<class EvalTag>
class PatchEvaluator
! {};
template<>
class PatchEvaluator<MainEvaluatorTag>
*************** public:
*** 128,142 ****
// Default ctor.
! PatchEvaluator() {}
// Destructor
! ~PatchEvaluator() {}
template<class A1, class Function>
void evaluate(const A1& a1, const Function& function) const
{
typedef typename EvaluatorTag1<A1>::Evaluator_t Evaluator_t;
PatchEvaluator<Evaluator_t> evaluator;
Pooma::Scheduler_t &scheduler = Pooma::scheduler();
--- 128,148 ----
// Default ctor.
! PatchEvaluator() {
! TAU_PROFILE("PatchEvaluator<MainEvaluatorTag> &PatchEvaluator<MainEvaluatorTag>::PatchEvaluator()", CT(*this), TAU_USER);
! }
// Destructor
! ~PatchEvaluator() {
! TAU_PROFILE("void PatchEvaluator<MainEvaluatorTag>::~PatchEvaluator()", CT(*this), TAU_USER);
! }
template<class A1, class Function>
void evaluate(const A1& a1, const Function& function) const
{
+ TAU_PROFILE("void PatchEvaluator<MainEvaluatorTag>::evaluate(const A1 &, const Function &) const", CT(*this), TAU_USER);
+
typedef typename EvaluatorTag1<A1>::Evaluator_t Evaluator_t;
PatchEvaluator<Evaluator_t> evaluator;
Pooma::Scheduler_t &scheduler = Pooma::scheduler();
*************** public:
*** 154,159 ****
--- 160,167 ----
template<class A1, class Function>
void evaluateRead(const A1& a1, const Function& function) const
{
+ TAU_PROFILE("void PatchEvaluator<MainEvaluatorTag>::evaluateRead(const A1 &, const Function &) const", CT(*this), TAU_USER);
+
typedef typename EvaluatorTag1<A1>::Evaluator_t Evaluator_t;
PatchEvaluator<Evaluator_t> evaluator;
Pooma::Scheduler_t &scheduler = Pooma::scheduler();
*************** public:
*** 171,176 ****
--- 179,186 ----
void evaluate2(const A1& a1, const A2& a2,
const Function& function) const
{
+ TAU_PROFILE("void PatchEvaluator<MainEvaluatorTag>::evaluate2(const A1 &, const A2 &, const Function &) const", CT(*this), TAU_USER);
+
typedef typename EvaluatorTag<A1,A2>::Evaluator_t Eval_t;
PatchEvaluator<Eval_t> evaluator;
Pooma::Scheduler_t &scheduler = Pooma::scheduler();
*************** public:
*** 189,194 ****
--- 199,206 ----
void evaluate3(const A1& a1, const A2& a2, const A3 &a3,
const Function& function) const
{
+ TAU_PROFILE("void PatchEvaluator<MainEvaluatorTag>::evaluate3(const A1 &, const A2 &, const A3 &, const Function &) const", CT(*this), TAU_USER);
+
typedef typename EvaluatorTag1<A2>::Evaluator_t Eval2_t;
typedef typename EvaluatorTag1<A3>::Evaluator_t Eval3_t;
typedef typename EvaluatorCombine<Eval2_t,Eval3_t>::Evaluator_t Eval23_t;
*************** public:
*** 224,239 ****
// The only member data can construct itself, so we
// don't need to specify anything.
//
! PatchEvaluator() {}
//
// Destructor
//
! ~PatchEvaluator() {}
template<class A1, class Function>
void evaluate(const A1& a1, const Function& function) const
{
Pooma::Iterate_t *iterate = new PatchKernel<A1,Function>(a1,function);
Pooma::scheduler().handOff(iterate);
}
--- 236,257 ----
// The only member data can construct itself, so we
// don't need to specify anything.
//
! PatchEvaluator() {
! TAU_PROFILE("PatchEvaluator<SinglePatchEvaluatorTag> &PatchEvaluator<SinglePatchEvaluatorTag>::PatchEvaluator()", CT(*this), TAU_USER);
! }
//
// Destructor
//
! ~PatchEvaluator() {
! TAU_PROFILE("void PatchEvaluator<SinglePatchEvaluatorTag>::~PatchEvaluator()", CT(*this), TAU_USER);
! }
template<class A1, class Function>
void evaluate(const A1& a1, const Function& function) const
{
+ TAU_PROFILE("void PatchEvaluator<SinglePatchEvaluatorTag>::evaluate(const A1 &, const Function &) const", CT(*this), TAU_USER);
+
Pooma::Iterate_t *iterate = new PatchKernel<A1,Function>(a1,function);
Pooma::scheduler().handOff(iterate);
}
*************** public:
*** 241,246 ****
--- 259,266 ----
template<class A1, class Function>
void evaluateRead(const A1& a1, const Function& function) const
{
+ TAU_PROFILE("void PatchEvaluator<SinglePatchEvaluatorTag>::evaluateRead(const A1 &, const Function &) const", CT(*this), TAU_USER);
+
Pooma::Iterate_t *iterate = new PatchKernel<A1,Function>(a1,function);
Pooma::scheduler().handOff(iterate);
}
*************** public:
*** 249,254 ****
--- 269,276 ----
void evaluate2(const A1 &a1, const A2 &a2,
const Function &function) const
{
+ TAU_PROFILE("void PatchEvaluator<SinglePatchEvaluatorTag>::evaluate2(const A1 &, const A2 &, const Function &) const", CT(*this), TAU_USER);
+
Pooma::Iterate_t *iterate =
new PatchKernel2<A1,A2,Function>(a1,a2,function);
*************** public:
*** 259,264 ****
--- 281,288 ----
void evaluate3(const A1 &a1, const A2 &a2, const A3 &a3,
const Function &function) const
{
+ TAU_PROFILE("void PatchEvaluator<SinglePatchEvaluatorTag>::evaluate3(const A1 &, const A2 &, const A3 &, const Function &) const", CT(*this), TAU_USER);
+
Pooma::Iterate_t *iterate =
new PatchKernel3<A1,A2,A3,Function>(a1,a2,a3,function);
*************** public:
*** 283,298 ****
// The only member data can construct itself, so we
// don't need to specify anything.
//
! PatchEvaluator() {}
//
// Destructor
//
! ~PatchEvaluator() {}
template<class A1,class Function>
void evaluate(const A1& a1,const Function& function) const
{
typedef Intersector<A1::dimensions> Inter_t;
Inter_t inter;
--- 307,328 ----
// The only member data can construct itself, so we
// don't need to specify anything.
//
! PatchEvaluator() {
! TAU_PROFILE("PatchEvaluator<MultiPatchEvaluatorTag> &PatchEvaluator<MultiPatchEvaluatorTag>::PatchEvaluator()", CT(*this), TAU_USER);
! }
//
// Destructor
//
! ~PatchEvaluator() {
! TAU_PROFILE("void PatchEvaluator<MultiPatchEvaluatorTag>::~PatchEvaluator()", CT(*this), TAU_USER);
! }
template<class A1,class Function>
void evaluate(const A1& a1,const Function& function) const
{
+ TAU_PROFILE("void PatchEvaluator<MultiPatchEvaluatorTag>::evaluate(const A1 &, const Function &) const", CT(*this), TAU_USER);
+
typedef Intersector<A1::dimensions> Inter_t;
Inter_t inter;
*************** public:
*** 310,315 ****
--- 340,347 ----
inline
void evaluateRead(const A1& a1,const Function& function) const
{
+ TAU_PROFILE("void PatchEvaluator<MultiPatchEvaluatorTag>::evaluateRead(const A1 &, const Function &) const", CT(*this), TAU_USER);
+
evaluate(a1,function);
}
*************** public:
*** 317,322 ****
--- 349,356 ----
void evaluate2(const A1& a1, const A2& a2,
const Function& function) const
{
+ TAU_PROFILE("void PatchEvaluator<MultiPatchEvaluatorTag>::evaluate2(const A1 &, const A2 &, const Function &) const", CT(*this), TAU_USER);
+
typedef Intersector<A1::dimensions> Inter_t;
Inter_t inter;
*************** public:
*** 337,342 ****
--- 371,378 ----
void evaluate3(const A1 &a1, const A2 &a2, const A3 &a3,
const Function& function) const
{
+ TAU_PROFILE("void PatchEvaluator<MultiPatchEvaluatorTag>::evaluate3(const A1 &, const A2 &, const A3 &, const Function &) const", CT(*this), TAU_USER);
+
typedef Intersector<A1::dimensions> Inter_t;
Inter_t inter;
*************** class ParticleEvaluator
*** 362,377 ****
public:
// Default ctor.
! ParticleEvaluator() {}
// Destructor
! ~ParticleEvaluator() {}
template<class A1, class Function, bool Write1>
void evaluate(const A1 &a1, const Function &function,
const PatchParticle1<Write1> &) const
{
Pooma::Scheduler_t &scheduler = Pooma::scheduler();
scheduler.beginGeneration();
--- 398,419 ----
public:
// Default ctor.
! ParticleEvaluator() {
! TAU_PROFILE("ParticleEvaluator &ParticleEvaluator::ParticleEvaluator()", CT(*this), TAU_USER);
! }
// Destructor
! ~ParticleEvaluator() {
! TAU_PROFILE("void ParticleEvaluator::~ParticleEvaluator()", CT(*this), TAU_USER);
! }
template<class A1, class Function, bool Write1>
void evaluate(const A1 &a1, const Function &function,
const PatchParticle1<Write1> &) const
{
+ TAU_PROFILE("void ParticleEvaluator::evaluate(const A1 &, const Function &, const PatchParticle1<Write1> &) const", CT(*this), TAU_USER);
+
Pooma::Scheduler_t &scheduler = Pooma::scheduler();
scheduler.beginGeneration();
*************** public:
*** 402,407 ****
--- 444,451 ----
void evaluateBlock(const A1 &a1, const Function &function,
const PatchParticle1<Write1> &) const
{
+ TAU_PROFILE("void ParticleEvaluator::evaluateBlock(const A1 &, const Function &, const PatchParticle1<Write1> &) const", CT(*this), TAU_USER);
+
Pooma::Scheduler_t &scheduler = Pooma::scheduler();
int n = a1.numPatchesLocal();
*************** public:
*** 441,446 ****
--- 485,492 ----
void evaluate2(const A1& a1, const A2 &a2, const Function& function,
const PatchParticle2<Write1, Write2> &) const
{
+ TAU_PROFILE("void ParticleEvaluator::evaluate2(const A1 &, const A2 &, const Function &, const PatchParticle2<Write1, Write2> &) const", CT(*this), TAU_USER);
+
Pooma::Scheduler_t &scheduler = Pooma::scheduler();
scheduler.beginGeneration();
*************** public:
*** 476,481 ****
--- 522,529 ----
void evaluate2Block(const A1& a1, const A2 &a2, const Function& function,
const PatchParticle2<Write1, Write2> &) const
{
+ TAU_PROFILE("void ParticleEvaluator::evaluate2Block(const A1 &, const A2 &, const Function &, const PatchParticle2<Write1, Write2> &) const", CT(*this), TAU_USER);
+
Pooma::Scheduler_t &scheduler = Pooma::scheduler();
scheduler.beginGeneration();
*************** public:
*** 520,525 ****
--- 568,575 ----
const Function& function,
const PatchParticle3<Write1, Write2, Write3> &) const
{
+ TAU_PROFILE("void ParticleEvaluator::evaluate3(const A1 &, const A2 &, const A3 &, const Function &, const PatchParticle3<Write1, Write2, Write3> &) const", CT(*this), TAU_USER);
+
Pooma::Scheduler_t &scheduler = Pooma::scheduler();
scheduler.beginGeneration();
*************** public:
*** 561,566 ****
--- 611,618 ----
const Function& function,
const PatchParticle3<Write1, Write2, Write3> &) const
{
+ TAU_PROFILE("void ParticleEvaluator::evaluate3Block(const A1 &, const A2 &, const A3 &, const Function &, const PatchParticle3<Write1, Write2, Write3> &) const", CT(*this), TAU_USER);
+
Pooma::Scheduler_t &scheduler = Pooma::scheduler();
scheduler.beginGeneration();
*************** CLASS(const I1 &i1, const I2 &i2, const
*** 653,668 ****
template<class Function, class Patch>
class PatchFunction
! {
! };
template<class Function>
class PatchFunction<Function,PatchTag1>
{
public:
! PatchFunction() { }
! PatchFunction(const Function &function) : function_m(function) { }
POOMA_PATCHFUNCTION_ARGUMENT_CONSTRUCTORS(PatchFunction,function_m)
--- 705,723 ----
template<class Function, class Patch>
class PatchFunction
! {};
template<class Function>
class PatchFunction<Function,PatchTag1>
{
public:
! PatchFunction() {
! TAU_PROFILE("PatchFunction<Function, PatchTag1> &PatchFunction<Function, PatchTag1>::PatchFunction()", CT(*this), TAU_USER);
! }
! PatchFunction(const Function &function) : function_m(function) {
! TAU_PROFILE("PatchFunction<Function, PatchTag1>::PatchFunction", CT(*this), TAU_USER);
! }
POOMA_PATCHFUNCTION_ARGUMENT_CONSTRUCTORS(PatchFunction,function_m)
*************** public:
*** 670,679 ****
inline void
operator()(const Array& a) const
{
PatchEvaluator<MainEvaluatorTag>().evaluate(a,function());
}
! inline const Function &function() const { return function_m; }
private:
--- 725,738 ----
inline void
operator()(const Array& a) const
{
+ TAU_PROFILE("PatchFunction<Function, PatchTag1>::PatchFunction", " ", TAU_USER);
+
PatchEvaluator<MainEvaluatorTag>().evaluate(a,function());
}
! inline const Function &function() const {
! TAU_PROFILE("PatchFunction<Function, PatchTag1>::function", CT(*this), TAU_USER);
! return function_m; }
private:
*************** private:
*** 683,692 ****
template<class Function>
class PatchFunction<Function,PatchReadTag1>
{
public:
! PatchFunction() { }
! PatchFunction(const Function &function) : function_m(function) { }
POOMA_PATCHFUNCTION_ARGUMENT_CONSTRUCTORS(PatchFunction,function_m)
--- 742,757 ----
template<class Function>
class PatchFunction<Function,PatchReadTag1>
{
+ TAU_PROFILE("PatchFunction<Function, PatchReadTag1>::PatchFunction", CT(*this), TAU_USER);
+
public:
! PatchFunction() {
! TAU_PROFILE("PatchFunction<Function, PatchReadTag1>::PatchFunction", CT(*this), TAU_USER);
! }
! PatchFunction(const Function &function) : function_m(function) {
! TAU_PROFILE("PatchFunction<Function, PatchReadTag1>::PatchFunction", CT(*this), TAU_USER);
! }
POOMA_PATCHFUNCTION_ARGUMENT_CONSTRUCTORS(PatchFunction,function_m)
*************** public:
*** 694,703 ****
inline void
operator()(const Array& a) const
{
PatchEvaluator<MainEvaluatorTag>().evaluateRead(a,function());
}
! inline const Function &function() const { return function_m; }
private:
--- 759,772 ----
inline void
operator()(const Array& a) const
{
+ TAU_PROFILE("PatchFunction<Function, PatchReadTag1>::PatchFunction", " ", TAU_USER);
+
PatchEvaluator<MainEvaluatorTag>().evaluateRead(a,function());
}
! inline const Function &function() const {
! TAU_PROFILE("const Function &PatchFunction<Function, PatchReadTag1>::function() const", CT(*this), TAU_USER);
! return function_m; }
private:
*************** template<class Function>
*** 708,715 ****
class PatchFunction<Function,PatchTag2>
{
public:
! PatchFunction() { }
! PatchFunction(const Function &function) : function_m(function) { }
POOMA_PATCHFUNCTION_ARGUMENT_CONSTRUCTORS(PatchFunction,function_m)
--- 777,788 ----
class PatchFunction<Function,PatchTag2>
{
public:
! PatchFunction() {
! TAU_PROFILE("PatchFunction<Function, PatchTag2> &PatchFunction<Function, PatchTag2>::PatchFunction()", CT(*this), TAU_USER);
! }
! PatchFunction(const Function &function) : function_m(function) {
! TAU_PROFILE("PatchFunction<Function, PatchTag2> &PatchFunction<Function, PatchTag2>::PatchFunction(const Function &)", CT(*this), TAU_USER);
! }
POOMA_PATCHFUNCTION_ARGUMENT_CONSTRUCTORS(PatchFunction,function_m)
*************** public:
*** 717,726 ****
inline void
operator()(const Array1 &a1, const Array2 &a2) const
{
PatchEvaluator<MainEvaluatorTag>().evaluate2(a1,a2,function());
}
! inline const Function &function() const { return function_m; }
private:
--- 790,803 ----
inline void
operator()(const Array1 &a1, const Array2 &a2) const
{
+ TAU_PROFILE("PatchFunction<Function, PatchTag2> &PatchFunction<Function, PatchTag2>::PatchFunction(const I1 &, const I2 &, const I3 &, const I4 &, const I5 &, const I6 &, const I7 &)", CT(*this), TAU_USER);
+
PatchEvaluator<MainEvaluatorTag>().evaluate2(a1,a2,function());
}
! inline const Function &function() const {
! TAU_PROFILE("PatchFunction<Function, PatchTag2>::function", CT(*this), TAU_USER);
! return function_m; }
private:
*************** template<class Function>
*** 731,738 ****
class PatchFunction<Function,PatchTag3>
{
public:
! PatchFunction() { }
! PatchFunction(const Function &function) : function_m(function) { }
POOMA_PATCHFUNCTION_ARGUMENT_CONSTRUCTORS(PatchFunction,function_m)
--- 808,819 ----
class PatchFunction<Function,PatchTag3>
{
public:
! PatchFunction() {
! TAU_PROFILE("PatchFunction<Function, PatchTag3>::PatchFunction", CT(*this), TAU_USER);
! }
! PatchFunction(const Function &function) : function_m(function) {
! TAU_PROFILE("PatchFunction<Function, PatchTag3>::PatchFunction", CT(*this), TAU_USER);
! }
POOMA_PATCHFUNCTION_ARGUMENT_CONSTRUCTORS(PatchFunction,function_m)
*************** public:
*** 740,749 ****
inline void
operator()(const Array1 &a1, const Array2 &a2, const Array3 &a3) const
{
PatchEvaluator<MainEvaluatorTag>().evaluate3(a1,a2,a3,function());
}
! inline const Function &function() const { return function_m; }
private:
--- 821,834 ----
inline void
operator()(const Array1 &a1, const Array2 &a2, const Array3 &a3) const
{
+ TAU_PROFILE("PatchFunction<Function, PatchTag3> &PatchFunction<Function, PatchTag3>::PatchFunction(const I1 &)", CT(*this), TAU_USER);
+
PatchEvaluator<MainEvaluatorTag>().evaluate3(a1,a2,a3,function());
}
! inline const Function &function() const {
! TAU_PROFILE("PatchFunction<Function, PatchTag3>::function", CT(*this), TAU_USER);
! return function_m; }
private:
*************** private:
*** 753,762 ****
template<class Function, bool Write1>
class PatchFunction<Function, PatchParticle1<Write1> >
{
public:
! PatchFunction() { }
! PatchFunction(const Function &function) : function_m(function) { }
POOMA_PATCHFUNCTION_ARGUMENT_CONSTRUCTORS(PatchFunction,function_m)
--- 838,853 ----
template<class Function, bool Write1>
class PatchFunction<Function, PatchParticle1<Write1> >
{
+ TAU_PROFILE("PatchFunction<Function, PatchParticle1<Write1>>::PatchFunction", CT(*this), TAU_USER);
+
public:
! PatchFunction() {
! TAU_PROFILE("PatchFunction<Function, PatchParticle1<Write1>> &PatchFunction<Function, PatchParticle1<Write1>>::PatchFunction()", CT(*this), TAU_USER);
! }
! PatchFunction(const Function &function) : function_m(function) {
! TAU_PROFILE("PatchFunction<Function, PatchParticle1<Write1>> &PatchFunction<Function, PatchParticle1<Write1>>::PatchFunction(const Function &)", CT(*this), TAU_USER);
! }
POOMA_PATCHFUNCTION_ARGUMENT_CONSTRUCTORS(PatchFunction,function_m)
*************** public:
*** 764,769 ****
--- 855,862 ----
inline void
operator()(const Array& a) const
{
+ TAU_PROFILE("PatchFunction<Function, PatchParticle1<Write1>>::PatchFunction", " ", TAU_USER);
+
ParticleEvaluator().evaluate(a, function(), PatchParticle1<Write1>());
}
*************** public:
*** 771,781 ****
inline void
block(const Array& a) const
{
ParticleEvaluator().
evaluateBlock(a, function(), PatchParticle1<Write1>());
}
! inline const Function &function() const { return function_m; }
private:
--- 864,878 ----
inline void
block(const Array& a) const
{
+ TAU_PROFILE("void PatchFunction<Function, PatchParticle1<Write1>>::block(const Array &) const", CT(*this), TAU_USER);
+
ParticleEvaluator().
evaluateBlock(a, function(), PatchParticle1<Write1>());
}
! inline const Function &function() const {
! TAU_PROFILE("const Function &PatchFunction<Function, PatchParticle1<Write1>>::function() const", CT(*this), TAU_USER);
! return function_m; }
private:
*************** private:
*** 785,794 ****
template<class Function, bool Write1, bool Write2>
class PatchFunction<Function, PatchParticle2<Write1, Write2> >
{
public:
! PatchFunction() { }
! PatchFunction(const Function &function) : function_m(function) { }
POOMA_PATCHFUNCTION_ARGUMENT_CONSTRUCTORS(PatchFunction,function_m)
--- 882,897 ----
template<class Function, bool Write1, bool Write2>
class PatchFunction<Function, PatchParticle2<Write1, Write2> >
{
+ TAU_PROFILE("PatchFunction<Function, PatchParticle2<Write1, Write2>>::PatchFunction", CT(*this), TAU_USER);
+
public:
! PatchFunction() {
! TAU_PROFILE("PatchFunction<Function, PatchParticle2<Write1, Write2>> &PatchFunction<Function, PatchParticle2<Write1, Write2>>::PatchFunction()", CT(*this), TAU_USER);
! }
! PatchFunction(const Function &function) : function_m(function) {
! TAU_PROFILE("PatchFunction<Function, PatchParticle2<Write1, Write2>> &PatchFunction<Function, PatchParticle2<Write1, Write2>>::PatchFunction(const Function &)", CT(*this), TAU_USER);
! }
POOMA_PATCHFUNCTION_ARGUMENT_CONSTRUCTORS(PatchFunction,function_m)
*************** public:
*** 796,801 ****
--- 899,906 ----
inline void
operator()(const Array1 &a1, const Array2 &a2) const
{
+ TAU_PROFILE("PatchFunction<Function, PatchParticle2<Write1, Write2>>::PatchFunction", " ", TAU_USER);
+
ParticleEvaluator().evaluate2(a1, a2, function(),
PatchParticle2<Write1, Write2>());
}
*************** public:
*** 804,814 ****
inline void
block(const Array1 &a1, const Array2 &a2) const
{
ParticleEvaluator().evaluate2Block(a1, a2, function(),
PatchParticle2<Write1, Write2>());
}
! inline const Function &function() const { return function_m; }
private:
--- 909,923 ----
inline void
block(const Array1 &a1, const Array2 &a2) const
{
+ TAU_PROFILE("void PatchFunction<Function, PatchParticle2<Write1, Write2>>::block(const Array1 &, const Array2 &) const", CT(*this), TAU_USER);
+
ParticleEvaluator().evaluate2Block(a1, a2, function(),
PatchParticle2<Write1, Write2>());
}
! inline const Function &function() const {
! TAU_PROFILE("PatchFunction<Function, PatchParticle2<Write1, Write2>>::function", CT(*this), TAU_USER);
! return function_m; }
private:
*************** class PatchFunction<Function, PatchParti
*** 820,827 ****
{
public:
! PatchFunction() { }
! PatchFunction(const Function &function) : function_m(function) { }
POOMA_PATCHFUNCTION_ARGUMENT_CONSTRUCTORS(PatchFunction,function_m)
--- 929,940 ----
{
public:
! PatchFunction() {
! TAU_PROFILE("PatchFunction<Function, PatchParticle3<Write1, Write2, Write3>> &PatchFunction<Function, PatchParticle3<Write1, Write2, Write3>>::PatchFunction()", CT(*this), TAU_USER);
! }
! PatchFunction(const Function &function) : function_m(function) {
! TAU_PROFILE("PatchFunction<Function, PatchParticle3<Write1, Write2, Write3>> &PatchFunction<Function, PatchParticle3<Write1, Write2, Write3>>::PatchFunction(const Function &)", CT(*this), TAU_USER);
! }
POOMA_PATCHFUNCTION_ARGUMENT_CONSTRUCTORS(PatchFunction,function_m)
*************** public:
*** 829,834 ****
--- 942,949 ----
inline void
operator()(const Array1 &a1, const Array2 &a2, const Array3 &a3) const
{
+ TAU_PROFILE("PatchFunction<Function, PatchParticle3<Write1, Write2, Write3>>::PatchFunction", " ", TAU_USER);
+
ParticleEvaluator().evaluate3(
a1, a2, a3, function(), PatchParticle3<Write1, Write2, Write3>());
}
*************** public:
*** 837,847 ****
inline void
block(const Array1 &a1, const Array2 &a2, const Array3 &a3) const
{
ParticleEvaluator().evaluate3Block(
a1, a2, a3, function(), PatchParticle3<Write1, Write2, Write3>());
}
! inline const Function &function() const { return function_m; }
private:
--- 952,966 ----
inline void
block(const Array1 &a1, const Array2 &a2, const Array3 &a3) const
{
+ TAU_PROFILE("void PatchFunction<Function, PatchParticle3<Write1, Write2, Write3>>::block(const Array1 &, const Array2 &, const Array3 &) const", CT(*this), TAU_USER);
+
ParticleEvaluator().evaluate3Block(
a1, a2, a3, function(), PatchParticle3<Write1, Write2, Write3>());
}
! inline const Function &function() const {
! TAU_PROFILE("const Function &PatchFunction<Function, PatchParticle3<Write1, Write2, Write3>>::function() const", CT(*this), TAU_USER);
! return function_m; }
private:
Index: PatchKernel.h
===================================================================
RCS file: /home/pooma/Repository/r2/src/Evaluator/PatchKernel.h,v
retrieving revision 1.18
diff -c -p -r1.18 PatchKernel.h
*** PatchKernel.h 2000/06/08 22:16:13 1.18
--- PatchKernel.h 2001/10/09 23:00:35
***************
*** 1,3 ****
--- 1,4 ----
+ #include <Profile/Profiler.h>
// -*- C++ -*-
// ACL:license
// ----------------------------------------------------------------------
*************** public:
*** 71,76 ****
--- 72,79 ----
: Pooma::Iterate_t(Pooma::scheduler()),
a1_m(a1), function_m(function), write_m(write)
{
+ TAU_PROFILE("PatchKernel<A1, Function> &PatchKernel<A1, Function>::PatchKernel(const A1 &, const Function &, bool)", CT(*this), TAU_USER);
+
DataObjectRequest<BlockAffinity> getAffinity;
hintAffinity(engineFunctor(a1_m.engine(),getAffinity));
*************** public:
*** 85,90 ****
--- 88,95 ----
virtual ~PatchKernel()
{
+ TAU_PROFILE("void PatchKernel<A1, Function>::~PatchKernel()", CT(*this), TAU_USER);
+
DataObjectRequest<WriteRelease> writeReq;
engineFunctor(a1_m.engine(),writeReq);
*************** public:
*** 92,97 ****
--- 97,104 ----
virtual void run()
{
+ TAU_PROFILE("void PatchKernel<A1, Function>::run()", CT(*this), TAU_USER);
+
function_m.apply(a1_m);
}
*************** public:
*** 112,117 ****
--- 119,126 ----
: Pooma::Iterate_t(Pooma::scheduler()),
a1_m(a1), a2_m(a2), function_m(function)
{
+ TAU_PROFILE("PatchKernel2<A1, A2, Function> &PatchKernel2<A1, A2, Function>::PatchKernel2(const A1 &, const A2 &, const Function &)", CT(*this), TAU_USER);
+
DataObjectRequest<BlockAffinity> getAffinity;
hintAffinity(engineFunctor(a1_m.engine(),getAffinity));
*************** public:
*** 136,142 ****
--- 145,153 ----
virtual ~PatchKernel2()
{
+ TAU_PROFILE("PatchKernel2<A1, A2, Function>::~PatchKernel2", CT(*this), TAU_USER);
+
// The write request remembers the data block it sees on the left
// so that it can check and see if it finds it on the right.
*************** public:
*** 153,158 ****
--- 164,171 ----
virtual void run()
{
+ TAU_PROFILE("PatchKernel2<A1, A2, Function>::run", CT(*this), TAU_USER);
+
function_m.apply(a1_m, a2_m);
}
*************** public:
*** 172,177 ****
--- 185,192 ----
: Pooma::Iterate_t(Pooma::scheduler()),
a1_m(a1), a2_m(a2), a3_m(a3), function_m(function)
{
+ TAU_PROFILE("PatchKernel3<A1, A2, A3, Function> &PatchKernel3<A1, A2, A3, Function>::PatchKernel3(const A1 &, const A2 &, const A3 &, const Function &)", CT(*this), TAU_USER);
+
DataObjectRequest<BlockAffinity> getAffinity;
hintAffinity(engineFunctor(a1_m.engine(),getAffinity));
*************** public:
*** 197,202 ****
--- 212,219 ----
virtual ~PatchKernel3()
{
+ TAU_PROFILE("void PatchKernel3<A1, A2, A3, Function>::~PatchKernel3()", CT(*this), TAU_USER);
+
// The write request remembers the data block it sees on the left
// so that it can check and see if it finds it on the right.
*************** public:
*** 214,219 ****
--- 231,238 ----
virtual void run()
{
+ TAU_PROFILE("PatchKernel3<A1, A2, A3, Function>::run", CT(*this), TAU_USER);
+
function_m.apply(a1_m, a2_m, a3_m);
}
*************** template<class Array, class Function>
*** 232,237 ****
--- 251,258 ----
class ParticleKernel
: public Pooma::Iterate_t
{
+ TAU_PROFILE("ParticleKernel<Array, Function>::ParticleKernel", CT(*this), TAU_USER);
+
public:
ParticleKernel(const Array& array, const Function& function, int patchID,
bool write1)
*************** public:
*** 239,244 ****
--- 260,267 ----
array_m(array), function_m(function), patchID_m(patchID),
write1_m(write1)
{
+ TAU_PROFILE("ParticleKernel<Array, Function>::ParticleKernel", CT(*this), TAU_USER);
+
hintAffinity(engineFunctor(array_m.engine(),
DataObjectRequest<BlockAffinity>()));
*************** public:
*** 259,264 ****
--- 282,289 ----
virtual ~ParticleKernel()
{
+ TAU_PROFILE("ParticleKernel<Array, Function>::~ParticleKernel", CT(*this), TAU_USER);
+
DataObjectRequest<WriteRelease> writeReq;
DataObjectRequest<ReadRelease> readReq(writeReq);
*************** public:
*** 274,279 ****
--- 299,306 ----
virtual void run()
{
+ TAU_PROFILE("ParticleKernel<Array, Function>::run", CT(*this), TAU_USER);
+
function_m.apply(array_m,patchID_m);
}
*************** public:
*** 296,301 ****
--- 323,330 ----
array_m(array), function_m(function), patchID_m(patchID),
write1_m(write1), csem_m(csem)
{
+ TAU_PROFILE("ParticleKernelBlock<Array, Function>::ParticleKernelBlock", CT(*this), TAU_USER);
+
hintAffinity(engineFunctor(array_m.engine(),
DataObjectRequest<BlockAffinity>()));
*************** public:
*** 316,321 ****
--- 345,352 ----
virtual ~ParticleKernelBlock()
{
+ TAU_PROFILE("ParticleKernelBlock<Array, Function>::~ParticleKernelBlock", CT(*this), TAU_USER);
+
DataObjectRequest<WriteRelease> writeReq;
DataObjectRequest<ReadRelease> readReq(writeReq);
*************** public:
*** 331,336 ****
--- 362,369 ----
virtual void run()
{
+ TAU_PROFILE("ParticleKernelBlock<Array, Function>::run", CT(*this), TAU_USER);
+
function_m.apply(array_m,patchID_m);
csem_m->incr();
}
*************** public:
*** 359,364 ****
--- 392,399 ----
array1_m(array1), array2_m(array2), function_m(function),
id_m(id), write1_m(write1), write2_m(write2)
{
+ TAU_PROFILE("ParticleKernel2<Array1, Array2, Function> &ParticleKernel2<Array1, Array2, Function>::ParticleKernel2(const Array1 &, const Array2 &, const Function &, int, bool, bool)", CT(*this), TAU_USER);
+
hintAffinity(engineFunctor(array1_m.engine(),
DataObjectRequest<BlockAffinity>()));
*************** public:
*** 384,389 ****
--- 419,426 ----
virtual ~ParticleKernel2()
{
+ TAU_PROFILE("void ParticleKernel2<Array1, Array2, Function>::~ParticleKernel2()", CT(*this), TAU_USER);
+
DataObjectRequest<WriteRelease> writeReq;
if (write1_m)
*************** public:
*** 403,408 ****
--- 440,447 ----
virtual void run()
{
+ TAU_PROFILE("void ParticleKernel2<Array1, Array2, Function>::run()", CT(*this), TAU_USER);
+
function_m.apply(array1_m, array2_m, id_m);
}
*************** template<class Array1, class Array2, cla
*** 420,425 ****
--- 459,466 ----
class ParticleKernel2Block
: public Pooma::Iterate_t
{
+ TAU_PROFILE("ParticleKernel2Block<Array1, Array2, Function>::ParticleKernel2Block", CT(*this), TAU_USER);
+
public:
ParticleKernel2Block(const Array1 &array1,
const Array2 &array2,
*************** public:
*** 430,435 ****
--- 471,478 ----
array1_m(array1), array2_m(array2), function_m(function),
id_m(id), write1_m(write1), write2_m(write2), csem_m(csem)
{
+ TAU_PROFILE("ParticleKernel2Block<Array1, Array2, Function> &ParticleKernel2Block<Array1, Array2, Function>::ParticleKernel2Block(const Array1 &, const Array2 &, const Function &, int, bool, bool, Pooma::CountingSemaphore *)", CT(*this), TAU_USER);
+
hintAffinity(engineFunctor(array1_m.engine(),DataObjectRequest<BlockAffinity>()));
// Request locks
*************** public:
*** 453,458 ****
--- 496,503 ----
virtual ~ParticleKernel2Block()
{
+ TAU_PROFILE("void ParticleKernel2Block<Array1, Array2, Function>::~ParticleKernel2Block()", CT(*this), TAU_USER);
+
DataObjectRequest<WriteRelease> writeReq;
if (write1_m)
*************** public:
*** 472,477 ****
--- 517,524 ----
virtual void run()
{
+ TAU_PROFILE("void ParticleKernel2Block<Array1, Array2, Function>::run()", CT(*this), TAU_USER);
+
function_m.apply(array1_m, array2_m, id_m);
csem_m->incr();
}
*************** template<class Array1, class Array2, cla
*** 493,498 ****
--- 540,547 ----
class ParticleKernel3
: public Pooma::Iterate_t
{
+ TAU_PROFILE("ParticleKernel3<Array1, Array2, Array3, Function>::ParticleKernel3", CT(*this), TAU_USER);
+
public:
ParticleKernel3(const Array1 &array1,
const Array2 &array2,
*************** public:
*** 504,509 ****
--- 553,560 ----
function_m(function), id_m(id),
write1_m(write1), write2_m(write2), write3_m(write3)
{
+ TAU_PROFILE("ParticleKernel3<Array1, Array2, Array3, Function> &ParticleKernel3<Array1, Array2, Array3, Function>::ParticleKernel3(const Array1 &, const Array2 &, const Array3 &, const Function &, int, bool, bool, bool)", CT(*this), TAU_USER);
+
hintAffinity(engineFunctor(array1_m.engine(),
DataObjectRequest<BlockAffinity>()));
*************** public:
*** 534,539 ****
--- 585,592 ----
virtual ~ParticleKernel3()
{
+ TAU_PROFILE("void ParticleKernel3<Array1, Array2, Array3, Function>::~ParticleKernel3()", CT(*this), TAU_USER);
+
// Request locks
DataObjectRequest<WriteRelease> writeReq;
*************** public:
*** 561,566 ****
--- 614,621 ----
virtual void run()
{
+ TAU_PROFILE("void ParticleKernel3<Array1, Array2, Array3, Function>::run()", CT(*this), TAU_USER);
+
function_m.apply(array1_m, array2_m, array3_m, id_m);
}
*************** template<class Array1, class Array2, cla
*** 580,585 ****
--- 635,642 ----
class ParticleKernel3Block
: public Pooma::Iterate_t
{
+ TAU_PROFILE("ParticleKernel3Block<Array1, Array2, Array3, Function>::ParticleKernel3Block", CT(*this), TAU_USER);
+
public:
ParticleKernel3Block(const Array1 &array1,
const Array2 &array2,
*************** public:
*** 592,597 ****
--- 649,656 ----
function_m(function), id_m(id),
write1_m(write1), write2_m(write2), write3_m(write3), csem_m(csem)
{
+ TAU_PROFILE("ParticleKernel3Block<Array1, Array2, Array3, Function>::ParticleKernel3Block", CT(*this), TAU_USER);
+
hintAffinity(engineFunctor(array1_m.engine(),
DataObjectRequest<BlockAffinity>()));
*************** public:
*** 622,627 ****
--- 681,688 ----
virtual ~ParticleKernel3Block()
{
+ TAU_PROFILE("void ParticleKernel3Block<Array1, Array2, Array3, Function>::~ParticleKernel3Block()", CT(*this), TAU_USER);
+
// Request locks
DataObjectRequest<WriteRelease> writeReq;
*************** public:
*** 649,654 ****
--- 710,717 ----
virtual void run()
{
+ TAU_PROFILE("ParticleKernel3Block<Array1, Array2, Array3, Function>::run", CT(*this), TAU_USER);
+
function_m.apply(array1_m, array2_m, array3_m, id_m);
csem_m->incr();
}
Index: Reduction.h
===================================================================
RCS file: /home/pooma/Repository/r2/src/Evaluator/Reduction.h,v
retrieving revision 1.10
diff -c -p -r1.10 Reduction.h
*** Reduction.h 2001/03/29 00:41:21 1.10
--- Reduction.h 2001/10/09 23:00:35
***************
*** 1,3 ****
--- 1,4 ----
+ #include <Profile/Profiler.h>
// -*- C++ -*-
// ACL:license
// ----------------------------------------------------------------------
***************
*** 49,54 ****
--- 50,56 ----
//-----------------------------------------------------------------------------
#include "Domain/NullDomain.h"
+ #include "Engine/Engine.h"
#include "Engine/Intersector.h"
#include "Engine/IntersectEngine.h"
#include "Evaluator/ReductionKernel.h"
*************** struct Reduction<MainEvaluatorTag>
*** 91,102 ****
//---------------------------------------------------------------------------
// Default ctor.
! Reduction() { }
//---------------------------------------------------------------------------
// Destructor
! ~Reduction() { }
//---------------------------------------------------------------------------
// Input an expression and cause it to be reduced.
--- 93,108 ----
//---------------------------------------------------------------------------
// Default ctor.
! Reduction() {
! TAU_PROFILE("Reduction<MainEvaluatorTag> &Reduction<MainEvaluatorTag>::Reduction()", CT(*this), TAU_USER);
! }
//---------------------------------------------------------------------------
// Destructor
! ~Reduction() {
! TAU_PROFILE("void Reduction<MainEvaluatorTag>::~Reduction()", CT(*this), TAU_USER);
! }
//---------------------------------------------------------------------------
// Input an expression and cause it to be reduced.
*************** struct Reduction<MainEvaluatorTag>
*** 105,110 ****
--- 111,118 ----
template<class T, class Op, class Expr>
void evaluate(T &ret, const Op &op, const Expr &e) const
{
+ TAU_PROFILE("void Reduction<MainEvaluatorTag>::evaluate(T &, const Op &, const Expr &) const", CT(*this), TAU_USER);
+
typedef typename EvaluatorTag1<Expr>::Evaluator_t Evaluator_t;
Reduction<Evaluator_t>().evaluate(ret, op, e());
*************** struct Reduction<SinglePatchEvaluatorTag
*** 126,137 ****
//---------------------------------------------------------------------------
// Default ctor.
! Reduction() { }
//---------------------------------------------------------------------------
// Destructor
! ~Reduction() { }
//---------------------------------------------------------------------------
// Input an expression and cause it to be reduced.
--- 134,149 ----
//---------------------------------------------------------------------------
// Default ctor.
! Reduction() {
! TAU_PROFILE("Reduction<SinglePatchEvaluatorTag> &Reduction<SinglePatchEvaluatorTag>::Reduction()", CT(*this), TAU_USER);
! }
//---------------------------------------------------------------------------
// Destructor
! ~Reduction() {
! TAU_PROFILE("void Reduction<SinglePatchEvaluatorTag>::~Reduction()", CT(*this), TAU_USER);
! }
//---------------------------------------------------------------------------
// Input an expression and cause it to be reduced.
*************** struct Reduction<SinglePatchEvaluatorTag
*** 143,148 ****
--- 155,162 ----
void evaluate(T &ret, const Op &op, const Expr &e,
Pooma::CountingSemaphore &csem) const
{
+ TAU_PROFILE("void Reduction<SinglePatchEvaluatorTag>::evaluate(T &, const Op &, const Expr &, Pooma::CountingSemaphore &) const", CT(*this), TAU_USER);
+
typedef typename KernelTag1<Expr>::Kernel_t Kernel_t;
#if POOMA_REORDER_ITERATES
*************** struct Reduction<SinglePatchEvaluatorTag
*** 158,163 ****
--- 172,179 ----
template<class T, class Op, class Expr>
void evaluate(T &ret, const Op &op, const Expr &e) const
{
+ TAU_PROFILE("void Reduction<SinglePatchEvaluatorTag>::evaluate(T &, const Op &, const Expr &) const", CT(*this), TAU_USER);
+
Pooma::CountingSemaphore csem;
csem.height(1);
*************** struct Reduction<MultiPatchEvaluatorTag>
*** 185,196 ****
//---------------------------------------------------------------------------
// Default ctor.
! Reduction() { }
//---------------------------------------------------------------------------
// Destructor
! ~Reduction() { }
//---------------------------------------------------------------------------
// Input an expression and cause it to be reduced according to the
--- 201,216 ----
//---------------------------------------------------------------------------
// Default ctor.
! Reduction() {
! TAU_PROFILE("Reduction<MultiPatchEvaluatorTag> &Reduction<MultiPatchEvaluatorTag>::Reduction()", CT(*this), TAU_USER);
! }
//---------------------------------------------------------------------------
// Destructor
! ~Reduction() {
! TAU_PROFILE("void Reduction<MultiPatchEvaluatorTag>::~Reduction()", CT(*this), TAU_USER);
! }
//---------------------------------------------------------------------------
// Input an expression and cause it to be reduced according to the
*************** struct Reduction<MultiPatchEvaluatorTag>
*** 210,215 ****
--- 230,237 ----
template<class T, class Op, class Expr>
void evaluate(T &ret, const Op &op, const Expr &e) const
{
+ TAU_PROFILE("void Reduction<MultiPatchEvaluatorTag>::evaluate(T &, const Op &, const Expr &) const", CT(*this), TAU_USER);
+
typedef Intersector<Expr::dimensions> Inter_t;
Inter_t inter;
Index: ReductionKernel.h
===================================================================
RCS file: /home/pooma/Repository/r2/src/Evaluator/ReductionKernel.h,v
retrieving revision 1.3
diff -c -p -r1.3 ReductionKernel.h
*** ReductionKernel.h 2000/06/08 22:16:13 1.3
--- ReductionKernel.h 2001/10/09 23:00:35
***************
*** 1,3 ****
--- 1,4 ----
+ #include <Profile/Profiler.h>
// -*- C++ -*-
// ACL:license
// ----------------------------------------------------------------------
***************
*** 78,83 ****
--- 79,86 ----
template<class T, class Op, class Expr, class KernelTag>
class ReductionKernel : public Pooma::Iterate_t
{
+ TAU_PROFILE("ReductionKernel<T, Op, Expr, KernelTag>::ReductionKernel", CT(*this), TAU_USER);
+
public:
typedef ReductionKernel<T, Op, Expr, KernelTag> This_t;
*************** ReductionKernel(T &ret, const Op &op, co
*** 131,136 ****
--- 134,141 ----
: Pooma::Iterate_t(Pooma::scheduler()),
ret_m(ret), op_m(op), expr_m(e), csem_m(csem)
{
+ TAU_PROFILE("ReductionKernel<T, Op, Expr, KernelTag>::ReductionKernel", CT(*this), TAU_USER);
+
// Request read lock.
DataObjectRequest<ReadRequest> readReq(*this);
*************** ReductionKernel(T &ret, const Op &op, co
*** 145,150 ****
--- 150,157 ----
template<class T, class Op, class Expr, class KernelTag>
ReductionKernel<T, Op, Expr, KernelTag>::~ReductionKernel()
{
+ TAU_PROFILE("ReductionKernel<T, Op, Expr, KernelTag>::~ReductionKernel", CT(*this), TAU_USER);
+
// Release read lock.
DataObjectRequest<ReadRelease> readRelease;
*************** ReductionKernel<T, Op, Expr, KernelTag>:
*** 161,166 ****
--- 168,175 ----
template<class T, class Op, class Expr, class KernelTag>
void ReductionKernel<T, Op, Expr, KernelTag>::run()
{
+ TAU_PROFILE("ReductionKernel<T, Op, Expr, KernelTag>::run", CT(*this), TAU_USER);
+
// Just evaluate the expression.
ReductionEvaluator<KernelTag>::evaluate(ret_m, op_m, expr_m);
More information about the pooma-dev
mailing list