commit: 02310e94552ae41bdebc6886d969232f23c7c0d2 Author: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com> AuthorDate: Fri Aug 20 01:23:33 2021 +0000 Commit: Florian Schmaus <flow <AT> gentoo <DOT> org> CommitDate: Fri Aug 20 01:23:33 2021 +0000 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=02310e94
sys-cluster/extrae: rework of instrumentation use, add peruse Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com> ...rae-3.8.3-r9.ebuild => extrae-3.8.3-r10.ebuild} | 35 ++++++++++++++-------- sys-cluster/extrae/metadata.xml | 9 +++--- 2 files changed, 27 insertions(+), 17 deletions(-) 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 c52ea919c..e37da75a2 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 - !>=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 ba115eca5..9e8da6d6f 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 <!--<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>
