Removed references to BlueGene/Q in docs and comments
This commit is contained in:
parent
f128e7de54
commit
1dba0ce81b
@ -695,11 +695,11 @@ Here is an example of a much longer spec than we've seen thus far:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
mpileaks @1.2:1.4 %gcc@4.7.5 +debug -qt arch=bgq_os ^callpath @1.1 %gcc@4.7.2
|
||||
mpileaks @1.2:1.4 %gcc@4.7.5 +debug -qt target=x86_64 ^callpath @1.1 %gcc@4.7.2
|
||||
|
||||
If provided to ``spack install``, this will install the ``mpileaks``
|
||||
library at some version between ``1.2`` and ``1.4`` (inclusive),
|
||||
built using ``gcc`` at version 4.7.5 for the Blue Gene/Q architecture,
|
||||
built using ``gcc`` at version 4.7.5 for a generic ``x86_64`` architecture,
|
||||
with debug options enabled, and without Qt support. Additionally, it
|
||||
says to link it with the ``callpath`` library (which it depends on),
|
||||
and to build callpath with ``gcc`` 4.7.2. Most specs will not be as
|
||||
|
@ -48,8 +48,8 @@ platform, all on the command line.
|
||||
# Add compiler flags using the conventional names
|
||||
$ spack install mpileaks@1.1.2 %gcc@4.7.3 cppflags="-O3 -floop-block"
|
||||
|
||||
# Cross-compile for a different architecture with arch=
|
||||
$ spack install mpileaks@1.1.2 arch=bgqos_0
|
||||
# Cross-compile for a different micro-architecture with target=
|
||||
$ spack install mpileaks@1.1.2 target=icelake
|
||||
|
||||
Users can specify as many or few options as they care about. Spack
|
||||
will fill in the unspecified values with sensible defaults. The two listed
|
||||
|
@ -21,47 +21,48 @@
|
||||
|
||||
def index_by(objects, *funcs):
|
||||
"""Create a hierarchy of dictionaries by splitting the supplied
|
||||
set of objects on unique values of the supplied functions.
|
||||
Values are used as keys. For example, suppose you have four
|
||||
objects with attributes that look like this::
|
||||
set of objects on unique values of the supplied functions.
|
||||
|
||||
a = Spec(name="boost", compiler="gcc", arch="bgqos_0")
|
||||
b = Spec(name="mrnet", compiler="intel", arch="chaos_5_x86_64_ib")
|
||||
c = Spec(name="libelf", compiler="xlc", arch="bgqos_0")
|
||||
d = Spec(name="libdwarf", compiler="intel", arch="chaos_5_x86_64_ib")
|
||||
Values are used as keys. For example, suppose you have four
|
||||
objects with attributes that look like this::
|
||||
|
||||
list_of_specs = [a,b,c,d]
|
||||
index1 = index_by(list_of_specs, lambda s: s.arch,
|
||||
lambda s: s.compiler)
|
||||
index2 = index_by(list_of_specs, lambda s: s.compiler)
|
||||
a = Spec("boost %gcc target=skylake")
|
||||
b = Spec("mrnet %intel target=zen2")
|
||||
c = Spec("libelf %xlc target=skylake")
|
||||
d = Spec("libdwarf %intel target=zen2")
|
||||
|
||||
``index1`` now has two levels of dicts, with lists at the
|
||||
leaves, like this::
|
||||
list_of_specs = [a,b,c,d]
|
||||
index1 = index_by(list_of_specs, lambda s: str(s.target),
|
||||
lambda s: s.compiler)
|
||||
index2 = index_by(list_of_specs, lambda s: s.compiler)
|
||||
|
||||
{ 'bgqos_0' : { 'gcc' : [a], 'xlc' : [c] },
|
||||
'chaos_5_x86_64_ib' : { 'intel' : [b, d] }
|
||||
}
|
||||
``index1`` now has two levels of dicts, with lists at the
|
||||
leaves, like this::
|
||||
|
||||
And ``index2`` is a single level dictionary of lists that looks
|
||||
like this::
|
||||
{ 'zen2' : { 'gcc' : [a], 'xlc' : [c] },
|
||||
'skylake' : { 'intel' : [b, d] }
|
||||
}
|
||||
|
||||
{ 'gcc' : [a],
|
||||
'intel' : [b,d],
|
||||
'xlc' : [c]
|
||||
}
|
||||
And ``index2`` is a single level dictionary of lists that looks
|
||||
like this::
|
||||
|
||||
If any elemnts in funcs is a string, it is treated as the name
|
||||
of an attribute, and acts like getattr(object, name). So
|
||||
shorthand for the above two indexes would be::
|
||||
{ 'gcc' : [a],
|
||||
'intel' : [b,d],
|
||||
'xlc' : [c]
|
||||
}
|
||||
|
||||
index1 = index_by(list_of_specs, 'arch', 'compiler')
|
||||
index2 = index_by(list_of_specs, 'compiler')
|
||||
If any elements in funcs is a string, it is treated as the name
|
||||
of an attribute, and acts like getattr(object, name). So
|
||||
shorthand for the above two indexes would be::
|
||||
|
||||
You can also index by tuples by passing tuples::
|
||||
index1 = index_by(list_of_specs, 'arch', 'compiler')
|
||||
index2 = index_by(list_of_specs, 'compiler')
|
||||
|
||||
index1 = index_by(list_of_specs, ('arch', 'compiler'))
|
||||
You can also index by tuples by passing tuples::
|
||||
|
||||
Keys in the resulting dict will look like ('gcc', 'bgqos_0').
|
||||
index1 = index_by(list_of_specs, ('target', 'compiler'))
|
||||
|
||||
Keys in the resulting dict will look like ('gcc', 'skylake').
|
||||
"""
|
||||
if not funcs:
|
||||
return objects
|
||||
|
@ -201,7 +201,7 @@ class Compiler(object):
|
||||
fc_names = []
|
||||
|
||||
# Optional prefix regexes for searching for this type of compiler.
|
||||
# Prefixes are sometimes used for toolchains, e.g. 'powerpc-bgq-linux-'
|
||||
# Prefixes are sometimes used for toolchains
|
||||
prefixes = []
|
||||
|
||||
# Optional suffix regexes for searching for this type of compiler.
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
$ spack install mpileaks ^openmpi @1.2:1.4 +debug %intel @12.1 =bgqos_0
|
||||
$ spack install mpileaks ^openmpi @1.2:1.4 +debug %intel @12.1 target=zen
|
||||
0 1 2 3 4 5 6
|
||||
|
||||
The first part of this is the command, 'spack install'. The rest of the
|
||||
|
Loading…
Reference in New Issue
Block a user