diff --git a/CMakeLists.txt b/CMakeLists.txt index 204fe41897029aba3ad8ac60ad782c4b8062042f..0a33cde159c6bcbf07b2a9e32b6f225b0f822430 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,7 +70,7 @@ option ( WALBERLA_BUILD_TUTORIALS "Build Tutorials" option ( WALBERLA_BUILD_WITH_MPI "Build with MPI" ON ) option ( WALBERLA_BUILD_WITH_METIS "Build with metis graph partitioner" OFF ) -option ( WALBERLA_BUILD_WITH_PARMETIS "Build with ParMetis graph partitioner" OFF ) +option ( WALBERLA_BUILD_WITH_PARMETIS "Build with ParMetis graph partitioner" OFF ) option ( WALBERLA_BUILD_WITH_GPROF "Enables gprof" ) option ( WALBERLA_BUILD_WITH_GCOV "Enables gcov" ) @@ -867,14 +867,14 @@ if ( WALBERLA_BUILD_WITH_PARMETIS ) ${PARMETIS_ROOT}/include $ENV{PARMETIS_ROOT}/include ) - + find_library(PARMETIS_LIBRARY parmetis /usr/local/lib /usr/lib ${PARMETIS_ROOT}/lib $ENV{PARMETIS_ROOT}/lib ) - + if( PARMETIS_INCLUDE_DIR AND PARMETIS_LIBRARY AND METIS_LIBRARY ) include_directories( ${PARMETIS_INCLUDE_DIR} ) list ( APPEND SERVICE_LIBS ${PARMETIS_LIBRARY} ${METIS_LIBRARY} ) @@ -1046,7 +1046,7 @@ if ( WALBERLA_BUILD_WITH_CUDA ) # set ( BUILD_SHARED_LIBS ON ) set ( CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE ON ) - + if( NOT WALBERLA_CXX_COMPILER_IS_MSVC ) set ( CUDA_PROPAGATE_HOST_FLAGS OFF CACHE BOOL "" ) endif() @@ -1131,12 +1131,14 @@ endif() if ( WALBERLA_BUILD_WITH_LIKWID_MARKERS ) - find_library( LIKWID_LIB likwid HINTS $ENV{LIKWID_ROOT} ) + find_library( LIKWID_LIB likwid HINTS $ENV{LIKWID_LIBDIR} $ENV{LIKWID_ROOT}/lib ) + find_path( LIKWID_INCLUDE_DIR likwid.h HINTS $ENV{LIKWID_INCDIR} $ENV{LIKWID_ROOT}/include ) - if ( LIKWID_LIB ) + if ( LIKWID_LIB AND LIKWID_INCLUDE_DIR) set( LIKWID_FOUND 1) - list ( APPEND SERVICE_LIBS ${LIKWID_LIB} ) + include_directories( ${LIKWID_INCLUDE_DIR}) add_definitions ( "-DLIKWID_PERFMON" ) + list ( APPEND SERVICE_LIBS ${LIKWID_LIB} ) else() message(WARNING "likwid marker library not found. Set environment variable LIKWID_ROOT") set ( WALBERLA_BUILD_WITH_LIKWID_MARKERS OFF CACHE BOOL "Compile in markers for likwid-perfctr" FORCE ) diff --git a/src/core/perf_analysis/extern/likwid.h b/src/core/perf_analysis/extern/likwid.h index 75c5ad7047175f47213c5e52e536144ffda4b8c4..5db0fae8870edad498e942649e9edd3aefaf9bee 100644 --- a/src/core/perf_analysis/extern/likwid.h +++ b/src/core/perf_analysis/extern/likwid.h @@ -1,68 +1,37 @@ -/* - * ======================================================================================= - * - * Filename: likwid.h - * - * Description: Header File of likwid marker API - * - * Version: 3.0 - * Released: 29.11.2012 - * - * Author: Jan Treibig (jt), jan.treibig@gmail.com - * Project: likwid - * - * Copyright (C) 2012 Jan Treibig - * - * This program is free software: you can redistribute it and/or modify it under - * the terms of the GNU General Public License as published by the Free Software - * Foundation, either version 3 of the License, or (at your option) any later - * version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT ANY - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along with - * this program. If not, see <http://www.gnu.org/licenses/>. - * - * ======================================================================================= - */ +//====================================================================================================================== +// +// This file is part of waLBerla. waLBerla is free software: you can +// redistribute it and/or modify it under the terms of the GNU General Public +// License as published by the Free Software Foundation, either version 3 of +// the License, or (at your option) any later version. +// +// waLBerla is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +// for more details. +// +// You should have received a copy of the GNU General Public License along +// with waLBerla (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>. +// +//! \file likwid.h +//! \ingroup core +//! \author Dominik Thoennes <dominik.thoennes@fau.de> +//! \brief Wrapper for the Likwid tools +// +//====================================================================================================================== -#ifndef LIKWID_H -#define LIKWID_H + +#pragma once #ifdef LIKWID_PERFMON -#define LIKWID_MARKER_INIT likwid_markerInit(); -#define LIKWID_MARKER_THREADINIT likwid_markerThreadInit(); -#define LIKWID_MARKER_START(reg) likwid_markerStartRegion(reg); -#define LIKWID_MARKER_STOP(reg) likwid_markerStopRegion(reg); -#define LIKWID_MARKER_CLOSE likwid_markerClose(); +#include <likwid.h> #else #define LIKWID_MARKER_INIT #define LIKWID_MARKER_THREADINIT -#define LIKWID_MARKER_START(reg) -#define LIKWID_MARKER_STOP(reg) +#define LIKWID_MARKER_SWITCH +#define LIKWID_MARKER_REGISTER(regionTag) +#define LIKWID_MARKER_START(regionTag) +#define LIKWID_MARKER_STOP(regionTag) #define LIKWID_MARKER_CLOSE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* marker API routines */ -extern void likwid_markerInit(void); -extern void likwid_markerThreadInit(void); -extern void likwid_markerClose(void); -extern void likwid_markerStartRegion(const char* regionTag); -extern void likwid_markerStopRegion(const char* regionTag); - -/* utility routines */ -extern int likwid_getProcessorId(); -extern int likwid_pinProcess(int processorId); -extern int likwid_pinThread(int processorId); - -#ifdef __cplusplus -} -#endif - -#endif /*LIKWID_H*/ +#define LIKWID_MARKER_GET(regionTag, nevents, events, time, count) +#endif // LIKWID_PERFMON \ No newline at end of file