Skip to content

Releases: shikokuchuo/mirai

CRAN release 0.8.7

11 May 07:32
baa75e6
Compare
Choose a tag to compare
  • server() and dispatcher() 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 before server() is launched on remote resources, or else server(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

09 May 07:45
511ea56
Compare
Choose a tag to compare
  • 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

17 Apr 08:31
364247a
Compare
Choose a tag to compare
  • 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() replaces launch() for launching local instances, with a simpler interface directly mapping to server().
  • 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

03 Apr 09:22
3aaa8ec
Compare
Choose a tag to compare
  • 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 the daemons() call.
  • Requires nanonext >= 0.8.1.
  • Internal performance enhancements.

CRAN release 0.8.1

17 Mar 11:36
fe13f1b
Compare
Choose a tag to compare
  • Fixes issue where daemon processes may not launch for certain setups (only affecting binary package builds).

CRAN release 0.8.0

15 Mar 10:00
5db9e48
Compare
Choose a tag to compare
  • 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 in daemons() and mirai() 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 new url argument along with dispatcher 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 by daemons().
    • 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.
  • 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() and server() now error and return immediately instead of potentially causing a hang.
  • eval_mirai() is removed as an alias for mirai().
  • '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

17 Jan 15:23
23f9f79
Compare
Choose a tag to compare
  • Internal performance enhancements.

CRAN release 0.7.1

15 Nov 21:36
7655a3b
Compare
Choose a tag to compare
  • 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

19 Oct 22:38
f44953f
Compare
Choose a tag to compare
  • 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

16 Sep 10:47
4aa4da3
Compare
Choose a tag to compare
  • 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.