Releases: shikokuchuo/mirai
Releases · shikokuchuo/mirai
CRAN release 0.8.7
server()
anddispatcher()
argument 'asyncdial' is now FALSE by default, causing these functions to exit if a connection is not immediately available. This means that for distributed computing purposes,dameons()
should be called beforeserver()
is launched on remote resources, or elseserver(asyncdial = TRUE)
allows servers to wait for a connection.launch_server()
now parses the passed URL for correctness before attempting to launch a server, producing an error if not valid.
CRAN release 0.8.4
- The deferred evaluation pipe
%>>%
gains the following enhancements:.()
implemented to wrap a piped expression, ensuring return of either an 'unresolvedExpr' or 'resolvedExpr'.- expressions may be tested using
unresolved()
in the same way as a 'mirai'. - allows for general use in all contexts, including within functions.
- Improved error messages for top level evaluation errors in a 'mirai'.
- Requires nanonext >= 0.8.3.
- Internal stability and performance enhancements.
CRAN release 0.8.3
mirai()
gains the following enhancements (thanks @HenrikBengtsson):- accepts a language or expression object being passed to '.expr' for evaluation.
- accepts a list of 'name = value' pairs being passed to '.args' as well as the existing '...'.
- objects specified via '...' now take precedence over '.args' if the same named object appears.
dispatcher()
gains the following arguments:token
for appending a unique token to each URL the dispatcher listens at.lock
for locking sockets to prevent more than one server connecting at a unique URL.
saisei()
implemented to regenerate the token used by a given dispatcher socket.launch_server()
replaceslaunch()
for launching local instances, with a simpler interface directly mapping toserver()
.- Automatically-launched local daemons revised to use unique tokens in their URLs.
- Daemons status matrix headers updated to 'online', 'instance', 'assigned', and 'complete'.
- Fixes potential issue when attempting to use
mirai()
with timeouts and no connection to a server. - Requires nanonext >= 0.8.2.
- Internal performance enhancements.
CRAN release 0.8.2
dispatcher()
re-implemented using an innovative non-polling design. Efficient process consumes zero processor usage when idle and features significantly higher throughput and lower latency.- Arguments 'pollfreqh' and 'pollfreql' removed as no longer applicable.
- Server and dispatcher processes exit automatically if the connection with the client is dropped. This significantly reduces the likelihood of orphaned processes.
launch()
exported as a utility for easily re-launching daemons that have timed out, for instance.- Correct passthrough of
...
variables in thedaemons()
call. - Requires nanonext >= 0.8.1.
- Internal performance enhancements.
CRAN release 0.8.1
- Fixes issue where daemon processes may not launch for certain setups (only affecting binary package builds).
CRAN release 0.8.0
- mirai 0.8.0 is a major feature release. Special thanks to @wlandau for suggestions, discussion and testing for many of the new capabilities.
- Compute profiles have been introduced through a new
.compute
argument indaemons()
andmirai()
for sending tasks with heterogeneous compute requirements.daemons()
can create new profiles to connect to different resources e.g. servers with GPU, accelerators etc.mirai()
tasks can be sent using a specific compute profile.
daemons()
interface has a newurl
argument along withdispatcher
for using a background dispatcher process to ensure optimal FIFO task scheduling (now the default).- Supplying a client URL with a zero port number
:0
will automatically assign a free ephemeral port, with the actual port number subsequently reported bydaemons()
. - Calling with no arguments now provides an improved view of the current number of connections / daemons (URL, online and busy status, tasks assigned and completed, instance), replacing the previous
daemons("view")
functionality.
- Supplying a client URL with a zero port number
dispatcher()
is implemented as a new function for the dispatcher.server()
gains the following arguments:asyncdial
to specify how the server dials into the client.maxtasks
for specifying a maximum number of tasks before exiting.idletime
for specifying an idle time, since completion of the last task before exiting.walltime
for specifying a soft walltime before exiting.timerstart
for specifying a minimum number of task completions before starting timers.
- Invalid URLs provided to
daemons()
andserver()
now error and return immediately instead of potentially causing a hang. eval_mirai()
is removed as an alias formirai()
.- 'mirai' processes are no longer launched in Rscript sessions with the
--vanilla
argument to enable site / user profile and environment files to be read. - Requires nanonext >= 0.8.0.
- Internal performance enhancements.
CRAN release 0.7.2
- Internal performance enhancements.
CRAN release 0.7.1
- Allow user interrupts of
call_mirai()
again (regression in 0.7.0), now returning a 'miraiInterrupt'. - Adds auxiliary function
is_mirai_interrupt()
to test if an object is a 'miraiInterrupt'. - Requires nanonext >= 0.7.0: returned 'errorValues' e.g. mirai timeouts are no longer accompanied by warnings.
- Internal performance enhancements.
CRAN release 0.7.0
daemons()
now takes 'n' and '.url' arguments. '.url' is an optional client URL allowing mirai tasks to be distributed across the network. Compatibility with existing interface is retained.- The server function
server()
is exported for creating daemon / ephemeral processes on network resources. - Mirai errors are formatted better and now print to stdout rather than stderr.
- Improvements to performance and stability requiring nanonext >= 0.6.0.
- Internal enhancements to error handling in a mirai / daemon process.
CRAN release 0.6.0
- Notice: older package versions will no longer be supported by 'nanonext' >= 0.6.0. Please ensure you are using the latest version of 'mirai' or else refrain from upgrading 'nanonext'.
- Internal enhancements to
daemons()
and%>>%
deferred evaluation pipe.