On Mon, 16 Aug 2004, Jeffrey D. Oldham wrote:
Richard Guenther wrote:
===== r2/src/Pooma/Pooma.cmpl.cpp 1.3 vs edited =====
--- 1.3/r2/src/Pooma/Pooma.cmpl.cpp 2004-01-17 16:20:23 +01:00
+++ edited/r2/src/Pooma/Pooma.cmpl.cpp 2004-08-16 16:47:24 +02:00
@@ -803,10 +803,6 @@
SystemContext_t::runSomething();
}
-# elif POOMA_REORDER_ITERATES
-
- CTAssert(NO_SUPPORT_FOR_THREADS_WITH_MESSAGING);
-
# else // we're using the serial scheduler, so we only need to get messages
while (Pooma::incomingMessages())
This change worries me. Doesn't this change the code's meaning?
Hm. Looking at the context I suppose not:
#if POOMA_CHEETAH
# if POOMA_SMARTS_SCHEDULER_SERIALASYNC
typedef Smarts::SystemContext SystemContext_t;
while (Pooma::incomingMessages() || SystemContext_t::workReady())
{
controller_g->poll();
SystemContext_t::runSomething();
}
# elif POOMA_REORDER_ITERATES
CTAssert(NO_SUPPORT_FOR_THREADS_WITH_MESSAGING);
# else // we're using the serial scheduler, so we only need to get
messages
while (Pooma::incomingMessages())
{
controller_g->poll();
}
# endif // schedulers
#else // !POOMA_CHEETAH
mainScheduler_s.blockingEvaluate();
#endif // !POOMA_CHEETAH
I think the check for POOMA_REORDER_ITERATES was bogous, as for
POOMA_SMARTS_SCHEDULER_SERIALASYNC it would have been true and
in the other case (!POOMA_SMARTS_SCHEDULER_SERIALASYNC) not set
anyways. To check for threads here would need checking POOMA_THREADS
(smarts support) or POOMA_OPENMP (OpenMP support), but this checking
is already done at configure time.
Also I believe using Cheetah (MPI) with the serial scheduler does not work
at all.