We have about 50 different mac computers, all ARM, distributed across our
offices.  They range from a few M1's with 8 GB all the way to M4's with 64
GB.  (The M4 mini for $600 is an amazing compute engine!)

These computers are mostly idle overnight.  We have no interest in
bitmining and SETI@home doesn't seem so very active any more, either.
Alas, it's 2025 now, so maybe there is something better we could do with
all this idle compute power when it comes to our own statistical analyses.
Maybe we could cluster them overnight.

I likely could convince my colleagues to run a cron job (or systemctl, well
loadctl) that starts listening at 7pm and ends it around 7am, sharing say
80% of their memory and CPU, plus say 32GB of SSD.  I won't be able to
actively administer their computers, so the client has to be easy for them
to install, turn on, and turn off, accept programs and inputs, cache some
of the data, and send back output.  (The sharing would only be on the local
network, not the entire internet, making them feel more comfortable with
it.)

Ideally, we would then have a frontend R (controller) that could run
`mclapply` statements on this Franken-computer, and be smart enough about
how to distribute the load.  For example, an M4 is about 1.5x as fast as an
M1 on a single CPU, and it's easy to count up CPUs.  If my job is estimated
to need 4GB per core, presumably I wouldn't want to start 50 processes on a
computer that has 10 cores and 8GB.  If the frontend estimates that the
upload and download will take longer than the savings, it should just
forget about distributing it.  And so on.  Reasonable rules, perhaps
indicated by the user and/or assessable from a few local mclapply runs
first.  It's almost like profiling the job for a few minutes or few
iterations locally, and then deciding whether to send off parts of it to
all the other computer nodes on this Franken-net.

I am not holding my breath on ChatGPT and artificial intelligence, of
course.  However, this seems like a hard but feasible engineering problem.
Is there a vendor who sells a plug-and-play solution to this problem?  I am
guessing we are not unusual in a setup like this, though an upper price
bound on the software here is of course just the cost of buying a giant
homogeneous computer or using Amazon resources.

Pointers appreciated.

/iaw

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to