Adaptyst
A comprehensive and architecture-agnostic performance analysis tool
Loading...
Searching...
No Matches
system.cpp File Reference
#include "system.hpp"
#include "print.hpp"
#include "archive.hpp"
#include "adaptyst/output.hpp"
#include <ryml.hpp>
#include <fstream>
#include <dlfcn.h>
#include <pybind11/embed.h>

Namespaces

namespace  adaptyst
 

Functions

adaptyst::Moduleget (amod_t id)
 
void set_error (adaptyst::Module *module, int code)
 
void set_error (adaptyst::Module *module, std::string msg, int code)
 
optionadaptyst_get_option (amod_t id, const char *key)
 
bool adaptyst_set_error (amod_t id, const char *msg)
 
const char * adaptyst_get_log_dir (amod_t id)
 
const char * adaptyst_get_node_name (amod_t id)
 
bool adaptyst_log (amod_t id, const char *msg, const char *type)
 
bool adaptyst_print (amod_t id, const char *msg, bool sub, bool error, const char *type)
 
const char * adaptyst_get_module_dir (amod_t id)
 
profile_infoadaptyst_get_profile_info (amod_t id)
 
bool adaptyst_set_profile_info (amod_t id, profile_info *info)
 
bool adaptyst_is_directing_node (amod_t id)
 
bool adaptyst_profile_notify (amod_t id)
 
int adaptyst_profile_wait (amod_t id)
 
bool adaptyst_process_src_paths (amod_t id, const char **paths, int n)
 
const char * adaptyst_get_cpu_mask (amod_t id)
 
const char * adaptyst_get_tmp_dir (amod_t id)
 
const char * adaptyst_get_local_config_dir (amod_t id)
 
bool adaptyst_set_will_profile (amod_t id, bool will_profile)
 
bool adaptyst_has_in_tag (amod_t id, const char *tag)
 
bool adaptyst_has_out_tag (amod_t id, const char *tag)
 
const char * adaptyst_get_internal_error_msg (amod_t id)
 
int adaptyst_get_internal_error_code (amod_t id)
 

Function Documentation

◆ adaptyst_get_cpu_mask()

const char * adaptyst_get_cpu_mask ( amod_t id)

Gets the CPU mask, which length is equal to the number of CPU cores and where the i-th char (indexing and core numbering from 1) can be either: 'b': the i-th core is for both workflow execution and performance analysis 'p': the i-th core is for performance analysis only 'c': the i-th core is for workflow execution only ' ': the i-th core is not used

This method can be called inside adaptyst_module_init() ONLY. Otherwise, an error will be thrown.

Parameters
idThe module ID (use module_id).
Returns
The CPU mask or a null pointer if the operation hasn't been successful.

◆ adaptyst_get_internal_error_code()

int adaptyst_get_internal_error_code ( amod_t id)

Gets the error code set by any of the Adaptyst API calls.

Parameters
idThe module ID (use module_id).
Returns
Error code or 0 if no error has occurred. See the ADAPTYST_OK and ADAPTYST_ERR_* definitions for possible error codes.

◆ adaptyst_get_internal_error_msg()

const char * adaptyst_get_internal_error_msg ( amod_t id)

Gets the error message set by any of the Adaptyst API calls.

Parameters
idThe module ID (use module_id).
Returns
Error message or a null pointer if no error has occurred.

◆ adaptyst_get_local_config_dir()

const char * adaptyst_get_local_config_dir ( amod_t id)

Gets the path to a directory where Adaptyst local configuration files are stored.

Parameters
idThe module ID (use module_id).
Returns
The path to the local config directory or a null pointer if the operation hasn't been successful.

◆ adaptyst_get_log_dir()

const char * adaptyst_get_log_dir ( amod_t id)

Gets the path to a directory where Adaptyst logs are stored.

Parameters
idThe module ID (use module_id).
Returns
The path to the Adaptyst log directory or a null pointer if the operation hasn't been successful.

◆ adaptyst_get_module_dir()

const char * adaptyst_get_module_dir ( amod_t id)

Gets the path to a directory where all module output files should be stored.

Parameters
idThe module ID (use module_id).
Returns
The path to the module output directory or a null pointer if the operation hasn't been successful.

◆ adaptyst_get_node_name()

const char * adaptyst_get_node_name ( amod_t id)

Gets the name of a node a module is attached to.

Parameters
idThe module ID (use module_id).
Returns
The name of the node or a null pointer if the operation hasn't been successful.

◆ adaptyst_get_option()

option * adaptyst_get_option ( amod_t id,
const char * key )

Gets a module option set by a user.

Parameters
idThe module ID (use module_id).
keyThe name of an option to obtain.
Returns
Pointer to the option struct corresponding to an option with the given name or a null pointer if the option couldn't be found.

◆ adaptyst_get_profile_info()

profile_info * adaptyst_get_profile_info ( amod_t id)

Gets information necessary for profiling a workflow in form of a profile_info struct.

Parameters
idThe module ID (use module_id).
Returns
Pointer to the profile_info struct with profiling information or a null pointer if the operation hasn't been successful.

◆ adaptyst_get_tmp_dir()

const char * adaptyst_get_tmp_dir ( amod_t id)

Gets the path to a temporary directory.

Parameters
idThe module ID (use module_id).
Returns
The path to a temporary directory or a null pointer if the operation hasn't been successful.

◆ adaptyst_has_in_tag()

bool adaptyst_has_in_tag ( amod_t id,
const char * tag )

Checks whether any nodes connected to a node a module is attached to (i.e. any nodes with an edge to the module node) has a specific tag.

Parameters
idThe module ID (use module_id).
tagTag to check.
Returns
Whether any nodes connected to the node has the tag. If the operation hasn't been successful, false is returned.

◆ adaptyst_has_out_tag()

bool adaptyst_has_out_tag ( amod_t id,
const char * tag )

Checks whether any nodes a module node is connected to (i.e. any nodes with an edge from the module node) has a specific tag.

Parameters
idThe module ID (use module_id).
tagTag to check.
Returns
Whether any nodes the node is connected to has the tag. If the operation hasn't been successful, false is returned.

◆ adaptyst_is_directing_node()

bool adaptyst_is_directing_node ( amod_t id)

Returns whether a node a module is attached to is a directing node.

Returns
Whether the node is a directing node. If the operation hasn't been successful, false is returned.

◆ adaptyst_log()

bool adaptyst_log ( amod_t id,
const char * msg,
const char * type )

Prints an unformatted message of a given type to Adaptyst logs.

Parameters
idThe module ID (use module_id).
msgMessage to log.
typeLog type (use one of the types declared in log_types).
Returns
Whether the operation has been successful.

◆ adaptyst_print()

bool adaptyst_print ( amod_t id,
const char * msg,
bool sub,
bool error,
const char * type )

Prints a formatted message of a given type to Adaptyst logs, i.e. with a specific prefix indicating whether a message is a main one or a secondary one and whether a message is an error.

Parameters
idThe module ID (use module_id).
msgMessage to print.
subWhether a message is a secondary one (if true, "->" is printed before the message, otherwise "==>" is printed).
errorWhether a message is an error message.
typeLog type (use one of the types declared in log_types).
Returns
Whether the operation has been successful.

◆ adaptyst_process_src_paths()

bool adaptyst_process_src_paths ( amod_t id,
const char ** paths,
int n )

Sends source code paths to Adaptyst for further processing (source code packing etc. is handled by Adaptyst, not modules).

Parameters
idThe module ID (use module_id).
pathsArray of source code paths.
nNumber of source code paths.
Returns
Whether the operation has been successful.

◆ adaptyst_profile_notify()

bool adaptyst_profile_notify ( amod_t id)

Sends a notification to Adaptyst that a module is ready to profile.

Parameters
idThe module ID (use module_id).
Returns
Whether the operation has been successful.

◆ adaptyst_profile_wait()

int adaptyst_profile_wait ( amod_t id)

Waits for a workflow executed by Adaptyst to finish running.

Parameters
idThe module ID (use module_id).
Returns
Exit code of the workflow or -1 if the operation hasn't been successful.

◆ adaptyst_set_error()

bool adaptyst_set_error ( amod_t id,
const char * msg )

Indicates to Adaptyst that a module error has occurred.

Parameters
idThe module ID (use module_id).
msgError message.
Returns
Whether the operation has been successful.

◆ adaptyst_set_profile_info()

bool adaptyst_set_profile_info ( amod_t id,
profile_info * info )

Sets information necessary for profiling a workflow in form of a profile_info struct. This function propagates information to all modules within an entity and is useful in case a module is in a directing node.

This method can be called inside adaptyst_module_init() ONLY. Otherwise, an error will be thrown.

Parameters
idThe module ID (use module_id).
infoPointer to a profile_info struct with profiling information to be set.
Returns
Whether the operation has been successful.

◆ adaptyst_set_will_profile()

bool adaptyst_set_will_profile ( amod_t id,
bool will_profile )

Indicates to Adaptyst whether a module will profile a workflow. By default, Adaptyst assumes that modules do not profile.

This method can be called inside adaptyst_module_init() ONLY. Otherwise, an error will be thrown.

Parameters
idThe module ID (use module_id).
will_profileWhether a module will profile a workflow.
Returns
Whether the operation has been successful.

◆ get()

adaptyst::Module * get ( amod_t id)
inline

◆ set_error() [1/2]

void set_error ( adaptyst::Module * module,
int code )
inline

◆ set_error() [2/2]

void set_error ( adaptyst::Module * module,
std::string msg,
int code )
inline