Skip to content

Subtoolchain searching #1306

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

Merged
merged 157 commits into from
Nov 9, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
157 commits
Select commit Hold shift + click to select a range
9683cda
Added SUBTOOLCHAIN names to intel-para toolchain
Jun 17, 2015
49e846b
First effort at searching by subtoolchains...unfinished but number of…
Jun 18, 2015
ff4201c
Bit more added to replace_toolchain_with_hierarchy
Jun 18, 2015
f4f6dd3
use minimally_resolve_dependencies from main.py
boegel Jun 18, 2015
aed1020
Merge pull request #3 from boegel/subtoolchain_searching
Jun 18, 2015
90edc95
Some comments
Jun 18, 2015
819ef97
Merge branch 'subtoolchain_searching' of github.com:ocaisa/easybuild-…
Jun 18, 2015
9eb446d
remove unused build_specs
boegel Jun 18, 2015
53252e0
Merge pull request #4 from boegel/subtoolchain_searching
Jun 18, 2015
b232830
More commenting
Jun 18, 2015
b9f94ee
Merge branch 'subtoolchain_searching' of github.com:ocaisa/easybuild-…
Jun 18, 2015
5878231
make EasyConfig instances comparable and hashable
boegel Jun 18, 2015
23c224f
Merge pull request #5 from boegel/subtoolchain_searching
Jun 18, 2015
40655cc
Start building the hierarchy
Jun 18, 2015
aaa9fb7
Merge branch 'subtoolchain_searching' of github.com:ocaisa/easybuild-…
Jun 18, 2015
b1a56c1
More edits for hierarchy
Jun 18, 2015
76c8236
construct subtoolchains dict via search_toolchain, use nub
boegel Jun 18, 2015
858fdb6
Merge pull request #6 from boegel/subtoolchain_searching
Jun 18, 2015
e7ebc15
Complete initial subtoolchain support
Jun 18, 2015
0ae53db
Update comment
Jun 18, 2015
36a420a
Added some resilience and further checking
Jun 19, 2015
8301d54
Fixed missing logic in if statement
Jun 19, 2015
5568232
Fixed bad logic for subtoolchains
Jun 19, 2015
488948f
More logic
Jun 19, 2015
47d5e85
Check that everything appears in the final list
Jun 19, 2015
4b91fe3
Final logic...now to test
Jun 19, 2015
02816d8
Edit
Jun 19, 2015
fcfeb1d
Fixed some errors
Jun 19, 2015
f70ccbd
Fixed some bugs
Jun 19, 2015
93c15ef
Bugs
Jun 19, 2015
c616f79
Print bug
Jun 19, 2015
cc3dc4a
Bug fixes
Jun 19, 2015
3407118
enable 'debug mode', fix KeyError issues
boegel Jun 19, 2015
95b5c6d
Merge pull request #7 from boegel/subtoolchain_searching
Jun 19, 2015
d298c2d
Unknown changes!!
Jun 19, 2015
6b73c5a
Merge branch 'subtoolchain_searching' of github.com:ocaisa/easybuild-…
Jun 19, 2015
5f672f7
fix non-hashable dict issue
boegel Jun 19, 2015
d00c1bb
Merge pull request #8 from boegel/subtoolchain_searching
Jun 19, 2015
9ca74fe
Merge branch 'subtoolchain_searching' of github.com:ocaisa/easybuild-…
Jun 19, 2015
517894e
fix issue with next
boegel Jun 19, 2015
1971d12
Merge pull request #9 from boegel/subtoolchain_searching
Jun 19, 2015
dd81f06
Merge branch 'subtoolchain_searching' of github.com:ocaisa/easybuild-…
Jun 19, 2015
2c8f0e1
Forgot to add resolved stuff to our list
Jun 19, 2015
78c2a6c
moar fixes
boegel Jun 19, 2015
79f8351
Merge branch 'subtoolchain_searching' of github.com:ocaisa/easybuild-…
boegel Jun 19, 2015
7f34a5d
Merge pull request #10 from boegel/subtoolchain_searching
Jun 19, 2015
a405d60
moar, MOAR
boegel Jun 19, 2015
9462e9b
Merge pull request #11 from boegel/subtoolchain_searching
Jun 19, 2015
bde76ee
Can print out correct files
Jun 19, 2015
e122431
don't do parse_only=True
boegel Jun 19, 2015
28ce7cf
Merge pull request #12 from boegel/subtoolchain_searching
Jun 19, 2015
5fcca95
works for goalf -> GCC
boegel Jun 19, 2015
a297a48
Reverse the order
Jun 19, 2015
f8dc095
Added support for dummy toolchain in toolchain list
Jun 22, 2015
dbcaf20
undo something that @ocaisa has already tackled
boegel Jun 22, 2015
ce2e049
Merge pull request #13 from boegel/subtoolchain_searching
Jun 22, 2015
63a373c
Add function to create toolchain hierarchy just from name/version of …
Jun 22, 2015
3bd91c8
Ch
Jun 22, 2015
b52e019
k
Jun 22, 2015
6e78b0b
Merge branch 'subtoolchain_searching' of github.com:ocaisa/easybuild-…
Jun 22, 2015
a95edcd
Fix bugs
Jun 22, 2015
326ddec
fixes in get_toolchain_hierarchy
boegel Jun 22, 2015
d830774
Merge branch 'subtoolchain_searching' of github.com:ocaisa/easybuild-…
boegel Jun 22, 2015
8cf861d
Merge pull request #14 from boegel/subtoolchain_searching
Jun 22, 2015
1d44f45
Use newly created function and do not return duplicates
Jun 22, 2015
48479dc
First pass at inherently supporting minimal dep resolution
Jun 23, 2015
17d3ab4
Some bug fixes
Jun 23, 2015
9070b6c
Bug fixed
Jun 23, 2015
e4ecd62
Minimise changes. Create new easyconf with updated dependencies and d…
Jun 25, 2015
3747817
Fixed some bugs
Jun 25, 2015
1fdff0e
Update to minimise changes to original code
Jun 25, 2015
017abee
Next stage done but update dependencies not working completely (does …
Jun 26, 2015
557e162
Fixed bug
Jun 26, 2015
982ed6d
Cleaned up a bit
Jun 26, 2015
4983056
Tidy up
Jun 26, 2015
03822d0
More tidying
Jun 26, 2015
e7d12f3
More tidying
Jun 26, 2015
a511872
Added the build options
Jun 26, 2015
95d48f5
Typo
Jun 26, 2015
fe505a7
Removed exit for testing
Jun 26, 2015
9a4f567
Fixed option
Jun 26, 2015
2d4f2c0
Fixed deprecated error calls
Jun 26, 2015
304a895
Merge branch 'develop' of github.com:hpcugent/easybuild-framework int…
Jul 3, 2015
0843dc8
Fixed typo
Jul 3, 2015
854d8a3
Fixed bug for the case where dummy is not included in the dependencie…
Jul 3, 2015
13632ba
Changed a log to an error since it would cause logic problems otherwise
Jul 3, 2015
2ef2d09
Updated all toolchains with their subtoolchains and tidied them up.
Jul 3, 2015
d8d32e4
Typo
Jul 3, 2015
da5a782
Missed a correction
Jul 3, 2015
db1d78e
Give some parsable output for where the original easyconfig came from
Jul 9, 2015
8615d74
Merge branch 'develop' into subtoolchain_searching
boegel Jul 9, 2015
74ac45d
Merge pull request #15 from boegel/subtoolchain_searching
Jul 10, 2015
4eb3759
Update cgmpolf.py
Sep 21, 2015
c69de29
Update cgmpolf.py
Sep 21, 2015
48255a3
Update cgmpolf.py
Sep 21, 2015
6368766
Merge branch 'develop' into subtoolchain_searching
Sep 22, 2015
197ab66
Merge branch 'subtoolchain_searching' of github.com:ocaisa/easybuild-…
Sep 22, 2015
d3283ca
Merge branch 'develop' of github.com:ocaisa/easybuild-framework into …
Sep 22, 2015
c0289b9
Added newlines where necessary
Sep 22, 2015
f4a4a79
Fix key error bug
Sep 22, 2015
0e3f517
Use a single directory for all generated easyconfigsx
Sep 22, 2015
f3f55fb
Only add dummy to the toolchain hierarchy if requested on the command…
Sep 22, 2015
2e64f5b
Attempted to add support for HMNS and subtoolchain searching. It's co…
Sep 23, 2015
48ad4f2
Turns out the error is in an easyconfig and the setup works correctly…
Sep 25, 2015
b174a35
Remove line
Sep 25, 2015
eada415
Add line
Sep 25, 2015
b2b5e51
Somtimes dummy has a version, need to allow for this in the hierarchy…
Oct 19, 2015
c70a720
Merge branch 'develop' of github.com:ocaisa/easybuild-framework into …
Oct 20, 2015
14c0940
Merge branch 'develop' of github.com:ocaisa/easybuild-framework into …
Oct 20, 2015
d822c80
Add a simple cache mechanism to the function that generates the toolc…
Oct 28, 2015
2f07d13
Removed the simple part :P
Oct 28, 2015
d139aae
Set up the cache arguments early and avoid repetition
Oct 28, 2015
00d9733
Fix an unresolved reference and a typo
Oct 28, 2015
ceb8b07
Remove unnecessary loop
Oct 28, 2015
ab66500
add test for EasyConfig comparison & hashing + add __ne__ definition …
boegel Oct 29, 2015
1c66429
include comment w.r.t. implementing both __eq__ and __ne__
boegel Oct 29, 2015
35ef4aa
improve implementation of EasyConfig.__hash__
boegel Oct 30, 2015
f236bc9
Merge pull request #17 from boegel/subtoolchain_searching
Oct 30, 2015
71a60cd
clean up get_toolchain_hierarchy implementation + add tests
boegel Oct 30, 2015
482e0a3
get rid of log.error
boegel Oct 30, 2015
ba6ac6a
Merge pull request #18 from boegel/subtoolchain_searching
Oct 30, 2015
a384397
Merge branch 'develop' into subtoolchain_searching
boegel Oct 30, 2015
6bf416c
Merge pull request #19 from boegel/subtoolchain_searching
Oct 30, 2015
171424f
Fix a format problem and restrict minimal resolution just to dependen…
Oct 30, 2015
599bb7a
Merge branch 'subtoolchain_searching' of github.com:ocaisa/easybuild-…
Oct 30, 2015
2923c04
pep8
Oct 30, 2015
f7b63e3
cleanup implementation of (deep_)refresh_dependencies and robot_find_…
boegel Oct 30, 2015
01525da
Extract module availability function
Oct 30, 2015
fa43c95
Merge pull request #20 from boegel/subtoolchain_searching
Oct 30, 2015
09ae683
Fix unresolved refs
Oct 30, 2015
625a3d1
REmove unref-ed var
Oct 30, 2015
379061e
rename 'unprocessed' to 'easyconfigs' in resolve_dependencies
boegel Oct 30, 2015
118f8d3
fix test that broke due to disabling templating when dumping dependen…
boegel Oct 30, 2015
3767d01
refactor find_resolved_modules and find_minimally_resolved_modules
boegel Oct 30, 2015
ab6bcb0
Merge branch 'subtoolchain_searching' of github.com:ocaisa/easybuild-…
boegel Oct 30, 2015
32698b7
remove printing, fix style in main.py
boegel Oct 30, 2015
e7ee321
Merge pull request #21 from boegel/subtoolchain_searching
Oct 30, 2015
4f7ee7f
Line too long
Oct 30, 2015
a4b0366
add test for find_resolved_modules
boegel Nov 4, 2015
76aefd9
don't modify argument passed to robot_find_minimal_easyconfig_for_dep…
boegel Nov 7, 2015
4aa6a3c
add unit test for robot_find_minimal_easyconfig_for_dependency
boegel Nov 7, 2015
4a13d90
fix bugs in find_minimally_resolved_modules
boegel Nov 7, 2015
dcf4461
add unit test for find_minimally_resolved_modules
boegel Nov 7, 2015
5581adc
add extra unit test for find_minimally_resolved_modules with also con…
boegel Nov 7, 2015
186d7b5
also define full_mod_name and short_mod_name keys in toolchain dict
boegel Nov 7, 2015
ec64a75
fix issues in find_minimally_resolved_modules + rename --use-any-exis…
boegel Nov 7, 2015
111ed29
add new test easyconfig required by tests checking enabling minimal t…
boegel Nov 7, 2015
aec6b0b
reverse order of get_toolchain_hierarchy result
boegel Nov 7, 2015
dbbf611
require use of --experimental in find_minimally_resolved_modules
boegel Nov 8, 2015
07a052e
allow use of experimental code in robot tests
boegel Nov 8, 2015
e5832b2
Merge branches 'develop' and 'subtoolchain_searching' of github.com:o…
Nov 8, 2015
0d6f431
Merge pull request #22 from boegel/subtoolchain_searching
Nov 8, 2015
cd898d7
define SUBTOOLCHAIN for toolchains where it wasn't yet
boegel Nov 9, 2015
df90823
use GCC as subtoolchain for gcccuda toolchain
boegel Nov 9, 2015
6e752a5
Merge pull request #23 from boegel/subtoolchain_searching
Nov 9, 2015
89fcbed
fix typo
boegel Nov 9, 2015
f8f1bb8
Merge pull request #24 from boegel/subtoolchain_searching
Nov 9, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions easybuild/framework/easyconfig/easyconfig.py
Original file line number Diff line number Diff line change
Expand Up @@ -740,6 +740,33 @@ def get(self, key, default=None):
else:
return default

# *both* __eq__ and __ne__ must be implemented for == and != comparisons to work correctly
# see also https://docs.python.org/2/reference/datamodel.html#object.__eq__
def __eq__(self, ec):
"""Is this EasyConfig instance equivalent to the provided one?"""
return self.asdict() == ec.asdict()

def __ne__(self, ec):
"""Is this EasyConfig instance equivalent to the provided one?"""
return self.asdict() != ec.asdict()

def __hash__(self):
"""Return hash value for a hashable representation of this EasyConfig instance."""
def make_hashable(val):
"""Make a hashable value of the given value."""
if isinstance(val, list):
val = tuple([make_hashable(x) for x in val])
elif isinstance(val, dict):
val = tuple([(key, make_hashable(val)) for (key, val) in sorted(val.items())])
return val

lst = []
for (key, val) in sorted(self.asdict().items()):
lst.append((key, make_hashable(val)))

# a list is not hashable, but a tuple is
return hash(tuple(lst))

def asdict(self):
"""
Return dict representation of this EasyConfig instance.
Expand Down
3 changes: 2 additions & 1 deletion easybuild/framework/easyconfig/format/format.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,8 @@
DEPENDENCY_PARAMETERS = ['builddependencies', 'dependencies', 'hiddendependencies']

# values for these keys will not be templated in dump()
EXCLUDED_KEYS_REPLACE_TEMPLATES = ['description', 'easyblock', 'homepage', 'name', 'toolchain', 'version']
EXCLUDED_KEYS_REPLACE_TEMPLATES = ['description', 'easyblock', 'homepage', 'name', 'toolchain', 'version'] \
+ DEPENDENCY_PARAMETERS

# ordered groups of keys to obtain a nice looking easyconfig file
GROUPED_PARAMS = [
Expand Down
347 changes: 318 additions & 29 deletions easybuild/framework/easyconfig/tools.py

Large diffs are not rendered by default.

7 changes: 4 additions & 3 deletions easybuild/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
from easybuild.framework.easyconfig.tools import alt_easyconfig_paths, dep_graph, det_easyconfig_paths
from easybuild.framework.easyconfig.tools import get_paths_for, parse_easyconfigs, review_pr, skip_available
from easybuild.framework.easyconfig.tweak import obtain_ec_for, tweak
from easybuild.tools.config import get_repository, get_repositorypath
from easybuild.tools.config import get_repository, get_repositorypath, build_option
from easybuild.tools.filetools import adjust_permissions, cleanup, write_file
from easybuild.tools.options import process_software_build_specs
from easybuild.tools.robot import det_robot_path, dry_run, resolve_dependencies, search_easyconfigs
Expand Down Expand Up @@ -283,7 +283,7 @@ def main(args=None, logfile=None, do_build=None, testing=False):

# dry_run: print all easyconfigs and dependencies, and whether they are already built
if options.dry_run or options.dry_run_short:
txt = dry_run(easyconfigs, short=not options.dry_run, build_specs=build_specs)
txt = dry_run(easyconfigs, short=not options.dry_run)
print_msg(txt, log=_log, silent=testing, prefix=False)

# cleanup and exit after dry run, searching easyconfigs or submitting regression test
Expand All @@ -303,7 +303,8 @@ def main(args=None, logfile=None, do_build=None, testing=False):
if len(easyconfigs) > 0:
if options.robot:
print_msg("resolving dependencies ...", log=_log, silent=testing)
ordered_ecs = resolve_dependencies(easyconfigs, build_specs=build_specs)
ordered_ecs = resolve_dependencies(easyconfigs, minimal_toolchains=build_option('minimal_toolchains'),
use_existing_modules=build_option('use_existing_modules'))
else:
ordered_ecs = easyconfigs
else:
Expand Down
1 change: 1 addition & 0 deletions easybuild/toolchains/cgmpich.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,4 @@
class Cgmpich(ClangGcc, Mpich):
"""Compiler toolchain with Clang, GFortran and MPICH."""
NAME = 'cgmpich'
SUBTOOLCHAIN = ClangGcc.NAME
2 changes: 2 additions & 0 deletions easybuild/toolchains/cgmpolf.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,5 @@
class Cgmpolf(Cgmpich, OpenBLAS, ScaLAPACK, Fftw):
"""Compiler toolchain with Clang, GFortran, MPICH, OpenBLAS, ScaLAPACK and FFTW."""
NAME = 'cgmpolf'
SUBTOOLCHAIN = Cgmpich.NAME

1 change: 1 addition & 0 deletions easybuild/toolchains/cgmvapich2.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,4 @@
class Cgmvapich2(ClangGcc, Mvapich2):
"""Compiler toolchain with Clang, GFortran and MVAPICH2."""
NAME = 'cgmvapich2'
SUBTOOLCHAIN = ClangGcc.NAME
1 change: 1 addition & 0 deletions easybuild/toolchains/cgmvolf.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,4 @@
class Cgmvolf(Cgmvapich2, OpenBLAS, ScaLAPACK, Fftw):
"""Compiler toolchain with Clang, GFortran, MVAPICH2, OpenBLAS, ScaLAPACK and FFTW."""
NAME = 'cgmvolf'
SUBTOOLCHAIN = Cgmvapich2.NAME
1 change: 1 addition & 0 deletions easybuild/toolchains/cgompi.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,4 @@
class Cgompi(ClangGcc, OpenMPI):
"""Compiler toolchain with Clang, GFortran and OpenMPI."""
NAME = 'cgompi'
SUBTOOLCHAIN = ClangGcc.NAME
1 change: 1 addition & 0 deletions easybuild/toolchains/cgoolf.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,4 @@
class Cgoolf(Cgompi, OpenBLAS, ScaLAPACK, Fftw):
"""Compiler toolchain with Clang, GFortran, OpenMPI, OpenBLAS, ScaLAPACK and FFTW."""
NAME = 'cgoolf'
SUBTOOLCHAIN = Cgompi.NAME
2 changes: 2 additions & 0 deletions easybuild/toolchains/clanggcc.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
import os
from easybuild.toolchains.compiler.clang import Clang
from easybuild.toolchains.compiler.gcc import Gcc
from easybuild.tools.toolchain import DUMMY_TOOLCHAIN_NAME


TC_CONSTANT_CLANGGCC = "ClangGCC"
Expand All @@ -44,3 +45,4 @@ class ClangGcc(Clang, Gcc):
NAME = 'ClangGCC'
COMPILER_MODULE_NAME = ['Clang', 'GCC']
COMPILER_FAMILY = TC_CONSTANT_CLANGGCC
SUBTOOLCHAIN = DUMMY_TOOLCHAIN_NAME
2 changes: 2 additions & 0 deletions easybuild/toolchains/craycce.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,13 @@
from easybuild.toolchains.fft.crayfftw import CrayFFTW
from easybuild.toolchains.linalg.libsci import LibSci
from easybuild.toolchains.mpi.craympich import CrayMPICH
from easybuild.tools.toolchain import DUMMY_TOOLCHAIN_NAME


class CrayCCE(CrayPECray, CrayMPICH, LibSci, CrayFFTW):
"""Compiler toolchain for Cray Programming Environment for Cray Compiling Environment (CCE) (PrgEnv-cray)."""
NAME = 'CrayCCE'
SUBTOOLCHAIN = DUMMY_TOOLCHAIN_NAME

def prepare(self, *args, **kwargs):
"""Prepare to use this toolchain; marked as experimental."""
Expand Down
2 changes: 2 additions & 0 deletions easybuild/toolchains/craygnu.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,13 @@
from easybuild.toolchains.fft.crayfftw import CrayFFTW
from easybuild.toolchains.linalg.libsci import LibSci
from easybuild.toolchains.mpi.craympich import CrayMPICH
from easybuild.tools.toolchain import DUMMY_TOOLCHAIN_NAME


class CrayGNU(CrayPEGCC, CrayMPICH, LibSci, CrayFFTW):
"""Compiler toolchain for Cray Programming Environment for GCC compilers (PrgEnv-gnu)."""
NAME = 'CrayGNU'
SUBTOOLCHAIN = DUMMY_TOOLCHAIN_NAME

def prepare(self, *args, **kwargs):
"""Prepare to use this toolchain; marked as experimental."""
Expand Down
2 changes: 2 additions & 0 deletions easybuild/toolchains/crayintel.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,13 @@
from easybuild.toolchains.fft.crayfftw import CrayFFTW
from easybuild.toolchains.linalg.libsci import LibSci
from easybuild.toolchains.mpi.craympich import CrayMPICH
from easybuild.tools.toolchain import DUMMY_TOOLCHAIN_NAME


class CrayIntel(CrayPEIntel, CrayMPICH, LibSci, CrayFFTW):
"""Compiler toolchain for Cray Programming Environment for Intel compilers (PrgEnv-intel)."""
NAME = 'CrayIntel'
SUBTOOLCHAIN = DUMMY_TOOLCHAIN_NAME

def prepare(self, *args, **kwargs):
"""Prepare to use this toolchain; marked as experimental."""
Expand Down
8 changes: 4 additions & 4 deletions easybuild/toolchains/foss.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,13 @@
@author: Kenneth Hoste (Ghent University)
"""

from easybuild.toolchains.compiler.gcc import Gcc
from easybuild.toolchains.gompi import Gompi
from easybuild.toolchains.fft.fftw import Fftw
from easybuild.toolchains.linalg.openblas import OpenBLAS
from easybuild.toolchains.linalg.scalapack import ScaLAPACK
from easybuild.toolchains.mpi.openmpi import OpenMPI


class Foss(Gcc, OpenMPI, OpenBLAS, ScaLAPACK, Fftw):
class Foss(Gompi, OpenBLAS, ScaLAPACK, Fftw):
"""Compiler toolchain with GCC, OpenMPI, OpenBLAS, ScaLAPACK and FFTW."""
NAME = 'foss'
SUBTOOLCHAIN = Gompi.NAME

2 changes: 2 additions & 0 deletions easybuild/toolchains/gcc.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,10 @@
"""

from easybuild.toolchains.compiler.gcc import Gcc
from easybuild.tools.toolchain import DUMMY_TOOLCHAIN_NAME


class GccToolchain(Gcc):
"""Simple toolchain with just the GCC compilers."""
NAME = 'GCC'
SUBTOOLCHAIN = DUMMY_TOOLCHAIN_NAME
Copy link
Member

Choose a reason for hiding this comment

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

this should be implied imho, or maybe the default in Toolchain?

Copy link
Member

Choose a reason for hiding this comment

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

nvm, more explicit this way

6 changes: 4 additions & 2 deletions easybuild/toolchains/gcccuda.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,14 @@
@author: Kenneth Hoste (Ghent University)
"""

from easybuild.toolchains.compiler.gcc import Gcc
from easybuild.toolchains.compiler.cuda import Cuda
from easybuild.toolchains.gcc import GccToolchain
from easybuild.tools.toolchain import DUMMY_TOOLCHAIN_NAME


class GccCUDA(Gcc, Cuda):
class GccCUDA(GccToolchain, Cuda):
"""Compiler toolchain with GCC and CUDA."""
NAME = 'gcccuda'

COMPILER_MODULE_NAME = ['GCC', 'CUDA']
SUBTOOLCHAIN = GccToolchain.NAME
6 changes: 3 additions & 3 deletions easybuild/toolchains/gimkl.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,12 @@
@author: Kenneth Hoste (Ghent University)
"""

from easybuild.toolchains.compiler.gcc import Gcc
from easybuild.toolchains.gimpi import Gimpi
from easybuild.toolchains.fft.intelfftw import IntelFFTW
from easybuild.toolchains.mpi.intelmpi import IntelMPI
from easybuild.toolchains.linalg.intelmkl import IntelMKL


class Gimkl(Gcc, IntelMPI, IntelMKL, IntelFFTW):
class Gimkl(Gimpi, IntelMKL, IntelFFTW):
"""Compiler toolchain with GCC, Intel MPI, Intel Math Kernel Library (MKL) and Intel FFTW wrappers."""
NAME = 'gimkl'
SUBTOOLCHAIN = Gimpi.NAME
5 changes: 3 additions & 2 deletions easybuild/toolchains/gimpi.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,11 @@
@author: Kenneth Hoste (Ghent University)
"""

from easybuild.toolchains.compiler.gcc import Gcc
from easybuild.toolchains.gcc import GccToolchain
from easybuild.toolchains.mpi.intelmpi import IntelMPI


class Gimpi(Gcc, IntelMPI):
class Gimpi(GccToolchain, IntelMPI):
"""Compiler toolchain with GCC and Intel MPI."""
NAME = 'gimpi'
SUBTOOLCHAIN = GccToolchain.NAME
7 changes: 4 additions & 3 deletions easybuild/toolchains/gmacml.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,14 @@
@author: Kenneth Hoste (Ghent University)
"""

from easybuild.toolchains.compiler.gcc import Gcc
from easybuild.toolchains.gmvapich2 import Gmvapich2
from easybuild.toolchains.fft.fftw import Fftw
from easybuild.toolchains.linalg.acml import Acml
from easybuild.toolchains.linalg.scalapack import ScaLAPACK
from easybuild.toolchains.mpi.mvapich2 import Mvapich2


class Gmacml(Gcc, Mvapich2, Acml, ScaLAPACK, Fftw):

class Gmacml(Gmvapich2, Acml, ScaLAPACK, Fftw):
"""Compiler toolchain with GCC, MVAPICH2, ACML, ScaLAPACK and FFTW."""
NAME = 'gmacml'
SUBTOOLCHAIN = Gmvapich2.NAME
5 changes: 3 additions & 2 deletions easybuild/toolchains/gmpich.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,11 @@
@author: Kenneth Hoste (Ghent University)
"""

from easybuild.toolchains.compiler.gcc import Gcc
from easybuild.toolchains.gcc import GccToolchain
from easybuild.toolchains.mpi.mpich import Mpich


class Gmpich(Gcc, Mpich):
class Gmpich(GccToolchain, Mpich):
"""Compiler toolchain with GCC and MPICH."""
NAME = 'gmpich'
SUBTOOLCHAIN = GccToolchain.NAME
5 changes: 3 additions & 2 deletions easybuild/toolchains/gmpich2.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,11 @@
@author: Kenneth Hoste (Ghent University)
"""

from easybuild.toolchains.compiler.gcc import Gcc
from easybuild.toolchains.gcc import GccToolchain
from easybuild.toolchains.mpi.mpich2 import Mpich2


class Gmpich2(Gcc, Mpich2):
class Gmpich2(GccToolchain, Mpich2):
"""Compiler toolchain with GCC and MPICH2."""
NAME = 'gmpich2'
SUBTOOLCHAIN = GccToolchain.NAME
6 changes: 3 additions & 3 deletions easybuild/toolchains/gmpolf.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,13 @@
@author: Bart Verleye (University of Auckland)
"""

from easybuild.toolchains.compiler.gcc import Gcc
from easybuild.toolchains.gmpich import Gmpich
from easybuild.toolchains.fft.fftw import Fftw
from easybuild.toolchains.linalg.openblas import OpenBLAS
from easybuild.toolchains.linalg.scalapack import ScaLAPACK
from easybuild.toolchains.mpi.mpich import Mpich


class Gmpolf(Gcc, Mpich, OpenBLAS, ScaLAPACK, Fftw):
class Gmpolf(Gmpich, OpenBLAS, ScaLAPACK, Fftw):
"""Compiler toolchain with GCC, MPICH, OpenBLAS, ScaLAPACK and FFTW."""
NAME = 'gmpolf'
SUBTOOLCHAIN = Gmpich.NAME
5 changes: 3 additions & 2 deletions easybuild/toolchains/gmvapich2.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,11 @@
@author: Kenneth Hoste (Ghent University)
"""

from easybuild.toolchains.compiler.gcc import Gcc
from easybuild.toolchains.gcc import GccToolchain
from easybuild.toolchains.mpi.mvapich2 import Mvapich2


class Gmvapich2(Gcc, Mvapich2):
class Gmvapich2(GccToolchain, Mvapich2):
"""Compiler toolchain with GCC and MVAPICH2."""
NAME = 'gmvapich2'
SUBTOOLCHAIN = GccToolchain.NAME
6 changes: 3 additions & 3 deletions easybuild/toolchains/gmvolf.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,13 @@
@author: Dmitri Gribenko (National Technical University of Ukraine "KPI")
"""

from easybuild.toolchains.compiler.gcc import Gcc
from easybuild.toolchains.gmvapich2 import Gmvapich2
from easybuild.toolchains.fft.fftw import Fftw
from easybuild.toolchains.linalg.openblas import OpenBLAS
from easybuild.toolchains.linalg.scalapack import ScaLAPACK
from easybuild.toolchains.mpi.mvapich2 import Mvapich2


class Gmvolf(Gcc, Mvapich2, OpenBLAS, ScaLAPACK, Fftw):
class Gmvolf(Gmvapich2, OpenBLAS, ScaLAPACK, Fftw):
"""Compiler toolchain with GCC, MVAPICH2, OpenBLAS, ScaLAPACK and FFTW."""
NAME = 'gmvolf'
SUBTOOLCHAIN = Gmvapich2.NAME
2 changes: 2 additions & 0 deletions easybuild/toolchains/gnu.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,10 @@
"""

from easybuild.toolchains.compiler.gcc import Gcc
from easybuild.tools.toolchain import DUMMY_TOOLCHAIN_NAME


class GNU(Gcc):
"""Compiler-only toolchain, including only GCC and binutils."""
NAME = 'GNU'
SUBTOOLCHAIN = DUMMY_TOOLCHAIN_NAME
6 changes: 3 additions & 3 deletions easybuild/toolchains/goalf.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,13 @@
@author: Kenneth Hoste (Ghent University)
"""

from easybuild.toolchains.compiler.gcc import Gcc
from easybuild.toolchains.gompi import Gompi
from easybuild.toolchains.fft.fftw import Fftw
from easybuild.toolchains.linalg.atlas import Atlas
from easybuild.toolchains.linalg.scalapack import ScaLAPACK
from easybuild.toolchains.mpi.openmpi import OpenMPI


class Goalf(Gcc, OpenMPI, Atlas, ScaLAPACK, Fftw):
class Goalf(Gompi, Atlas, ScaLAPACK, Fftw):
"""Compiler toolchain with GCC, OpenMPI, ATLAS, ScaLAPACK and FFTW."""
NAME = 'goalf'
SUBTOOLCHAIN = Gompi.NAME
5 changes: 3 additions & 2 deletions easybuild/toolchains/gompi.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,11 @@
@author: Kenneth Hoste (Ghent University)
"""

from easybuild.toolchains.compiler.gcc import Gcc
from easybuild.toolchains.gcc import GccToolchain
from easybuild.toolchains.mpi.openmpi import OpenMPI


class Gompi(Gcc, OpenMPI):
class Gompi(GccToolchain, OpenMPI):
"""Compiler toolchain with GCC and OpenMPI."""
NAME = 'gompi'
SUBTOOLCHAIN = GccToolchain.NAME
1 change: 1 addition & 0 deletions easybuild/toolchains/gompic.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,4 @@
class Gompic(GccCUDA, OpenMPI):
"""Compiler toolchain with GCC+CUDA and OpenMPI."""
NAME = 'gompic'
SUBTOOLCHAIN = GccCUDA.NAME
6 changes: 3 additions & 3 deletions easybuild/toolchains/goolf.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,13 @@
@author: Kenneth Hoste (Ghent University)
"""

from easybuild.toolchains.compiler.gcc import Gcc
from easybuild.toolchains.gompi import Gompi
from easybuild.toolchains.fft.fftw import Fftw
from easybuild.toolchains.linalg.openblas import OpenBLAS
from easybuild.toolchains.linalg.scalapack import ScaLAPACK
from easybuild.toolchains.mpi.openmpi import OpenMPI


class Goolf(Gcc, OpenMPI, OpenBLAS, ScaLAPACK, Fftw):
class Goolf(Gompi, OpenBLAS, ScaLAPACK, Fftw):
"""Compiler toolchain with GCC, OpenMPI, OpenBLAS, ScaLAPACK and FFTW."""
NAME = 'goolf'
SUBTOOLCHAIN = Gompi.NAME
Loading