diff --git a/sys-cluster/extrae/extrae-3.8.3-r9.ebuild b/sys-cluster/extrae/extrae-3.8.3-r10.ebuild similarity index 89% rename from sys-cluster/extrae/extrae-3.8.3-r9.ebuild rename to sys-cluster/extrae/extrae-3.8.3-r10.ebuild index c52ea919cd..e37da75a2b 100644 --- a/sys-cluster/extrae/extrae-3.8.3-r9.ebuild +++ b/sys-cluster/extrae/extrae-3.8.3-r10.ebuild @@ -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[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" ) diff --git a/sys-cluster/extrae/metadata.xml b/sys-cluster/extrae/metadata.xml index ba115eca51..9e8da6d6f0 100644 --- a/sys-cluster/extrae/metadata.xml +++ b/sys-cluster/extrae/metadata.xml @@ -21,7 +21,8 @@ process). Extrae generates trace files that can be later visualized with sys-clu Generates the documentation of this instrumentation package - Build with dyninst + Use dlsym instead of PMPI + Build with sys-cluster/dyninst Enable support for heterogeneous tracing Enable inotify support Enables instrumentation for dynamic memory (malloc, free, realloc) calls @@ -37,11 +38,11 @@ process). Extrae generates trace files that can be later visualized with sys-clu OpenSHMEM to be used for the instrumentation package Build the parallel mergers (mpimpi2prv/mpimpi2dim) based on MPI enable PEBS sampling - + Enable gathering information with PerUse 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. Enable support for tracing pthread library - Enable PAPI sampling support - This package enables support for on-line spectral analysis. + Enable dev-libs/papi sampling support + This package enables support for on-line sys-cluster/spectral analysis. 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. Enable support for sys-cluster/sionlib Enable support for tracing SMP-superscalar