From 6f384e57a2fe661f00c0bfeab68100b5016746be Mon Sep 17 00:00:00 2001 From: swhite Date: Fri, 30 Jun 2006 13:18:48 +0000 Subject: Got rid of watchminutes Cactus variable in favour of a local variable. Suspect the use of this variable caused a crash. Tidied up output a bit. git-svn-id: http://svn.aei.mpg.de/numrel/AEIThorns/ManualTermination/trunk@15 e5a5a894-0e4f-0410-be11-d22c8b0a171a --- doc/documentation.tex | 2 +- interface.ccl | 2 -- schedule.ccl | 2 -- src/ManualTermination.c | 34 ++++++++++++++++------------------ 4 files changed, 17 insertions(+), 23 deletions(-) diff --git a/doc/documentation.tex b/doc/documentation.tex index 1decb0d..e36378c 100644 --- a/doc/documentation.tex +++ b/doc/documentation.tex @@ -87,7 +87,7 @@ environment variable. If the environment variable \texttt{MANUAL\_TERMINATION\_JOB\_ID} is set, that will be used instead as the \texttt{\textit{job\_id}}. -In this configuration, any user may terminate the run by putting a '1' into +In this configuration, any user may terminate the run by putting a `1' into the specified file. The the termination file is removed when the run shuts down. diff --git a/interface.ccl b/interface.ccl index b2d0b22..1c09f0a 100644 --- a/interface.ccl +++ b/interface.ccl @@ -4,5 +4,3 @@ IMPLEMENTS: ManualTermination - -CCTK_REAL watchminutes TYPE=scalar diff --git a/schedule.ccl b/schedule.ccl index 971a67d..fc43082 100644 --- a/schedule.ccl +++ b/schedule.ccl @@ -1,8 +1,6 @@ # Schedule definitions for thorn ManualTermination # $Header$ -STORAGE: watchminutes - if (on_remaining_walltime > 0) { schedule ManualTermination_StartTimer at WRAGH diff --git a/src/ManualTermination.c b/src/ManualTermination.c index e0e32c4..e5a7062 100644 --- a/src/ManualTermination.c +++ b/src/ManualTermination.c @@ -7,6 +7,7 @@ #include "cctk_Termination.h" #include "cctk_Timers.h" +static CCTK_REAL watchminutes; int ManualTermination_StartTimer (CCTK_ARGUMENTS) { @@ -17,21 +18,20 @@ int ManualTermination_StartTimer (CCTK_ARGUMENTS) int ierr; int TimerIndex; - /* only one processor needs to query the elapsed runtime */ - if (CCTK_MyProc (cctkGH) != 0) + if (CCTK_MyProc (cctkGH) != 0) /* only root process queries elapsed runtime */ { return (0); } - /* Create timer */ + TimerIndex = CCTK_TimerCreate ("WatchWalltime"); - /* Start timer */ + ierr = CCTK_TimerStart ("WatchWalltime"); - *watchminutes = output_remtime_every_minutes*1.0e0; + watchminutes = output_remtime_every_minutes*1.0e0; CCTK_VInfo (CCTK_THORNSTRING, "Started Timer"); CCTK_VInfo (CCTK_THORNSTRING, "Reminding you every %d " - "minutes about remaining walltime.", + "minutes of remaining walltime.", output_remtime_every_minutes); return (retval); } @@ -41,7 +41,7 @@ int ManualTermination_ResetMinutes (CCTK_ARGUMENTS) DECLARE_CCTK_ARGUMENTS; DECLARE_CCTK_PARAMETERS; - *watchminutes = output_remtime_every_minutes*1.0e0; + watchminutes = output_remtime_every_minutes*1.0e0; return 0; } @@ -56,8 +56,7 @@ int ManualTermination_CheckWalltime (CCTK_ARGUMENTS) const cTimerVal *walltime; CCTK_REAL time; - /* only one processor needs to query the elapsed runtime */ - if (CCTK_MyProc (cctkGH) != 0) + if (CCTK_MyProc (cctkGH) != 0) /* only root process queries elapsed runtime */ { return (0); } @@ -66,30 +65,29 @@ int ManualTermination_CheckWalltime (CCTK_ARGUMENTS) info = CCTK_TimerCreateData (); ierr = CCTK_Timer ("WatchWalltime",info); - /* stop timer */ + ierr = CCTK_TimerStop ("WatchWalltime"); /* get walltime */ walltime = CCTK_GetClockValue ("gettimeofday",info); time = CCTK_TimerClockSeconds (walltime); CCTK_TimerDestroyData (info); - /* start timer */ + ierr = CCTK_TimerStart ("WatchWalltime"); - if ((time/60.0e0 > *watchminutes) && *watchminutes != 0) + if ((time/60.0e0 > watchminutes) && watchminutes != 0) { - *watchminutes = (*watchminutes)+output_remtime_every_minutes*1.0e0; + watchminutes = (watchminutes)+output_remtime_every_minutes*1.0e0; CCTK_INFO ("------------------------------------------------------"); - CCTK_VInfo (CCTK_THORNSTRING, "Remaining wallclock time for your job " - "is %1.2f minutes. :-)", (max_walltime*60.0-time/60.0)); + CCTK_VInfo (CCTK_THORNSTRING, "Remaining walltime is %1.2f minutes. :-)", + (max_walltime*60.0-time/60.0)); CCTK_INFO ("------------------------------------------------------"); } if (time/60.0e0 >= (max_walltime*60.0e0 - on_remaining_walltime*1.0e0)) { CCTK_INFO ("------------------------------------------------------"); - CCTK_VInfo (CCTK_THORNSTRING, "Remaining wallclock time for your job " - "is %1.2f minutes. Triggering termination ...", - (max_walltime*60.0-time/60.0)); + CCTK_VInfo (CCTK_THORNSTRING, "Remaining walltime is %1.2f minutes. \n" + "Triggering termination ...", (max_walltime*60.0-time/60.0)); CCTK_INFO ("------------------------------------------------------"); CCTK_TerminateNext (cctkGH); } -- cgit v1.2.3