Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

{perf}[foss/2015a] Scalasca + deps (REVIEW) #1375

Merged
merged 22 commits into from
Jun 3, 2015
Merged
Show file tree
Hide file tree
Changes from 11 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
39 changes: 39 additions & 0 deletions easybuild/easyconfigs/c/Cube/Cube-4.3-foss-2015a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# This is an easyconfig file for EasyBuild, see https://github.com/hpcugent/easybuild
# Copyright:: Copyright 2013 Juelich Supercomputing Centre, Germany
# Authors:: Bernd Mohr <b.mohr@fz-juelich.de>
# License:: New BSD
#
# This work is based from experiences from the UNITE project
# http://apps.fz-juelich.de/unite/
##
easyblock = 'EB_Score_minus_P'

name = "Cube"
version = "4.3"

homepage = 'http://www.scalasca.org/software/cube-4.x/download.html'
description = """Cube, which is used as performance report explorer for Scalasca and
Score-P, is a generic tool for displaying a multi-dimensional performance space
consisting of the dimensions (i) performance metric, (ii) call path, and (iii) system
resource. Each dimension can be represented as a tree, where non-leaf nodes of the tree
can be collapsed or expanded to achieve the desired level of granularity."""

toolchain = {'name': 'foss', 'version': '2015a'}

# http://apps.fz-juelich.de/scalasca/releases/cube/4.2/dist/cube-4.2.tar.gz
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this comment needed?

sources = [SOURCELOWER_TAR_GZ]
source_urls = ['http://apps.fz-juelich.de/scalasca/releases/cube/%(version)s/dist']


# patches = ['Cube-4.2_fix-Qt-version-check.patch']
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

drop this, clean up multiple empty lines


dependencies = [('Qt', '4.8.6')]

configopts = "QMAKE=$EBROOTQT/bin/qmake MOC=$EBROOTQT/bin/moc UIC=$EBROOTQT/bin/uic"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This does not play nicely with --filter-deps=Qt, as qmake and Co. are rarely installed in /bin. But I think this can be fixed in the Score-P easyblock. I'll give it a try and report back.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's actually a one-liner. Therefore I decided to include it in easybuilders/easybuild-easyblocks#552 rather than opening a separate PR.


sanity_check_paths = {
'files': ["bin/cube", "lib/libcube4.a", "lib/libcube4.so"],
'dirs': ["include/cube", "include/cubew"],
}

moduleclass = 'perf'
21 changes: 21 additions & 0 deletions easybuild/easyconfigs/g/GLib/GLib-2.42.1-foss-2015a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
easyblock = 'ConfigureMake'

name = 'GLib'
version = '2.42.1'

homepage = 'http://www.gtk.org/'
description = """GLib is one of the base libraries of the GTK+ project"""

toolchain = {'name': 'foss', 'version': '2015a'}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we really need subtoolchains for this kind of stuff...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I hope this will be tackled during the hackathon, I'm counting on @geimer ;-)

toolchainopts = {'optarch': True, 'pic': True}

source_urls = ['http://ftp.gnome.org/pub/gnome/sources/glib/%(version_major_minor)s/']
sources = ['glib-%(version)s.tar.xz']

dependencies = [
('libffi', '3.2.1'),
('gettext', '0.19.4'),
]
builddependencies = [('Python', '2.7.9')]

moduleclass = 'vis'
18 changes: 18 additions & 0 deletions easybuild/easyconfigs/g/gettext/gettext-0.19.4-foss-2015a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
easyblock = 'ConfigureMake'

name = 'gettext'
version = '0.19.4'

homepage = 'http://www.gnu.org/software/gettext/'
description = """GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may
build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools
and documentation"""

toolchain = {'name': 'foss', 'version': '2015a'}

sources = [SOURCE_TAR_GZ]
source_urls = [GNU_SOURCE]

configopts = '--without-emacs'

moduleclass = 'vis'
23 changes: 23 additions & 0 deletions easybuild/easyconfigs/l/libffi/libffi-3.2.1-foss-2015a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
easyblock = 'ConfigureMake'

name = 'libffi'
version = '3.2.1'

homepage = 'http://sourceware.org/libffi/'
description = """The libffi library provides a portable, high level programming interface to various calling
conventions. This allows a programmer to call any function specified by a call interface description at run-time."""

toolchain = {'name': 'foss', 'version': '2015a'}

source_urls = [
'ftp://sourceware.org/pub/libffi/',
'http://www.mirrorservice.org/sites/sourceware.org/pub/libffi/',
]
sources = [SOURCELOWER_TAR_GZ]

sanity_check_paths = {
'files': [('lib/libffi.%s' % SHLIB_EXT, 'lib64/libffi.%s' % SHLIB_EXT), ('lib/libffi.a', 'lib64/libffi.a')],
'dirs': [],
}

moduleclass = 'lib'
31 changes: 31 additions & 0 deletions easybuild/easyconfigs/o/OPARI2/OPARI2-1.1.2-foss-2015a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# This is an easyconfig file for EasyBuild, see https://github.com/hpcugent/easybuild
# Copyright:: Copyright 2013 Juelich Supercomputing Centre, Germany
# Authors:: Bernd Mohr <b.mohr@fz-juelich.de>
# License:: New BSD
#
# This work is based from experiences from the UNITE project
# http://apps.fz-juelich.de/unite/
##
easyblock = 'ConfigureMake'

name = "OPARI2"
version = "1.1.2"

homepage = 'http://www.score-p.org'
description = """OPARI2, the successor of Forschungszentrum Juelich's OPARI,
is a source-to-source instrumentation tool for OpenMP and hybrid codes.
It surrounds OpenMP directives and runtime library calls with calls to
the POMP2 measurement interface."""

toolchain = {'name': 'foss', 'version': '2015a'}

# http://www.vi-hps.org/upload/packages/opari2/opari2-1.1.1.tar.gz
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

drop comment, since it's out of sync with the version

sources = [SOURCELOWER_TAR_GZ]
source_urls = ['http://www.vi-hps.org/upload/packages/opari2/']

sanity_check_paths = {
'files': ["bin/opari2", "include/opari2/pomp2_lib.h"],
'dirs': [],
}

moduleclass = 'perf'
31 changes: 31 additions & 0 deletions easybuild/easyconfigs/o/OTF2/OTF2-1.5.1-foss-2015a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# This is an easyconfig file for EasyBuild, see https://github.com/hpcugent/easybuild
# Copyright:: Copyright 2013 Juelich Supercomputing Centre, Germany
# Authors:: Bernd Mohr <b.mohr@fz-juelich.de>
# License:: New BSD
#
# This work is based from experiences from the UNITE project
# http://apps.fz-juelich.de/unite/
##
easyblock = 'EB_Score_minus_P'

name = "OTF2"
version = "1.5.1"

homepage = 'http://www.score-p.org'
description = """The Open Trace Format 2 is a highly scalable, memory efficient event
trace data format plus support library. It will become the new standard trace format
for Scalasca, Vampir, and Tau and is open for other tools."""

toolchain = {'name': 'foss', 'version': '2015a'}

# http://www.vi-hps.org/upload/packages/otf2/otf2-1.2.1.tar.gz
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

drop comment

sources = [SOURCELOWER_TAR_GZ]
source_urls = ['http://www.vi-hps.org/upload/packages/otf2/']

sanity_check_paths = {
# note by Bernd Mohr: on some systems libraries end up in lib/
'files': ["bin/otf2-config", "include/otf2/otf2.h", ("lib64/libotf2.a", "lib/libotf2.a")],
'dirs': [],
}

moduleclass = 'perf'
46 changes: 46 additions & 0 deletions easybuild/easyconfigs/p/PAPI/PAPI-5.4.0-foss-2015a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
##
# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild
#
# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA
# Authors:: Fotis Georgatos <fotis@cern.ch>
# License:: MIT/GPL
# $Id$
#
# This work implements a part of the HPCBIOS project and is a component of the policy:
# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_07-02.html
##

easyblock = 'ConfigureMake'

name = 'PAPI'
version = '5.4.0'

homepage = 'http://icl.cs.utk.edu/projects/papi/'
description = """PAPI provides the tool designer and application engineer with a consistent interface and
methodology for use of the performance counter hardware found in most major microprocessors. PAPI enables
software engineers to see, in near real time, the relation between software performance and processor events.
In addition Component PAPI provides access to a collection of components
that expose performance measurement opportunites across the hardware and software stack."""

toolchain = {'name': 'foss', 'version': '2015a'}

# Example download URL, for reference: http://icl.cs.utk.edu/projects/papi/downloads/papi-5.0.0.tar.gz
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

drop comment

source_urls = ['http://icl.cs.utk.edu/projects/papi/downloads/']
sources = [SOURCELOWER_TAR_GZ]

start_dir = 'src'

# parallel build doesn't always work
parallel = 1

runtest = 'fulltest'

sanity_check_paths = {
'files': ["bin/papi_%s" % x for x in ["avail", "clockres", "command_line", "component_avail",
"cost", "decode", "error_codes", "event_chooser",
"mem_info", "multiplex_cost", "native_avail", "version",
"xml_event_info"]],
'dirs': [],
}

moduleclass = 'perf'
50 changes: 50 additions & 0 deletions easybuild/easyconfigs/p/PDT/PDT-3.20-foss-2015a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# This is an easyconfig file for EasyBuild, see https://github.com/hpcugent/easybuild
# Copyright:: Copyright 2013 Juelich Supercomputing Centre, Germany
# Authors:: Bernd Mohr <b.mohr@fz-juelich.de>
# License:: New BSD
#
# This work is based from experiences from the UNITE project
# http://apps.fz-juelich.de/unite/
##
easyblock = 'ConfigureMake'

name = "PDT"
version = "3.20"

homepage = 'http://www.cs.uoregon.edu/research/pdt/'
description = """Program Database Toolkit (PDT) is a framework for analyzing source
code written in several programming languages and for making rich program knowledge
accessible to developers of static and dynamic analysis tools. PDT implements a standard
program representation, the program database (PDB), that can be accessed in a uniform way
through a class library supporting common PDB operations."""

toolchain = {'name': 'foss', 'version': '2015a'}

# http://tau.uoregon.edu/pdt_releases/pdtoolkit-3.19.tar.gz
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

drop comment

sources = ['pdtoolkit-%(version)s.tar.gz']
source_urls = ['http://tau.uoregon.edu/pdt_releases/']

prefix_opt = '-prefix='

# notes by Bernd Mohr
# Compiler suite should always be specified -- MUCH quicker and SAVER than autodetect
# -KAI|-KCC|-GNU|-CC|-c++|-cxx|-xlC|-pgCC|-icpc|-ecpc
configopts = '-GNU'

keeppreviousinstall = True

# notes by Bernd Mohr
# Use hardcoded x86_64 or "import platform; machine = platform.machine()" here?
sanity_check_paths = {
'files': ["x86_64/bin/cparse", "x86_64/include/pdb.h", "x86_64/lib/libpdb.a"],
'dirs': [],
}

skipsteps = ['build']
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

put this just below configopts?


modextrapaths = {
'PATH': "x86_64/bin",
'LD_LIBRARY_PATH': "x86_64/lib",
}

moduleclass = 'perf'
17 changes: 17 additions & 0 deletions easybuild/easyconfigs/q/Qt/Qt-4.8.6-foss-2015a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name = 'Qt'
version = '4.8.6'

homepage = 'http://qt-project.org/'
description = "Qt is a comprehensive cross-platform C++ application framework."

toolchain = {'name': 'foss', 'version': '2015a'}

source_urls = [
'http://origin.releases.qt-project.org/qt4/source/',
'http://master.qt-project.org/archive/qt/%(version_major_minor)s/%(version)s/'
]
sources = ['%(namelower)s-everywhere-opensource-src-%(version)s.tar.gz']

dependencies = [('GLib', '2.42.1')]

moduleclass = 'devel'
36 changes: 36 additions & 0 deletions easybuild/easyconfigs/s/Scalasca/Scalasca-2.2-foss-2015a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# This is an easyconfig file for EasyBuild, see https://github.com/hpcugent/easybuild
# Copyright:: Copyright 2013 Juelich Supercomputing Centre, Germany
# Authors:: Bernd Mohr <b.mohr@fz-juelich.de>
# License:: New BSD
#
# This work is based from experiences from the UNITE project
# http://apps.fz-juelich.de/unite/
##
easyblock = 'EB_Score_minus_P'

name = "Scalasca"
version = "2.2"

homepage = 'http://www.scalasca.org/'
description = """Scalasca is a software tool that supports the performance optimization of
parallel programs by measuring and analyzing their runtime behavior. The analysis identifies
potential performance bottlenecks -- in particular those concerning communication and
synchronization -- and offers guidance in exploring their causes."""

toolchain = {'name': 'foss', 'version': '2015a'}
toolchainopts = {"usempi": True}

sources = [SOURCELOWER_TAR_GZ]
source_urls = ['http://apps.fz-juelich.de/scalasca/releases/scalasca/%(version)s/dist']

dependencies = [
('Cube', '4.3'),
('OTF2', '1.5.1'),
]

sanity_check_paths = {
'files': ["bin/scalasca", ("lib64/libpearl.replay.a", "lib/libpearl.replay.a")],
'dirs': [],
}

moduleclass = 'perf'
45 changes: 45 additions & 0 deletions easybuild/easyconfigs/s/Score-P/Score-P-1.4-foss-2015a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# This is an easyconfig file for EasyBuild, see https://github.com/hpcugent/easybuild
# Copyright:: Copyright 2013 Juelich Supercomputing Centre, Germany
# Authors:: Bernd Mohr <b.mohr@fz-juelich.de>
# License:: New BSD
#
# This work is based from experiences from the UNITE project
# http://apps.fz-juelich.de/unite/
##
# make sure we don't fall back to the ConfigureMake easyblock
easyblock = 'EB_Score_minus_P'

name = 'Score-P'
version = '1.4'

homepage = 'http://www.score-p.org'
description = """The Score-P measurement infrastructure is a highly scalable and
easy-to-use tool suite for profiling, event tracing, and online analysis of HPC
applications."""

toolchain = {'name': 'foss', 'version': '2015a'}
toolchainopts = {"usempi": True}

# http://www.vi-hps.org/upload/packages/scorep/scorep-1.2.1.tar.gz
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

drop comment

sources = ["scorep-%(version)s.tar.gz"]
source_urls = ['http://www.vi-hps.org/upload/packages/scorep/']

# compiler toolchain depencies
dependencies = [
('binutils', '2.25', '', ('GCC', '4.9.2')),
('Cube', '4.3'),
('OPARI2', '1.1.2'),
('OTF2', '1.5.1'),
('PAPI', '5.4.0'),
('PDT', '3.20'),
]

maxparallel = 1

sanity_check_paths = {
'files': ["bin/scorep", "include/scorep/SCOREP_User.h",
("lib64/libscorep_adapter_mpi_event.a", "lib/libscorep_adapter_mpi_event.a")],
'dirs': [],
}

moduleclass = 'perf'