diff options
author | Pramod Kumbhar <pramod.s.kumbhar@gmail.com> | 2016-10-04 10:02:50 +0200 |
---|---|---|
committer | Todd Gamblin <tgamblin@llnl.gov> | 2016-10-04 01:02:50 -0700 |
commit | e546d6246f2cdb14c6ae01ecf322e75de78325de (patch) | |
tree | bd4350ef5907d0abdbb499b7fa6b5f2c3d1b182d | |
parent | 50fcade81b6e14b38ecd2f6bc53299f15e7e3c84 (diff) | |
download | spack-e546d6246f2cdb14c6ae01ecf322e75de78325de.tar.gz spack-e546d6246f2cdb14c6ae01ecf322e75de78325de.tar.bz2 spack-e546d6246f2cdb14c6ae01ecf322e75de78325de.tar.xz spack-e546d6246f2cdb14c6ae01ecf322e75de78325de.zip |
Spack package for HPCToolkit (#1892)
* Spack package for HPCToolkit (performance analysis tool)
* Correction for PR comments, make flake8 happy
* update note / comments
-rw-r--r-- | var/spack/repos/builtin/packages/hpctoolkit-externals/package.py | 39 | ||||
-rw-r--r-- | var/spack/repos/builtin/packages/hpctoolkit/package.py | 55 |
2 files changed, 94 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/hpctoolkit-externals/package.py b/var/spack/repos/builtin/packages/hpctoolkit-externals/package.py new file mode 100644 index 0000000000..64b5d17851 --- /dev/null +++ b/var/spack/repos/builtin/packages/hpctoolkit-externals/package.py @@ -0,0 +1,39 @@ +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# 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 terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class HpctoolkitExternals(Package): + """HPCToolkit performance analysis tool has many prerequisites and + HpctoolkitExternals package provides all these prerequisites.""" + + homepage = "http://hpctoolkit.org" + + # Note: No precise release tags/branches provided + version('5.4', + git='https://github.com/HPCToolkit/hpctoolkit-externals.git', + commit='3d2953623357bb06e9a4b51eca90a4b039c2710e') + + parallel = False + + def install(self, spec, prefix): + + options = ['CC=%s' % self.compiler.cc, + 'CXX=%s' % self.compiler.cxx] + + with working_dir('spack-build', create=True): + configure = Executable('../configure') + configure('--prefix=%s' % prefix, *options) + make('install') diff --git a/var/spack/repos/builtin/packages/hpctoolkit/package.py b/var/spack/repos/builtin/packages/hpctoolkit/package.py new file mode 100644 index 0000000000..aac22ef829 --- /dev/null +++ b/var/spack/repos/builtin/packages/hpctoolkit/package.py @@ -0,0 +1,55 @@ +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# 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 terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Hpctoolkit(Package): + """HPCToolkit is an integrated suite of tools for measurement and analysis + of program performance on computers ranging from multicore desktop systems + to the nation's largest supercomputers. By using statistical sampling of + timers and hardware performance counters, HPCToolkit collects accurate + measurements of a program's work, resource consumption, and inefficiency + and attributes them to the full calling context in which they occur.""" + + homepage = "http://hpctoolkit.org" + + # Note: No precise release tags/branches provided + version('5.4', git='https://github.com/HPCToolkit/hpctoolkit.git', + commit='d9ca2112762e5a06ea31b5295d793e4a83272d19') + + variant('mpi', default=True, description='Enable MPI supoort') + variant('papi', default=True, description='Enable PAPI counter support') + + depends_on('hpctoolkit-externals') + depends_on('papi', when='+papi') + depends_on('mpi', when='+mpi') + + def install(self, spec, prefix): + + options = ['CC=%s' % self.compiler.cc, + 'CXX=%s' % self.compiler.cxx, + '--with-externals=%s' % spec['hpctoolkit-externals'].prefix] + + if '+mpi' in spec: + options.extend(['MPICXX=%s' % spec['mpi'].mpicxx]) + + if '+papi' in spec: + options.extend(['--with-papi=%s' % spec['papi'].prefix]) + + # TODO: BG-Q configure option + with working_dir('spack-build', create=True): + configure = Executable('../configure') + configure('--prefix=%s' % prefix, *options) + make('install') |