Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2007
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Manipulate and conflict in options to update front end for long evaluation, SynchronousUpdating

  • To: mathgroup at smc.vnet.net
  • Subject: [mg80070] Manipulate and conflict in options to update front end for long evaluation, SynchronousUpdating
  • From: "Nasser Abbasi" <nma at 12000.org>
  • Date: Sun, 12 Aug 2007 07:08:11 -0400 (EDT)
  • Reply-to: "Nasser Abbasi" <nma at 12000.org>

I seem to have a dilemma here in using Manipulate. There seem to be a design 
conflict in how Manipulate works.

Manipulate, it seems, has a 6 seconds (or some limit) before the front end 
times out if an evaluation takes too long.

When I use SynchronousUpdating->False option to Manipulate, then the front 
end will NOT time out no matter how long the evaluation takes, good, 
however, now when I click the 'play' button on the front end for example, or 
if I select a new parameter from the front end, then the front end will just 
advance the counters quickly without waiting for the last evaluation to 
complete, and so one does not see the result on the front end corresponding 
to the current values/parameters displayed. It is like the front end is 
running on its own pace while an evaluation 10 steps earlier still has not 
finished. I guess this is what I asked for when I did 
SynchronousUpdating->False.

So when I use the SynchronousUpdating->True option, then the front end will 
block until the last evaluation completes, good, but a long evaluation will 
cause the front end to $Abort if it does not complete after the timeout set 
for the front end which I understand is 6 seconds.

If I use wrap the evaluation byTimingConstrained and give it long time, it 
has no effect on the time out for the front end for Manipulate.

So I am stuck.

How can I make Manipulate front end block until the current evaluation 
complete fully and display its output before it jumps to the next value (say 
when I hit the 'play' button), no matter how long the evaluation?

I tried to speed up the evaluation, but I am using symbolic integration many 
times in each step,  and I can't seem to speed that any more. I wrote a 
smalll finite elements program and for each element, there are 2 symbolic 
integrations, As the number of elements go over 20 or 30, then it starts to 
take about 5-10 seconds to complete the whole thing, causing an $Abort. I 
did Timing and this is where all the time is being spend, in the Integrate[] 
function.

I do not know how to remove the timeout build in Manipulate front end.

Any ideas?

thanks,
Nasser



  • Prev by Date: Re: Mathematica v5 versus v6
  • Next by Date: Re: 64 bit Kernel does not run on iMac Intel
  • Previous by thread: Re: Reading Coordinates from Plot
  • Next by thread: Re: Manipulate and conflict in options to update front