- Renamed column "memory" in the status table to "mem.used" to avoid name clashes with the resource specification.
- Added a workaround for a test to be compatible with testthat v2.0.0.
- Better and more customizable handling of expired jobs in
waitForJobs()
. - Package
foreach
is now supported for nested parallelization as an alternative toparallelMap
. - Depreciated argument flatten has been removed.
- New helper function
flatten()
to manually unnest/unwrap lists in data frames. - Removed functions
getProblemIds()
andgetAlgorithmIds()
. Instead, you can just accessreg$problems
orreg$algorithms
, respectively. - The number of the maximum concurrent jobs can now also be controlled via setting resources.
- Internal data base changes to speed up some operations.
Old registries are updated on first load by
loadRegistry()
. - Fixed a bug where the sleep mechanism between queries was not working.
- Fixed a bug where submit errors on SLURM and TORQUE were not detected as temporary.
- Fixed a bug where the wrong problem was retrieved from the cache. This was only triggered for chunked jobs in
combination with an
ExperimentRegistry
.
- Added a missing routine to upgrade registries created with batchtools prior to v0.9.3.
- Fixed a bug where the registry could not be synced if jobs failed during initialization (#135).
- The sleep duration for
waitForJobs()
andsubmitJobs()
can now be set via the configuration file. - A new heuristic will try to detect if the registry has been altered by a simultaneously running R session. If this is detected, the registry in the current session will be set to a read-only state.
waitForJobs()
has been reworked to allow control over the heuristic to detect expired jobs. Jobs are treated as expired if they have been submitted but are not detected on the system forexpire.after
iterations (default 3 iterations, before 1 iteration).- New argument
writeable
forloadRegistry()
to allow loading registries explicitly as read-only. - Removed argument
update.paths
fromloadRegistry()
. Paths are always updated, but the registry on the file system remains unchanged unless loaded in read-write mode. ClusterFunctionsSlurm
now come with an experimental nodename argument. If set, all communication with the master is handled via SSH which effectively allows you to submit jobs from your local machine instead of the head node. Note that mounting the file system (e.g., via SSHFS) is mandatory.
- Fixed handling of
file.dir
with special chars like whitespace. - All backward slashes will now be converted to forward slashes on windows.
- Fixed order of arguments in
findExperiments()
(argumentids
is now first). - Removed code to upgrade registries created with versions prior to v0.9.0 (first CRAN release).
addExperiments()
now warns if a design is passed asdata.frame
with factor columns andstringsAsFactors
isTRUE
.- Added functions
setJobNames()
andgetJobNames()
to control the name of jobs on batch systems. Templates should be adapted to usejob.name
instead ofjob.hash
for naming. - Argument
flatten
ofgetJobResources()
,getJobPars()
andgetJobTable()
is deprecated and will be removed. Future versions of the functions will behave likeflatten
is set toFALSE
explicitly. Single resources/parameters must be extracted manually (or withtidyr::unnest()
).
- Running jobs now are also included while querying for status "started". This affects
findStarted()
,findNotStarted()
andgetStatus()
. findExperiments()
now performs an exact string match (instead of matching substrings) for patterns specified viaprob.name
andalgo.name
. For substring matching, useprob.pattern
oralgo.pattern
, respectively.- Changed arguments for
reduceResultsDataTable()
- Removed
fill
, now is alwaysTRUE
- Introduced
flatten
to control if the result should be represented as a column of lists or flattened as separate columns. Defaults to a backward-compatible heuristic, similar togetJobPars
.
- Removed
- Improved heuristic to lookup template files. Templates shipped with the package can now be used by providing just the file name (w/o extension).
- Updated CITATION
- Full support for array jobs on Slurm and TORQUE.
- Array jobs have been disabled for SGE and LSF (due to missing information about the output format) but will be re-enable in a future release.
Note that the variable
n.array.jobs
has been removed fromJobCollection
in favor of the new variablearray.jobs
(logical). findExperiments()
now has two additional arguments to match using regular expressions. The possibility to prefix a string with "~" to enable regular expression matching has been removed.- New function
batchReduce()
. - New function
estimateRuntimes()
. - New function
removeRegistry()
. - Missing result files are now handled more consistently, raising an exception in its defaults if the result is not available.
The argument
missing.val
has been added toreduceResultsList()
andreduceResultsDataTable()
and removed fromloadResult()
andbatchMapResults()
. - Timestamps are now stored with sub-second accuracy.
- Renamed Torque to TORQUE. This especially affects the constructor
makeClusterFunctionsTorque
which now must be called viamakeClusterFunctionsTORQUE()
chunkIds()
has been deprecated. Usechunk()
,lpt()
orbinpack()
instead.- Fixed listing of jobs for
ClusterFunctionsLSF
andClusterFunctionsOpenLava
(thanks to @phaverty). - Job hashes are now prefixed with the literal string 'job' to ensure they start with a letter as required by some SGE systems.
- Fixed handling of
NULL
results inreduceResultsList()
- Fixed key lookup heuristic join functions.
- Fixed a bug where
getJobTable()
returneddifftimes
with the wrong unit (e.g., in minutes instead of seconds). - Deactivated swap allocation for
ClusterFunctionsDocker
. - The package is now more patient while communicating with the scheduler or file system by using a timeout-based approach. This should make the package more reliable and robust under heavy load.
Initial CRAN release. See the vignette for a brief comparison with BatchJobs/BatchExperiments.