浏览代码

Use MPI rank instead of PID for profiling file name

Samuel Thibault 14 年之前
父节点
当前提交
47d387092e
共有 3 个文件被更改,包括 13 次插入5 次删除
  1. 3 0
      include/starpu_profiling.h
  2. 2 1
      mpi/starpu_mpi.c
  3. 8 4
      src/common/fxt.c

+ 3 - 0
include/starpu_profiling.h

@@ -84,6 +84,9 @@ struct starpu_bus_profiling_info {
 	int transfer_count;
 };
 
+/* This function sets the ID used for profiling trace filename */
+void starpu_set_profiling_id(int new_id);
+
 /* This function sets the profiling status:
  * - enable with STARPU_PROFILING_ENABLE
  * - disable with STARPU_PROFILING_DISABLE 

+ 2 - 1
mpi/starpu_mpi.c

@@ -1,6 +1,6 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
- * Copyright (C) 2009, 2010  Université de Bordeaux 1
+ * Copyright (C) 2009, 2010-2011  Université de Bordeaux 1
  * Copyright (C) 2010, 2011  Centre National de la Recherche Scientifique
  *
  * StarPU is free software; you can redistribute it and/or modify
@@ -754,6 +754,7 @@ int starpu_mpi_initialize_extended(int initialize_mpi, int *rank, int *world_siz
         if (initialize_mpi) {
                 _STARPU_DEBUG("Calling MPI_Comm_rank\n");
                 MPI_Comm_rank(MPI_COMM_WORLD, rank);
+		starpu_set_profiling_id(rank);
                 MPI_Comm_size(MPI_COMM_WORLD, world_size);
         }
 

+ 8 - 4
src/common/fxt.c

@@ -1,6 +1,6 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
- * Copyright (C) 2009, 2010  Université de Bordeaux 1
+ * Copyright (C) 2009, 2010-2011  Université de Bordeaux 1
  * Copyright (C) 2010  Centre National de la Recherche Scientifique
  *
  * StarPU is free software; you can redistribute it and/or modify
@@ -33,6 +33,8 @@ static int fxt_started = 0;
 
 static int written = 0;
 
+static int id;
+
 static void profile_set_tracefile(char *fmt, ...)
 {
 	va_list vl;
@@ -46,14 +48,16 @@ static void profile_set_tracefile(char *fmt, ...)
 	if (!user)
 		user = "";
 
-	int pid = getpid();
-
 	char suffix[128];
-	snprintf(suffix, 128, "prof_file_%s_%d", user, pid);
+	snprintf(suffix, 128, "prof_file_%s_%d", user, id);
 
 	strcat(PROF_FILE_USER, suffix);
 }
 
+void starpu_set_profiling_id(int new_id) {
+	id = new_id;
+}
+
 void _starpu_start_fxt_profiling(void)
 {
 	unsigned threadid;