YAC 3.21.0
Yet Another Coupler
Loading...
Searching...
No Matches
yac_pak.h
Go to the documentation of this file.
1// Copyright (c) 2026 The YAC Authors
2//
3// SPDX-License-Identifier: BSD-3-Clause
4
5/*
6 * YAC PAK - YAC Performance Analysis Kit
7 * Lightweight per-rank event tracing tool
8 */
9
10#ifndef YAC_PAK_H
11#define YAC_PAK_H
12
13#include <mpi.h>
14#include <stdio.h>
15
36#define YAC_PAK_VERSION_MAJOR 0
37#define YAC_PAK_VERSION_MINOR 1
38#define YAC_PAK_VERSION_PATCH 2
39#define YAC_PAK_VERSION_STRING "0.1.2"
40
42struct yac_pak;
43
61
77
91struct yac_pak * yac_pak_new(MPI_Comm comm, int capacity);
92
103void yac_pak_delete(struct yac_pak * pak);
104
118int yac_pak_register(struct yac_pak * pak, char const * name);
119
130int yac_pak_start(struct yac_pak * pak, int idx);
131
142int yac_pak_stop(struct yac_pak * pak, int idx);
143
157int yac_pak_report(struct yac_pak * pak, FILE * out);
158
195int yac_pak_trace_is_enabled(struct yac_pak const * pak);
196
210int yac_pak_setup_trace_is_enabled(struct yac_pak const * pak);
211
223int yac_pak_trace_stop(struct yac_pak * pak, int handle);
224
241int yac_pak_flush_trace(struct yac_pak * pak);
242
275int yac_pak_trace_start_ex(struct yac_pak * pak,
276 char const * field,
277 char const * component,
278 char const * grid,
280 int put_idx,
281 char const * datetime,
282 int action,
284
298 struct yac_pak const * pak, yac_pak_trace_level_t level);
299
329int yac_pak_trace_start_setup(struct yac_pak * pak,
330 char const * name, yac_pak_event_type_t type);
331
350int yac_pak_trace_record(struct yac_pak * pak,
351 char const * field, char const * component,
352 char const * grid, yac_pak_event_type_t type,
353 double tstart, double tend);
354
366char const * yac_pak_get_config_output_path(struct yac_pak const * pak);
367
388 struct yac_pak * pak, char const * comp_name,
389 int comp_rank, int comp_size);
390
391 /* end of yac_pak group */
392
393#endif /* YAC_PAK_H */
int yac_pak_region_trace_is_enabled(struct yac_pak const *pak, yac_pak_trace_level_t level)
Check whether region events at a given trace level will be recorded.
Definition yac_pak.c:913
int yac_pak_trace_start_setup(struct yac_pak *pak, char const *name, yac_pak_event_type_t type)
Setup-phase event tracing.
Definition yac_pak.c:972
int yac_pak_register(struct yac_pak *pak, char const *name)
Register a named timer.
Definition yac_pak.c:1151
int yac_pak_trace_is_enabled(struct yac_pak const *pak)
Event tracing support.
Definition yac_pak.c:905
int yac_pak_setup_trace_is_enabled(struct yac_pak const *pak)
Check whether setup-phase tracing is active.
Definition yac_pak.c:909
int yac_pak_start(struct yac_pak *pak, int idx)
Start a registered timer.
Definition yac_pak.c:1162
void yac_pak_delete(struct yac_pak *pak)
Destroy a YAC PAK object.
Definition yac_pak.c:847
struct yac_pak * yac_pak_new(MPI_Comm comm, int capacity)
Construct a new YAC PAK object.
Definition yac_pak.c:737
yac_pak_event_type_t
Event type for YAC PAK trace entries. Defines the type of events that can be recorded in YAC PAK trac...
Definition yac_pak.h:48
yac_pak_trace_level_t
YAC PAK coupling trace level.
Definition yac_pak.h:71
int yac_pak_trace_record(struct yac_pak *pak, char const *field, char const *component, char const *grid, yac_pak_event_type_t type, double tstart, double tend)
Record a complete trace entry with explicit timestamps.
Definition yac_pak.c:979
int yac_pak_report(struct yac_pak *pak, FILE *out)
Generate collective timer report.
Definition yac_pak.c:1181
char const * yac_pak_get_config_output_path(struct yac_pak const *pak)
Return the coupling configuration output file path if enabled.
Definition yac_pak.c:925
int yac_pak_trace_stop(struct yac_pak *pak, int handle)
Stop a trace event.
Definition yac_pak.c:1055
int yac_pak_flush_trace(struct yac_pak *pak)
Flush trace data to disk.
Definition yac_pak.c:1092
void yac_pak_set_component(struct yac_pak *pak, char const *comp_name, int comp_rank, int comp_size)
Set the component this process belongs to.
Definition yac_pak.c:929
int yac_pak_stop(struct yac_pak *pak, int idx)
Stop a registered timer.
Definition yac_pak.c:1170
int yac_pak_trace_start_ex(struct yac_pak *pak, char const *field, char const *component, char const *grid, yac_pak_event_type_t type, int put_idx, char const *datetime, int action, yac_pak_trace_level_t level)
Start a trace event with full metadata.
Definition yac_pak.c:1017
@ YAC_PAK_EVENT_TYPE_GET
Definition yac_pak.h:54
@ YAC_PAK_EVENT_TYPE_WAIT
Definition yac_pak.h:59
@ YAC_PAK_EVENT_TYPE_PUT
Definition yac_pak.h:56
@ YAC_PAK_EVENT_TYPE_FINALIZE
Definition yac_pak.h:53
@ YAC_PAK_EVENT_TYPE_INIT
Definition yac_pak.h:49
@ YAC_PAK_EVENT_TYPE_SYNC_DEF
Definition yac_pak.h:51
@ YAC_PAK_EVENT_TYPE_AGET
Definition yac_pak.h:55
@ YAC_PAK_EVENT_TYPE_DEF_COMP
Definition yac_pak.h:50
@ YAC_PAK_EVENT_TYPE_UPDATE
Definition yac_pak.h:58
@ YAC_PAK_EVENT_TYPE_ENDDEF
Definition yac_pak.h:52
@ YAC_PAK_EVENT_TYPE_REGION
Definition yac_pak.h:57
@ YAC_PAK_TRACE_LEVEL_MAX
highest level
Definition yac_pak.h:75
@ YAC_PAK_TRACE_LEVEL_OFF
no coupling events
Definition yac_pak.h:72
@ YAC_PAK_TRACE_LEVEL_REGIONS
Definition yac_pak.h:74
@ YAC_PAK_TRACE_LEVEL_COUPLING
PUT/GET/AGET/UPDATE/WAIT events.
Definition yac_pak.h:73
enum callback_type type
int comp_size
Definition yac_pak.c:181
MPI_Comm comm
Definition yac_pak.c:136
int comp_rank
Definition yac_pak.c:180
char const * name
Definition toy_scrip.c:114