Dynamic Load Balance 3.6.1+32-59d1
Data Structures | Enumerations | Functions | Variables
omptm_free_agents.c File Reference
#include "LB_numThreads/omptm_free_agents.h"
#include "apis/dlb.h"
#include "support/atomic.h"
#include "support/debug.h"
#include "support/mask_utils.h"
#include "LB_comm/shmem_cpuinfo.h"
#include "LB_comm/shmem_procinfo.h"
#include "LB_core/spd.h"
#include "LB_numThreads/omptool.h"
#include <sched.h>
#include <unistd.h>
#include <string.h>
#include <pthread.h>
#include <inttypes.h>
Include dependency graph for omptm_free_agents.c:

Data Structures

struct  cpu_data_t
 

Enumerations

enum  cpu_state_t {
  CPU_DISABLED = 0 , CPU_BUSY , CPU_LENT , CPU_STATE_UNKNOWN = 0 ,
  CPU_STATE_IDLE = 1 << 0 , CPU_STATE_LENT = 1 << 1 , CPU_STATE_RECLAIMED = 1 << 2 , CPU_STATE_IN_PARALLEL = 1 << 3 ,
  CPU_STATE_FREE_AGENT_ENABLED = 1 << 4
}
 
enum  openmp_roles_t { ROLE_NONE = 0 , ROLE_PRIMARY = 1 << 0 , ROLE_WORKER = 1 << 1 , ROLE_FREE_AGENT = 1 << 2 }
 

Functions

int __kmp_get_free_agent_id (void)
 
void omptm_free_agents__init (pid_t process_id, const options_t *options)
 
void omptm_free_agents__finalize (void)
 
void omptm_free_agents__IntoBlockingCall (void)
 
void omptm_free_agents__OutOfBlockingCall (void)
 
void omptm_free_agents__thread_begin (ompt_thread_t thread_type)
 
void omptm_free_agents__parallel_begin (omptool_parallel_data_t *parallel_data)
 
void omptm_free_agents__parallel_end (omptool_parallel_data_t *parallel_data)
 
void omptm_free_agents__into_parallel_function (omptool_parallel_data_t *parallel_data, unsigned int index)
 
void omptm_free_agents__task_create (void)
 
void omptm_free_agents__task_complete (void)
 
void omptm_free_agents__task_switch (void)
 
void omptm_free_agents_testing__set_worker_binding (int cpuid)
 
void omptm_free_agents_testing__set_free_agent_id (int id)
 
void omptm_free_agents_testing__set_pending_tasks (unsigned int num_tasks)
 
void omptm_free_agents_testing__acquire_one_free_agent (void)
 
bool omptm_free_agents_testing__in_parallel (void)
 
bool omptm_free_agents_testing__check_cpu_in_parallel (int cpuid)
 
bool omptm_free_agents_testing__check_cpu_idle (int cpuid)
 
bool omptm_free_agents_testing__check_cpu_free_agent_enabled (int cpuid)
 
int omptm_free_agents_testing__get_num_enabled_free_agents (void)
 
int omptm_free_agents_testing__get_free_agent_cpu (int thread_id)
 
int omptm_free_agents_testing__get_free_agent_binding (int thread_id)
 
int omptm_free_agents_testing__get_free_agent_id_by_cpuid (int cpuid)
 
int omptm_free_agents_testing__get_free_agent_cpuid_by_id (int thread_id)
 

Variables

__thread int __free_agent_id = -1
 
__thread int __worker_binding = -1
 
const omptool_event_funcs_t omptm_free_agents_events_vtable
 

Enumeration Type Documentation

◆ cpu_state_t

Enumerator
CPU_DISABLED 
CPU_BUSY 
CPU_LENT 
CPU_STATE_UNKNOWN 
CPU_STATE_IDLE 
CPU_STATE_LENT 
CPU_STATE_RECLAIMED 
CPU_STATE_IN_PARALLEL 
CPU_STATE_FREE_AGENT_ENABLED 

◆ openmp_roles_t

Enumerator
ROLE_NONE 
ROLE_PRIMARY 
ROLE_WORKER 
ROLE_FREE_AGENT 

Function Documentation

◆ __kmp_get_free_agent_id()

int __kmp_get_free_agent_id ( void  )

◆ omptm_free_agents__init()

void omptm_free_agents__init ( pid_t  process_id,
const options_t options 
)

◆ omptm_free_agents__finalize()

void omptm_free_agents__finalize ( void  )

◆ omptm_free_agents__IntoBlockingCall()

void omptm_free_agents__IntoBlockingCall ( void  )

◆ omptm_free_agents__OutOfBlockingCall()

void omptm_free_agents__OutOfBlockingCall ( void  )

◆ omptm_free_agents__thread_begin()

void omptm_free_agents__thread_begin ( ompt_thread_t  thread_type)

◆ omptm_free_agents__parallel_begin()

void omptm_free_agents__parallel_begin ( omptool_parallel_data_t parallel_data)

◆ omptm_free_agents__parallel_end()

void omptm_free_agents__parallel_end ( omptool_parallel_data_t parallel_data)

◆ omptm_free_agents__into_parallel_function()

void omptm_free_agents__into_parallel_function ( omptool_parallel_data_t parallel_data,
unsigned int  index 
)

◆ omptm_free_agents__task_create()

void omptm_free_agents__task_create ( void  )

◆ omptm_free_agents__task_complete()

void omptm_free_agents__task_complete ( void  )

◆ omptm_free_agents__task_switch()

void omptm_free_agents__task_switch ( void  )

◆ omptm_free_agents_testing__set_worker_binding()

void omptm_free_agents_testing__set_worker_binding ( int  cpuid)

◆ omptm_free_agents_testing__set_free_agent_id()

void omptm_free_agents_testing__set_free_agent_id ( int  id)

◆ omptm_free_agents_testing__set_pending_tasks()

void omptm_free_agents_testing__set_pending_tasks ( unsigned int  num_tasks)

◆ omptm_free_agents_testing__acquire_one_free_agent()

void omptm_free_agents_testing__acquire_one_free_agent ( void  )

◆ omptm_free_agents_testing__in_parallel()

bool omptm_free_agents_testing__in_parallel ( void  )

◆ omptm_free_agents_testing__check_cpu_in_parallel()

bool omptm_free_agents_testing__check_cpu_in_parallel ( int  cpuid)

◆ omptm_free_agents_testing__check_cpu_idle()

bool omptm_free_agents_testing__check_cpu_idle ( int  cpuid)

◆ omptm_free_agents_testing__check_cpu_free_agent_enabled()

bool omptm_free_agents_testing__check_cpu_free_agent_enabled ( int  cpuid)

◆ omptm_free_agents_testing__get_num_enabled_free_agents()

int omptm_free_agents_testing__get_num_enabled_free_agents ( void  )

◆ omptm_free_agents_testing__get_free_agent_cpu()

int omptm_free_agents_testing__get_free_agent_cpu ( int  thread_id)

◆ omptm_free_agents_testing__get_free_agent_binding()

int omptm_free_agents_testing__get_free_agent_binding ( int  thread_id)

◆ omptm_free_agents_testing__get_free_agent_id_by_cpuid()

int omptm_free_agents_testing__get_free_agent_id_by_cpuid ( int  cpuid)

◆ omptm_free_agents_testing__get_free_agent_cpuid_by_id()

int omptm_free_agents_testing__get_free_agent_cpuid_by_id ( int  thread_id)

Variable Documentation

◆ __free_agent_id

__thread int __free_agent_id = -1

◆ __worker_binding

__thread int __worker_binding = -1

◆ omptm_free_agents_events_vtable

const omptool_event_funcs_t omptm_free_agents_events_vtable
Initial value:
.lend_from_api = NULL,
.thread_end = NULL,
.thread_role_shift = NULL,
.into_parallel_function = omptm_free_agents__into_parallel_function,
.outof_parallel_function = NULL,
.into_parallel_implicit_barrier = NULL,
}
void omptm_free_agents__parallel_begin(omptool_parallel_data_t *parallel_data)
Definition: omptm_free_agents.c:562
void omptm_free_agents__task_create(void)
Definition: omptm_free_agents.c:657
void omptm_free_agents__IntoBlockingCall(void)
Definition: omptm_free_agents.c:461
void omptm_free_agents__into_parallel_function(omptool_parallel_data_t *parallel_data, unsigned int index)
Definition: omptm_free_agents.c:627
void omptm_free_agents__init(pid_t process_id, const options_t *options)
Definition: omptm_free_agents.c:373
void omptm_free_agents__task_complete(void)
Definition: omptm_free_agents.c:667
void omptm_free_agents__OutOfBlockingCall(void)
Definition: omptm_free_agents.c:493
void omptm_free_agents__task_switch(void)
Definition: omptm_free_agents.c:698
void omptm_free_agents__thread_begin(ompt_thread_t thread_type)
Definition: omptm_free_agents.c:524
void omptm_free_agents__finalize(void)
Definition: omptm_free_agents.c:447
void omptm_free_agents__parallel_end(omptool_parallel_data_t *parallel_data)
Definition: omptm_free_agents.c:610
Definition: omptool.h:66