sys-cluster/extrae: rework of instrumentation use, add peruse

Signed-off-by: Alessandro Barbieri <lssndrbarbieri@gmail.com>
This commit is contained in:
Alessandro Barbieri
2021-08-20 03:23:33 +02:00
parent 05b3cc50b7
commit 02310e9455
2 changed files with 27 additions and 17 deletions

View File

@@ -14,28 +14,33 @@ SRC_URI="https://github.com/bsc-performance-tools/extrae/archive/${PV}.tar.gz ->
LICENSE="LGPL-2.1"
SLOT="0"
KEYWORDS="~amd64"
IUSE="clustering doc dyninst heterogeneous inotify +instrument-dynamic-memory +instrument-io
+instrument-syscall memkind merge-in-trace nanos online opencl openmp openshmem
+parallel-merge pebs-sampling +posix-clock pthread sampling +single-mpi-lib sionlib smpss
spectral +xml"
IUSE_INSTRUMENT="
+instrument-dynamic-memory
+instrument-io
+instrument-syscall
"
IUSE_EXPAND="INSTRUMENT"
IUSE="${IUSE_INSTRUMENT} clustering dlsym doc dyninst heterogeneous inotify memkind
merge-in-trace nanos online opencl openmp openshmem +parallel-merge pebs-sampling
peruse +posix-clock pthread sampling +single-mpi-lib sionlib smpss spectral +xml"
#aspectj and aspectj-weaver need to both be enabled at the same time
#current dev-java/aspectj package only provides aspectj.jar
#aspectj needs foo/lib/aspectj.jar and foo/bin/ajc
#aspectj-weaver needs bar/aspectjweaver.jar
#TODO: pmapi cuda cupti gm mx aspectj
#TODO: cuda cupti gm mx
#TODO: support llvm libunwind, llvm rt, elftoolchain
CDEPEND="
${PYTHON_DEPS}
dev-libs/libxml2
dev-libs/papi
!<sys-cluster/openmpi-4.0.5-r1
!>=sys-cluster/openmpi-4.0.5-r1[libompitrace]
!sys-cluster/openmpi[libompitrace(+)]
sys-libs/libunwind
sys-libs/zlib
virtual/mpi
|| ( sys-libs/libunwind sys-libs/llvm-libunwind )
|| ( sys-devel/binutils:* sys-libs/binutils-libs )
clustering? ( sys-cluster/clusteringsuite[treedbscan] )
@@ -50,6 +55,7 @@ CDEPEND="
online? ( sys-cluster/synapse )
opencl? ( dev-util/opencl-headers )
openshmem? ( sys-cluster/SOS )
peruse? ( sys-cluster/openmpi[peruse(-)] )
sionlib? ( sys-cluster/sionlib:= )
spectral? (
sci-libs/fftw
@@ -74,8 +80,12 @@ BDEPEND="
dev-texlive/texlive-latexextra
)
"
REQUIRED_USE="
${PYTHON_REQUIRED_USE}
|| ( ${IUSE_INSTRUMENT//+/} )
java? ( pthread )
"
# cupti? ( cuda )
@@ -94,8 +104,6 @@ src_configure() {
--datarootdir="${T}"
--disable-mic
--disable-online
--disable-peruse
--disable-pmapi
--disable-static
@@ -104,7 +112,6 @@ src_configure() {
--with-librt="${EPREFIX}/usr"
--with-mpi="${EPREFIX}/usr"
--with-papi="${EPREFIX}/usr"
--with-pic
--with-unwind="${EPREFIX}/usr"
--without-cupti
@@ -121,16 +128,18 @@ src_configure() {
$(use_enable nanos)
$(use_enable online)
$(use_enable openmp)
$(use_enable sampling)
$(use_enable parallel-merge)
$(use_enable pebs-sampling)
$(use_enable peruse)
$(use_enable posix-clock)
$(use_enable pthread)
$(use_enable sampling)
$(use_enable single-mpi-lib)
$(use_enable smpss)
$(use_enable xml)
)
#--with-pmpi-hook (Choose method to call PMPI (dlsym or pmpi))
use dlsym && myconf+=( "--with-pmpi-hook=dlsym" )
# if use aspectj; then
# myconf+=( "--with-java-aspectj=${EPREFIX}/usr/share/aspectj/lib" )

View File

@@ -21,7 +21,8 @@ process). Extrae generates trace files that can be later visualized with sys-clu
<!--<flag name="cuda">Enable support for tracing CUDA calls on nVidia hardware and needs to point to the CUDA SDK installation path. This instrumentation is only valid in binaries that use the shared version of the CUDA library.</flag>-->
<!--<flag name="cupti">CUPTI is used to instrument CUDA calls</flag>-->
<flag name="doc">Generates the documentation of this instrumentation package</flag>
<flag name="dyninst">Build with dyninst</flag>
<flag name="dlsym">Use dlsym instead of PMPI</flag>
<flag name="dyninst">Build with <pkg>sys-cluster/dyninst</pkg></flag>
<flag name="heterogeneous">Enable support for heterogeneous tracing</flag>
<flag name="inotify">Enable inotify support</flag>
<flag name="instrument-dynamic-memory">Enables instrumentation for dynamic memory (malloc, free, realloc) calls</flag>
@@ -37,11 +38,11 @@ process). Extrae generates trace files that can be later visualized with sys-clu
<flag name="openshmem">OpenSHMEM to be used for the instrumentation package</flag>
<flag name="parallel-merge">Build the parallel mergers (mpimpi2prv/mpimpi2dim) based on MPI</flag>
<flag name="pebs-sampling">enable PEBS sampling</flag>
<!--<flag name="pmapi">Enable PMAPI library to gather CPU performance counters</flag>-->
<flag name="peruse">Enable gathering information with PerUse</flag>
<flag name="posix-clock">Use POSIX clock (clock_gettime call) instead of low level timing routines. Use this option if the system where you install the instrumentation package modifies the frequency of its processors at runtime.</flag>
<flag name="pthread">Enable support for tracing pthread library</flag>
<flag name="sampling">Enable PAPI sampling support</flag>
<flag name="spectral">This package enables support for on-line spectral analysis.</flag>
<flag name="sampling">Enable <pkg>dev-libs/papi</pkg> sampling support</flag>
<flag name="spectral">This package enables support for on-line <pkg>sys-cluster/spectral</pkg> analysis.</flag>
<flag name="single-mpi-lib">Produces a single instrumentation library for MPI that contains both Fortran and C wrappers. Applications that call the MPI library from both C and Fortran languages need this flag to be enabled.</flag>
<flag name="sionlib">Enable support for <pkg>sys-cluster/sionlib</pkg></flag>
<flag name="smpss">Enable support for tracing SMP-superscalar</flag>