- Fixed a bug in the finalizer of
ClusterFunctionsMulticore
.
- Fixed a bug in
addExperiments()
in combination with combination method"bind"
and repls > 1 where experiments have been duplicated. addExperiments()
now also accepts a vector of replications (instead of a single scalar value) for argumentrepls
.- Improved handling of jobs in
ClusterFunctionsSlurm
. - Fixed a bug in
waitForJobs()
- Fixed some assertions.
- Maintenance update.
batchMap()
now supports unnamedmore.args
.- Exports are now assigned with
delayedAssign()
. - Fix an option in the LSF template.
- Maintenance release for R-4.0.0.
- Moved
data.table
fromDepends
toImports
. User scripts might need to explicitly attachdata.table
vialibrary()
now. - Fixes for
ClusterFunctionsMulticore
. - Removed a workaround for
system2()
for R-devel (to be released as R-4.0.0). - New configuration option
compress
to select the compression algorithm (passed down tosaveRDS()
).
- Removed deprecated function
chunkIds()
. - New default for argument
fs.timeout
in the cluster function constructor is0
(wasNA
before). - Fixed a unit test for OSX.
- Improved stability and documentation.
- Fixed memory usage calculation.
- Exported functions
findConfFile()
andfindTemplateFile()
. - Dropped support for providing a template file directly as string. A valid file is now always required.
- Fixed writing to
TMPDIR
instead of the R session's temporary directory.
- RDS files are explicitly stored in version 2 to ensure backward compatibility with R versions prior to 3.5.0.
- Package
fs
is now used internally for all file system operations. - Support for per-site configuration files and templates to be set up by system administrators.
- The print of
getStatus()
now includes a time stamp. chunk()
now optionally shuffles the ids before chunking.- Support for setting per-job resources in
submitJobs()
. - Example templates now include resources for
blas.threads
andomp.threads
. - Some bug fixes regarding read-only registries.
- Renamed column "memory" in the status table to "mem.used" to avoid name clashes with the resource specification.
- Exported function
assertRegistry()
. - New function
unwrap()
as alias toflatten()
. The latter causes a name clash with packagepurrr
and will be deprecated in a future version. - Registries now contain a unique hash which is updated each time the registry is altered. Can be utilized to invalidate caches, e.g. the cache of knitr.
- 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.