Browse Source

Also print the number of errors. We also actually already do some aging

Samuel Thibault 11 years ago
parent
commit
0cd8850c0f
1 changed files with 2 additions and 5 deletions
  1. 2 5
      src/core/perfmodel/perfmodel_history.c

+ 2 - 5
src/core/perfmodel/perfmodel_history.c

@@ -1328,17 +1328,14 @@ void _starpu_update_perfmodel_history(struct _starpu_job *j, struct starpu_perfm
 					(100 * local_deviation > (100 + historymaxerror)
 					(100 * local_deviation > (100 + historymaxerror)
 					 || (100 / local_deviation > (100 + historymaxerror))))
 					 || (100 / local_deviation > (100 + historymaxerror))))
 				{
 				{
-					/* TODO: add aging, otherwise with
-					 * millions of tasks we're sure to
-					 * flush at least once... */
 					entry->nerror++;
 					entry->nerror++;
 
 
-					/* Too many errors: we flush out all the entries */
+					/* More errors than measurements, we're most probably completely wrong, we flush out all the entries */
 					if (entry->nerror >= entry->nsample)
 					if (entry->nerror >= entry->nsample)
 					{
 					{
 						char archname[32];
 						char archname[32];
 						starpu_perfmodel_get_arch_name(arch, archname, sizeof(archname), nimpl);
 						starpu_perfmodel_get_arch_name(arch, archname, sizeof(archname), nimpl);
-						_STARPU_DISP("Too big deviation for model %s on %s: %f, vs average %f over %u samples (%+f%%), flushing the performance model. Use the STARPU_HISTORY_MAX_ERROR environement variable to control the threshold (currently %d%%)\n", model->symbol, archname, measured, entry->mean, entry->nsample, measured * 100. / entry->mean - 100, historymaxerror);
+						_STARPU_DISP("Too big deviation for model %s on %s: %f vs average %f, %u such errors against %u samples (%+f%%), flushing the performance model. Use the STARPU_HISTORY_MAX_ERROR environement variable to control the threshold (currently %d%%)\n", model->symbol, archname, measured, entry->mean, entry->nerror, entry->nsample, measured * 100. / entry->mean - 100, historymaxerror);
 						entry->sum = 0.0;
 						entry->sum = 0.0;
 						entry->sum2 = 0.0;
 						entry->sum2 = 0.0;
 						entry->nsample = 0;
 						entry->nsample = 0;