pomp2_lib.h
Go to the documentation of this file.
/*
* This file is part of the Score-P software (http://www.score-p.org)
*
* Copyright (c) 2009-2013,
* RWTH Aachen University, Germany
*
* Copyright (c) 2009-2013,
* Gesellschaft fuer numerische Simulation mbH Braunschweig, Germany
*
* Copyright (c) 2009-2013,
* Technische Universitaet Dresden, Germany
*
* Copyright (c) 2009-2013,
* University of Oregon, Eugene, USA
*
* Copyright (c) 2009-2013, 2019,
* Forschungszentrum Juelich GmbH, Germany
*
* Copyright (c) 2009-2013,
* German Research School for Simulation Sciences GmbH, Juelich/Aachen, Germany
*
* Copyright (c) 2009-2013,
* Technische Universitaet Muenchen, Germany
*
* This software may be modified and distributed under the terms of
* a BSD-style license. See the COPYING file in the package base
* directory for details.
*
*/
/****************************************************************************
** SCALASCA http://www.scalasca.org/ **
** KOJAK http://www.fz-juelich.de/jsc/kojak/ **
*****************************************************************************
** Copyright (c) 1998-2009 **
** Forschungszentrum Juelich, Juelich Supercomputing Centre **
** **
** See the file COPYRIGHT in the package base directory for details **
****************************************************************************/
#ifndef POMP2_LIB_H
#define POMP2_LIB_H
#ifdef _OPENMP
#include <omp.h>
#endif
#include <stddef.h>
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Avoid warnings from Orcale Studio Compiler if nowait clauses are added
* to reduction loops. Opari always inserts a barrier after such loops, so
* the nowait is save.*/
#if defined( __SUNPRO_C )
#pragma error_messages (off, E_NOWAIT_REDUCTION_USE)
#endif
#ifndef __opari2_region_handle
typedef void* OPARI2_Region_handle;
#define __opari2_region_handle
#endif
typedef OPARI2_Region_handle POMP2_Region_handle;
typedef int64_t POMP2_Task_handle;
extern size_t
POMP2_Get_num_regions( void );
extern void
POMP2_Init_regions( void );
extern const char*
POMP2_Get_opari2_version( void );
extern POMP2_Task_handle
POMP2_Get_new_task_handle( void );
extern void
POMP2_Assign_handle( POMP2_Region_handle* pomp2_handle,
const char ctc_string[] );
#ifdef _OPENMP
extern void
POMP2_Atomic_enter( POMP2_Region_handle* pomp2_handle,
const char ctc_string[] );
extern void
POMP2_Atomic_exit( POMP2_Region_handle* pomp2_handle );
extern void
POMP2_Barrier_enter( POMP2_Region_handle* pomp2_handle,
POMP2_Task_handle* pomp2_old_task,
const char ctc_string[] );
extern void
POMP2_Barrier_exit( POMP2_Region_handle* pomp2_handle,
POMP2_Task_handle pomp2_old_task );
extern void
POMP2_Implicit_barrier_enter( POMP2_Region_handle* pomp2_handle,
POMP2_Task_handle* pomp2_old_task );
extern void
POMP2_Implicit_barrier_exit( POMP2_Region_handle* pomp2_handle,
POMP2_Task_handle pomp2_old_task );
extern void
POMP2_Flush_enter( POMP2_Region_handle* pomp2_handle,
const char ctc_string[] );
extern void
POMP2_Flush_exit( POMP2_Region_handle* pomp2_handle );
extern void
POMP2_Critical_begin( POMP2_Region_handle* pomp2_handle );
extern void
POMP2_Critical_end( POMP2_Region_handle* pomp2_handle );
extern void
POMP2_Critical_enter( POMP2_Region_handle* pomp2_handle,
const char ctc_string[] );
extern void
POMP2_Critical_exit( POMP2_Region_handle* pomp2_handle );
extern void
POMP2_For_enter( POMP2_Region_handle* pomp2_handle,
const char ctc_string[] );
extern void
POMP2_For_exit( POMP2_Region_handle* pomp2_handle );
extern void
POMP2_Master_begin( POMP2_Region_handle* pomp2_handle,
const char ctc_string[] );
extern void
POMP2_Master_end( POMP2_Region_handle* pomp2_handle );
extern void
POMP2_Parallel_begin( POMP2_Region_handle* pomp2_handle );
extern void
POMP2_Parallel_end( POMP2_Region_handle* pomp2_handle );
extern void
POMP2_Parallel_fork( POMP2_Region_handle* pomp2_handle,
int if_clause,
int num_threads,
POMP2_Task_handle* pomp2_old_task,
const char ctc_string[] );
extern void
POMP2_Parallel_join( POMP2_Region_handle* pomp2_handle,
POMP2_Task_handle pomp2_old_task );
extern void
POMP2_Section_begin( POMP2_Region_handle* pomp2_handle,
const char ctc_string[] );
extern void
POMP2_Section_end( POMP2_Region_handle* pomp2_handle );
extern void
POMP2_Sections_enter( POMP2_Region_handle* pomp2_handle,
const char ctc_string[] );
extern void
POMP2_Sections_exit( POMP2_Region_handle* pomp2_handle );
extern void
POMP2_Single_begin( POMP2_Region_handle* pomp2_handle );
extern void
POMP2_Single_end( POMP2_Region_handle* pomp2_handle );
extern void
POMP2_Single_enter( POMP2_Region_handle* pomp2_handle,
const char ctc_string[] );
extern void
POMP2_Single_exit( POMP2_Region_handle* pomp2_handle );
extern void
POMP2_Workshare_enter( POMP2_Region_handle* pomp2_handle,
const char ctc_string[] );
extern void
POMP2_Workshare_exit( POMP2_Region_handle* pomp2_handle );
extern void
POMP2_Ordered_begin( POMP2_Region_handle* pomp2_handle );
extern void
POMP2_Ordered_end( POMP2_Region_handle* pomp2_handle );
extern void
POMP2_Ordered_enter( POMP2_Region_handle* pomp2_handle,
const char ctc_string[] );
extern void
POMP2_Ordered_exit( POMP2_Region_handle* pomp2_handle );
extern void
POMP2_Task_create_begin( POMP2_Region_handle* pomp2_handle,
POMP2_Task_handle* pomp2_new_task,
POMP2_Task_handle* pomp2_old_task,
int pomp2_if,
const char ctc_string[] );
extern void
POMP2_Task_create_end( POMP2_Region_handle* pomp2_handle,
POMP2_Task_handle pomp2_old_task );
extern void
POMP2_Task_begin( POMP2_Region_handle* pomp2_handle,
POMP2_Task_handle pomp2_task );
extern void
POMP2_Task_end( POMP2_Region_handle* pomp2_handle );
extern void
POMP2_Untied_task_create_begin( POMP2_Region_handle* pomp2_handle,
POMP2_Task_handle* pomp2_new_task,
POMP2_Task_handle* pomp2_old_task,
int pomp2_if,
const char ctc_string[] );
extern void
POMP2_Untied_task_create_end( POMP2_Region_handle* pomp2_handle,
POMP2_Task_handle pomp2_old_task );
void
POMP2_Untied_task_begin( POMP2_Region_handle* pomp2_handle,
POMP2_Task_handle pomp2_task );
extern void
POMP2_Untied_task_end( POMP2_Region_handle* pomp2_handle );
extern void
POMP2_Taskwait_begin( POMP2_Region_handle* pomp2_handle,
POMP2_Task_handle* pomp2_old_task,
const char ctc_string[] );
extern void
POMP2_Taskwait_end( POMP2_Region_handle* pomp2_handle,
POMP2_Task_handle pomp2_old_task );
extern int
POMP2_Lib_get_max_threads( void );
extern void
POMP2_Init_lock( omp_lock_t* s );
extern void
POMP2_Destroy_lock( omp_lock_t* s );
extern void
POMP2_Set_lock( omp_lock_t* s );
extern void
POMP2_Unset_lock( omp_lock_t* s );
extern int
POMP2_Test_lock( omp_lock_t* s );
extern void
POMP2_Init_nest_lock( omp_nest_lock_t* s );
extern void
POMP2_Destroy_nest_lock( omp_nest_lock_t* s );
extern void
POMP2_Set_nest_lock( omp_nest_lock_t* s );
extern void
POMP2_Unset_nest_lock( omp_nest_lock_t* s );
extern int
POMP2_Test_nest_lock( omp_nest_lock_t* s );
#endif /* _OPENMP */
#ifdef __cplusplus
}
#endif
#endif
POMP2_Init_regions
void POMP2_Init_regions(void)
POMP2_Get_num_regions
size_t POMP2_Get_num_regions(void)
OPARI2_Region_handle
void * OPARI2_Region_handle
Definition: pomp2_lib.h:71
POMP2_Get_opari2_version
const char * POMP2_Get_opari2_version(void)
POMP2_Get_new_task_handle
POMP2_Task_handle POMP2_Get_new_task_handle(void)
POMP2_Assign_handle
void POMP2_Assign_handle(POMP2_Region_handle *pomp2_handle, const char ctc_string[])