pomp2_region_info.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-2011,
* RWTH Aachen University, Germany
*
* Copyright (c) 2009-2011,
* Gesellschaft fuer numerische Simulation mbH Braunschweig, Germany
*
* Copyright (c) 2009-2011,
* Technische Universitaet Dresden, Germany
*
* Copyright (c) 2009-2011,
* University of Oregon, Eugene, USA
*
* Copyright (c) 2009-2011, 2013, 2014
* Forschungszentrum Juelich GmbH, Germany
*
* Copyright (c) 2009-2011,
* German Research School for Simulation Sciences GmbH, Juelich/Aachen, Germany
*
* Copyright (c) 2009-2011,
* 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_REGION_INFO_H
#define POMP2_REGION_INFO_H
#include "opari2_region_info.h"
#include <stdbool.h>
typedef enum /* POMP2_Region_type */
{
POMP2_No_type = 0,
POMP2_Atomic,
POMP2_Barrier,
POMP2_Critical,
POMP2_Do,
POMP2_Flush,
POMP2_For,
POMP2_Master,
POMP2_Ordered,
POMP2_Parallel,
POMP2_Parallel_do,
POMP2_Parallel_for,
POMP2_Parallel_sections,
POMP2_Parallel_workshare,
POMP2_Sections,
POMP2_Single,
POMP2_Task,
POMP2_Taskuntied,
POMP2_Taskwait,
POMP2_Workshare
} POMP2_Region_type;
const char*
pomp2RegionType2String( POMP2_Region_type regionType );
typedef enum
{
POMP2_No_schedule = 0,
POMP2_Static, /* needs chunk size */
POMP2_Dynamic, /* needs chunk size */
POMP2_Guided, /* needs chunk size */
POMP2_Runtime,
POMP2_Auto
} POMP2_Schedule_type;
const char*
pomp2ScheduleType2String( POMP2_Schedule_type scheduleType );
typedef enum
{
POMP2_No_defaultSharing = 0,
POMP2_None,
POMP2_Shared,
POMP2_Private,
POMP2_Firstprivate
} POMP2_DefaultSharing_type;
const char*
pomp2defaultSharingType2String( POMP2_DefaultSharing_type defaultSharingType );
typedef struct
{
OPARI2_REGION_INFO
POMP2_Region_type mRegionType;
bool mHasCopyIn;
bool mHasCopyPrivate;
bool mHasIf;
bool mHasFirstPrivate;
bool mHasLastPrivate;
bool mHasNoWait;
bool mHasNumThreads;
bool mHasOrdered;
bool mHasReduction;
bool mHasShared;
bool mHasCollapse;
bool mHasUntied;
POMP2_Schedule_type mScheduleType;
POMP2_DefaultSharing_type mDefaultSharingType;
char* mUserGroupName;
unsigned mNumSections;
char* mCriticalName;
} POMP2_Region_info;
#define CTC_OMP_TOKENS \
CTC_OMP_Has_copy_in, \
CTC_OMP_Has_copy_private, \
CTC_OMP_Has_defaultSharing, \
CTC_OMP_Has_first_private, \
CTC_OMP_Has_last_private, \
CTC_OMP_Has_no_wait, \
CTC_OMP_Has_ordered, \
CTC_OMP_Has_reduction, \
CTC_OMP_Has_schedule, \
CTC_OMP_Has_shared, \
CTC_OMP_Num_sections, \
CTC_OMP_Critical_name, \
CTC_OMP_User_group_name, \
CTC_OMP_Has_if, \
CTC_OMP_Has_collapse, \
CTC_OMP_Has_num_threads, \
CTC_OMP_Has_untied
#define CTC_OPENMP_TOKEN_MAP_ENTRIES \
{ "criticalName", CTC_OMP_Critical_name }, \
{ "hasCollapse", CTC_OMP_Has_collapse }, \
{ "hasCopyIn", CTC_OMP_Has_copy_in }, \
{ "hasCopyPrivate", CTC_OMP_Has_copy_private }, \
{ "hasDefault", CTC_OMP_Has_defaultSharing }, \
{ "hasFirstPrivate", CTC_OMP_Has_first_private }, \
{ "hasIf", CTC_OMP_Has_if }, \
{ "hasLastPrivate", CTC_OMP_Has_last_private }, \
{ "hasNowait", CTC_OMP_Has_no_wait }, \
{ "hasNum_threads", CTC_OMP_Has_num_threads }, \
{ "hasOrdered", CTC_OMP_Has_ordered }, \
{ "hasReduction", CTC_OMP_Has_reduction }, \
{ "hasSchedule", CTC_OMP_Has_schedule }, \
{ "hasShared", CTC_OMP_Has_shared }, \
{ "hasUntied", CTC_OMP_Has_untied }, \
{ "numSections", CTC_OMP_Num_sections }, \
{ "userGroupName", CTC_OMP_User_group_name }
void
ctcString2RegionInfo( const char ctcString[],
POMP2_Region_info* regionInfo );
void
freePOMP2RegionInfoMembers( POMP2_Region_info* regionInfo );
#endif /* POMP2_REGION_INFO_H */
POMP2_Schedule_type
POMP2_Schedule_type
Definition: pomp2_region_info.h:95
POMP2_Region_info::mHasLastPrivate
bool mHasLastPrivate
Definition: pomp2_region_info.h:160
POMP2_Region_info::mNumSections
unsigned mNumSections
Definition: pomp2_region_info.h:183
POMP2_Region_info::mHasNumThreads
bool mHasNumThreads
Definition: pomp2_region_info.h:164
POMP2_Region_info::mHasUntied
bool mHasUntied
Definition: pomp2_region_info.h:175
pomp2ScheduleType2String
const char * pomp2ScheduleType2String(POMP2_Schedule_type scheduleType)
POMP2_Region_info::mHasCopyIn
bool mHasCopyIn
Definition: pomp2_region_info.h:152
freePOMP2RegionInfoMembers
void freePOMP2RegionInfoMembers(POMP2_Region_info *regionInfo)
POMP2_Region_info::mHasIf
bool mHasIf
Definition: pomp2_region_info.h:156
POMP2_Region_info::mScheduleType
POMP2_Schedule_type mScheduleType
Definition: pomp2_region_info.h:177
POMP2_DefaultSharing_type
POMP2_DefaultSharing_type
Definition: pomp2_region_info.h:115
POMP2_Region_info::mDefaultSharingType
POMP2_DefaultSharing_type mDefaultSharingType
Definition: pomp2_region_info.h:179
pomp2RegionType2String
const char * pomp2RegionType2String(POMP2_Region_type regionType)
POMP2_Region_info::mHasOrdered
bool mHasOrdered
Definition: pomp2_region_info.h:166
pomp2defaultSharingType2String
const char * pomp2defaultSharingType2String(POMP2_DefaultSharing_type defaultSharingType)
POMP2_Region_info::mHasCopyPrivate
bool mHasCopyPrivate
Definition: pomp2_region_info.h:154
POMP2_Region_info::mHasShared
bool mHasShared
Definition: pomp2_region_info.h:170
POMP2_Region_info::mHasReduction
bool mHasReduction
Definition: pomp2_region_info.h:168
POMP2_Region_type
POMP2_Region_type
Definition: pomp2_region_info.h:61
POMP2_Region_info::mHasCollapse
bool mHasCollapse
Definition: pomp2_region_info.h:172
POMP2_Region_info::mCriticalName
char * mCriticalName
Definition: pomp2_region_info.h:185
POMP2_Region_info::mHasFirstPrivate
bool mHasFirstPrivate
Definition: pomp2_region_info.h:158
ctcString2RegionInfo
void ctcString2RegionInfo(const char ctcString[], POMP2_Region_info *regionInfo)
POMP2_Region_info::mUserGroupName
char * mUserGroupName
Definition: pomp2_region_info.h:181
POMP2_Region_info::mHasNoWait
bool mHasNoWait
Definition: pomp2_region_info.h:162
opari2_region_info.h
POMP2_Region_info
This struct stores all information on an OpenMP region, like the region type or corresponding source ...
Definition: pomp2_region_info.h:136
POMP2_Region_info::mRegionType
POMP2_Region_type mRegionType
Definition: pomp2_region_info.h:150