On Jul 20, 2020, at 6:47 AM, Mario Annau <mario.annau at gmail.com> wrote:
Thanks for the quick responses. As you both suggested storing the packages
to local drive is feasible but comes with a size restriction I wanted to
avoid. I'll keep this in mind as plan B.
@Hugh: 2. would impose even greater slowdowns and 4. is just not feasible.
However, 3. sounds interesting - how would this work in a Linux environment?
Thank you,
Mario
Am So., 19. Juli 2020 um 20:11 Uhr schrieb Hugh Parsonage <
hugh.parsonage at gmail.com>:
My advice would be to avoid the network in one of the following ways
1. Store installed packages on your local drive
2. Copy the installed packages to a tempdir on your local drive each time
the script is executed
3. Keep an R session running in perpetuity and source the scripts within
that everlasting session
4. Rewrite your scripts to use base R only.
I suspect this solution list is exhaustive.
On Mon, 20 Jul 2020 at 1:50 am, Mario Annau <mario.annau at gmail.com> wrote:
Dear all,
in our current setting we have our packages stored on a (rather slow)
network drive and need to invoke short R scripts (using RScript) in a
timely manner. Most of the script's runtime is spent with package loading
using library() (or loadNamespace to be precise).
Is there a way to cache the package namespaces as listed in
loadedNamespaces() and load them into memory before the script is
executed?
My first simplistic attempt was to serialize the environment output
from loadNamespace() to a file and load it before the script is started.
However, loading the object automatically also loads all the referenced
namespaces (from the slow network share) which is undesirable for this use
case.
Cheers,
Mario
[[alternative HTML version deleted]]