Selaa lähdekoodia

working on perfmodels

Luka Stanisic 9 vuotta sitten
vanhempi
commit
380be61e7b
3 muutettua tiedostoa jossa 15 lisäystä ja 3 poistoa
  1. 2 1
      include/starpu_perfmodel.h
  2. 11 0
      src/core/perfmodel/perfmodel.c
  3. 2 2
      src/core/simgrid.c

+ 2 - 1
include/starpu_perfmodel.h

@@ -116,7 +116,8 @@ enum starpu_perfmodel_type
 	STARPU_COMMON,
 	STARPU_HISTORY_BASED,
 	STARPU_REGRESSION_BASED,
-	STARPU_NL_REGRESSION_BASED
+	STARPU_NL_REGRESSION_BASED,
+	STARPU_MYMODEL
 };
 
 struct _starpu_perfmodel_state;

+ 11 - 0
src/core/perfmodel/perfmodel.c

@@ -134,6 +134,13 @@ static double common_task_expected_perf(struct starpu_perfmodel *model, struct s
 	return (exp/alpha);
 }
 
+static double starpu_mymodel_expected_perf(struct starpu_perfmodel *model, struct starpu_perfmodel_arch* arch, struct starpu_task *task, unsigned nimpl)
+{
+	printf("\nInside mymodel_expected_perf, before the ASSERT");
+	//STARPU_ASSERT_MSG(model->cost_function, "STARPU_MYMODEL requires mymodel cost_function to be defined");
+	return model->cost_function(task, nimpl);
+}
+
 void _starpu_init_and_load_perfmodel(struct starpu_perfmodel *model)
 {
 	if (!model || model->is_loaded)
@@ -148,6 +155,7 @@ void _starpu_init_and_load_perfmodel(struct starpu_perfmodel *model)
 	{
 		case STARPU_PER_ARCH:
 		case STARPU_COMMON:
+		case STARPU_MYMODEL:
 			/* Nothing more to do than init */
 			break;
 		case STARPU_HISTORY_BASED:
@@ -185,6 +193,9 @@ static double starpu_model_expected_perf(struct starpu_task *task, struct starpu
 				return _starpu_regression_based_job_expected_perf(model, arch, j, nimpl);
 			case STARPU_NL_REGRESSION_BASED:
 				return _starpu_non_linear_regression_based_job_expected_perf(model, arch, j,nimpl);
+			case STARPU_MYMODEL:
+				printf("\nCall mymodel_expected function!");
+				return starpu_mymodel_expected_perf(model, arch, task, nimpl);
 			default:
 				STARPU_ABORT();
 		}

+ 2 - 2
src/core/simgrid.c

@@ -338,10 +338,10 @@ void _starpu_simgrid_submit_job(int workerid, struct _starpu_job *j, struct star
 	{
 	   length = 1.474784*1000; //Time is in milliseconds
 	}
-	if (strcmp(_starpu_job_get_model_name(j),"m2m_cl") == 0)
+	/*if (strcmp(_starpu_job_get_model_name(j),"m2m_cl") == 0)
 	{
 	   length = 0.664437*1000; //Time is in milliseconds
-	}
+	}*/
 	if (strcmp(_starpu_job_get_model_name(j),"m2l_cl_in") == 0)
 	{
 	   length = 5.006487*1000; //Time is in milliseconds