Skip to content

parallelbuild

Module for doing parallel builds. This uses a PBS-like cluster. You should be able to submit jobs (which can have dependencies)

Support for PBS is provided via the PbsJob class. If you want you could create other job classes and use them here.

Authors:

  • Toon Willems (Ghent University)
  • Kenneth Hoste (Ghent University)
  • Stijn De Weirdt (Ghent University)

build_easyconfigs_in_parallel(build_command, easyconfigs, output_dir='easybuild-build', prepare_first=True)

Build easyconfigs in parallel by submitting jobs to a batch-queuing system. Return list of jobs submitted.

Argument easyconfigs is a list of easyconfigs which can be built: e.g. they have no unresolved dependencies. This function will build them in parallel by submitting jobs.

PARAMETER DESCRIPTION
build_command

build command to use

easyconfigs

list of easyconfig files

output_dir

output directory

DEFAULT: 'easybuild-build'

prepare_first

prepare by runnning fetch step first for each easyconfig

DEFAULT: True

create_job(job_backend, build_command, easyconfig, output_dir='easybuild-build')

Creates a job to build a single easyconfig.

PARAMETER DESCRIPTION
job_backend

A factory object for querying server parameters and creating actual job objects

build_command

format string for command, full path to an easyconfig file will be substituted in it

easyconfig

easyconfig as processed by process_easyconfig

output_dir

optional output path; --regtest-output-dir will be used inside the job with this variable returns the job

DEFAULT: 'easybuild-build'

prepare_easyconfig(ec)

Prepare for building specified easyconfig (fetch sources)

PARAMETER DESCRIPTION
ec

parsed easyconfig (EasyConfig instance)

submit_jobs(ordered_ecs, cmd_line_opts, testing=False, prepare_first=True)

Submit jobs.

PARAMETER DESCRIPTION
ordered_ecs

list of easyconfigs, in the order they should be processed

cmd_line_opts

list of command line options (in 'longopt=value' form)

testing

If True, skip actual job submission

DEFAULT: False

prepare_first

prepare by runnning fetch step first for each easyconfig

DEFAULT: True