Skip to content

Commit

Permalink
some refactoring of reporting stuff
Browse files Browse the repository at this point in the history
  • Loading branch information
cpt-harlock committed Jan 23, 2025
1 parent 3132172 commit 64280e7
Show file tree
Hide file tree
Showing 5 changed files with 239 additions and 219 deletions.
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -171,8 +171,8 @@ if(NOT libfort_FOUND)
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/libfort
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/libfort
-DCMAKE_INSTALL_LIBDIR=${CMAKE_CURRENT_BINARY_DIR}/libfort/lib
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_C_COMPILER=gcc
-DCMAKE_CXX_COMPILER=g++
)

# add libfort as a target
Expand Down
16 changes: 8 additions & 8 deletions src/cntd.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,15 +79,15 @@
#define STRING_SIZE 1024

// Filenames
#define SUMMARY_REPORT_FILE "cntd_summary.csv"
#define RANK_REPORT_FILE "cntd_rank.csv"
#define MPI_REPORT_FILE "cntd_mpi.csv"
#define RANK_MPI_REPORT_FILE "cntd_rank_mpi.csv"
#define EAM_REPORT_FILE "cntd_eam.csv"
#define EAM_SLACK_REPORT_FILE "cntd_eam_slack.csv"
#define TMP_TIME_SERIES_FILE "%s/cntd_%s.%s.csv"
#define TIME_SERIES_FILE "%s/cntd_%s.csv"
#define SUMMARY_REPORT_FILE "cntd_summary_%s.csv"
#define RANK_REPORT_FILE "cntd_rank_%s.csv"
#define MPI_REPORT_FILE "cntd_mpi_%s.csv"
#define RANK_MPI_REPORT_FILE "cntd_rank_mpi_%s.csv"
#define EAM_REPORT_FILE "cntd_eam_%s.csv"
#define EAM_SLACK_REPORT_FILE "cntd_eam_slack_%s.csv"
#define TIME_SERIES_FILE "%s/cntd_%s_%s.csv"
#define SHM_FILE "/cntd_local_rank_%d.%s"
#define CNTD_TMP_DIR "/tmp"

// Hide symbols for external linking
#define HIDDEN __attribute__((visibility("hidden")))
Expand Down
73 changes: 41 additions & 32 deletions src/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ static void read_env()
}
}
} else
strncpy(cntd->tmp_dir, cntd->log_dir, STRING_SIZE);
strncpy(cntd->tmp_dir, CNTD_TMP_DIR, STRING_SIZE);

// CPUFREQ
char *use_cpufreq = getenv("CNTD_USE_CPUFREQ");
Expand Down Expand Up @@ -250,23 +250,28 @@ static void init_masters()
&cntd->comm_local);
PMPI_Comm_rank(cntd->comm_local, &local_rank);

// Init shared memory
get_rand_postfix(postfix, STRING_SIZE);
snprintf(shmem_name, sizeof(shmem_name), SHM_FILE, local_rank, postfix);
cntd->local_ranks[local_rank] = create_shmem_rank(shmem_name, 1);
cntd->rank = cntd->local_ranks[local_rank];

PMPI_Comm_size(cntd->comm_local, &cntd->rank->local_size);
cntd->rank->world_size = world_size;

PMPI_Barrier(MPI_COMM_WORLD);

cntd->rank->world_rank = world_rank;
cntd->rank->local_rank = local_rank;
}

static void init_shmem() {
char postfix[STRING_SIZE], shmem_name[STRING_SIZE];

// Init shared memory
get_rand_postfix(postfix, STRING_SIZE);
snprintf(shmem_name, sizeof(shmem_name), SHM_FILE, cntd->rank->local_rank, postfix);
cntd->local_ranks[cntd->rank->local_rank] = create_shmem_rank(shmem_name, 1);
cntd->rank = cntd->local_ranks[cntd->rank->local_rank];


// Get shared memory for other local tasks
for (i = 0; i < cntd->rank->local_size; i++) {
if (i == local_rank)
for (int i = 0; i < cntd->rank->local_size; i++) {
if (i == cntd->rank->local_rank)
continue;
else {
snprintf(shmem_name, sizeof(shmem_name), SHM_FILE, i,
Expand All @@ -275,8 +280,7 @@ static void init_masters()
}
}
}

static void finalize_masters()
static void finalize_shmem()
{
char postfix[STRING_SIZE], shmem_name[STRING_SIZE];

Expand All @@ -293,6 +297,9 @@ HIDDEN void start_cntd()
// Init local masters
init_masters();

// Init shared memory
init_shmem();

// Read environment variables
read_env();

Expand Down Expand Up @@ -344,36 +351,38 @@ HIDDEN void stop_cntd()
}
#endif

if (!cntd->enable_eam_analysis) {
if (cntd->use_cpufreq) {
if (!cntd->userspace_governor) {
char filename[STRING_SIZE];

snprintf(filename, STRING_SIZE,
SCALING_MAX_FREQ, cntd->rank->cpu_id);
write_int_to_file(filename,
cntd->scaling_max_freq_fd,
cntd->sys_freq_khz[MAX]);

snprintf(filename, STRING_SIZE,
SCALING_MIN_FREQ, cntd->rank->cpu_id);
write_int_to_file(filename,
cntd->scaling_min_freq_fd,
cntd->sys_freq_khz[MIN]);
if (cntd->enable_eam || cntd->enable_eam_slack) {
if (!cntd->enable_eam_analysis) {
if (cntd->use_cpufreq) {
if (!cntd->userspace_governor) {
char filename[STRING_SIZE];

snprintf(filename, STRING_SIZE,
SCALING_MAX_FREQ, cntd->rank->cpu_id);
write_int_to_file(filename,
cntd->scaling_max_freq_fd,
cntd->sys_freq_khz[MAX]);

snprintf(filename, STRING_SIZE,
SCALING_MIN_FREQ, cntd->rank->cpu_id);
write_int_to_file(filename,
cntd->scaling_min_freq_fd,
cntd->sys_freq_khz[MIN]);
}
}
// Finalize PM
pm_finalize();
}
// Finalize PM
pm_finalize();
}

finalize_cpufreq();

print_final_report();

if (cntd->enable_timeseries_report)
finalize_timeseries_report();

finalize_masters();

finalize_cpufreq();
finalize_shmem();

free(cntd);
}
Expand Down
10 changes: 3 additions & 7 deletions src/pm.c
Original file line number Diff line number Diff line change
Expand Up @@ -305,11 +305,7 @@ HIDDEN void pm_init()

HIDDEN void pm_finalize()
{
if (cntd->enable_eam || cntd->enable_eam_slack) {
if (!cntd->enable_eam_analysis) {
set_sys_max_freq();
if (!cntd->use_cpufreq)
close(cntd->msr_fd);
}
}
set_sys_max_freq();
if (!cntd->use_cpufreq)
close(cntd->msr_fd);
}
Loading

0 comments on commit 64280e7

Please sign in to comment.