Dynamic Load Balance 3.6.1+32-59d1
talp_output.h
Go to the documentation of this file.
1/*********************************************************************************/
2/* Copyright 2009-2024 Barcelona Supercomputing Center */
3/* */
4/* This file is part of the DLB library. */
5/* */
6/* DLB is free software: you can redistribute it and/or modify */
7/* it under the terms of the GNU Lesser General Public License as published by */
8/* the Free Software Foundation, either version 3 of the License, or */
9/* (at your option) any later version. */
10/* */
11/* DLB is distributed in the hope that it will be useful, */
12/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
13/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
14/* GNU Lesser General Public License for more details. */
15/* */
16/* You should have received a copy of the GNU Lesser General Public License */
17/* along with DLB. If not, see <https://www.gnu.org/licenses/>. */
18/*********************************************************************************/
19
20#ifndef TALP_OUTPUT_H
21#define TALP_OUTPUT_H
22
23#include "apis/dlb_talp.h"
24
25#include <limits.h>
26#include <stdbool.h>
27#include <stdint.h>
28
29typedef struct talp_flags_t talp_flags_t;
30
31typedef enum gpu_vendor {
36
38 pid_t pid;
39 int64_t mpi_time;
40 int64_t useful_time;
42
43typedef struct node_record_t {
45 int nelems;
47 int64_t avg_mpi_time;
49 int64_t max_mpi_time;
52
54typedef struct process_record_t {
55 int rank;
56 pid_t pid;
58 char hostname[HOST_NAME_MAX];
63
64
66
68 const char *cpuset_str, talp_flags_t talp_flags);
69
71
72void talp_output_record_node(const node_record_t *node_record);
73
74void talp_output_record_process(const char *monitor_name,
75 const process_record_t *process_record, int num_mpi_ranks);
76
77void talp_output_record_resources(int num_cpus, int num_nodes, int num_mpi_ranks, int num_gpus);
78
80
81void talp_output_finalize(const char *output_file, bool partial_output);
82
83#endif /* TALP_OUTPUT_H */
Definition: dlb_talp.h:35
Definition: dlb_talp.h:91
Definition: talp_output.h:43
int64_t max_useful_time
Definition: talp_output.h:48
int64_t max_mpi_time
Definition: talp_output.h:49
int node_id
Definition: talp_output.h:44
int64_t avg_useful_time
Definition: talp_output.h:46
int nelems
Definition: talp_output.h:45
int64_t avg_mpi_time
Definition: talp_output.h:47
process_in_node_record_t processes[]
Definition: talp_output.h:50
Definition: talp_output.h:37
int64_t useful_time
Definition: talp_output.h:40
int64_t mpi_time
Definition: talp_output.h:39
pid_t pid
Definition: talp_output.h:38
Definition: talp_output.h:54
int node_id
Definition: talp_output.h:57
dlb_monitor_t monitor
Definition: talp_output.h:61
int rank
Definition: talp_output.h:55
char cpuset_quoted[TALP_OUTPUT_CPUSET_MAX]
Definition: talp_output.h:60
char hostname[HOST_NAME_MAX]
Definition: talp_output.h:58
char cpuset[TALP_OUTPUT_CPUSET_MAX]
Definition: talp_output.h:59
pid_t pid
Definition: talp_output.h:56
Definition: talp_types.h:109
void talp_output_print_monitoring_region(const dlb_monitor_t *monitor, const char *cpuset_str, talp_flags_t talp_flags)
Definition: talp_output.c:100
void talp_output_record_resources(int num_cpus, int num_nodes, int num_mpi_ranks, int num_gpus)
Definition: talp_output.c:1448
void talp_output_record_node(const node_record_t *node_record)
Definition: talp_output.c:696
void talp_output_record_process(const char *monitor_name, const process_record_t *process_record, int num_mpi_ranks)
Definition: talp_output.c:966
void talp_output_record_pop_metrics(const dlb_pop_metrics_t *metrics)
Definition: talp_output.c:159
gpu_vendor_t
Definition: talp_output.h:31
@ GPU_VENDOR_AMD
Definition: talp_output.h:33
@ GPU_VENDOR_NONE
Definition: talp_output.h:32
@ GPU_VENDOR_NVIDIA
Definition: talp_output.h:34
@ TALP_OUTPUT_CPUSET_MAX
Definition: talp_output.h:53
void talp_output_finalize(const char *output_file, bool partial_output)
Definition: talp_output.c:1854
void talp_output_record_process_info(void)
Definition: talp_output.c:1513
void talp_output_record_gpu_vendor(gpu_vendor_t vendor)
Definition: talp_output.c:92