I have a programme that needs to run for some time (2 days more or less). I only have access to a laptop, which I must turn off at the end of the day.

I thought of making my programme to export the computed data at the end of the day to a .txt file, and then on the next day to import it from the same file, and begin the computations from the last of the previous day.

For that, I thought of creating a main while cycle where we would define the variable 'stop', with a DialogInput box, so that the user could stop the programme at their desired time, without ruining the possible current computations.

For example:


While[stop==0 && numbComp<=UpBound,

    stop = DialogInput[
    DialogNotebook[{TextCell["Click to stop computations"], 
    Button["Stop", DialogReturn[1]]}]];

(*Heavy Computations Here*)



However, this method seems not to work since Mathematica will not proceed until the user has clicked a button in the dialogue box...


Well, after searching the wolfram documentation I wrote this:

stop = 0;
counter = 0;
  Column[{TextCell["Click to stop computations"], 
    Button["Stop", DialogReturn[stop = 1; Beep[] ]]}]];
While[stop == 0 && counter <= 5000000,

  data = RandomVariate[NormalDistribution[0, 10], counter];(*This is just an example*)



This seems to work fine. If someone has a better idea, please share.

  • 1
    $\begingroup$ If you use Windows, you might hibernate it and resume the next day. This used to work many years ago. I no longer use windows so I do not know if it still does, and if problems would be expected. For safety, you can also interrupt the computation first: mathematica.stackexchange.com/q/58446/12 $\endgroup$
    – Szabolcs
    Commented Jan 7, 2019 at 15:48
  • $\begingroup$ @Szabolcs I've added some new information. I would like to know if you agree with it. Thanks for your comment. ;) $\endgroup$ Commented Jan 7, 2019 at 17:29


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.