We propose a distributed, modular shell program
mesh that vests a basic shell
environment with a distributed computing layer to allow active shells to
collaborate locally or among other hosts running
mesh is designed to
address the following problems with existing distributed computation tools
(i.e., GNU Parallel):
most tools take a job-oriented approach, which assumes that distributed tasks are easily parallelizable (i.e., the commands can be executed on each compute node without the need for nodes to communicate),
the commands themselves are organized in a batch (i.e., the commands have been organized by a user such that they produce a specific desired result), and
the compute nodes for a job are organized in a client-server relationship (i.e., the host submitting the job is the sole destination to which the compute nodes report a result).
Furthermore, existing tools are utility programs that simply resort to underlying
communication mechanisms like
ssh, and do not provide abstracted access over
the machines available to a user. In reality, we realize that a given user may
have access to many different machines supporting different environments on
different architectures, and these machines may not be able to execute
identical command lines.
mesh aims to facilitate computational interaction among machines
that may not be owned by one user. We will make clear a concrete implementation
mesh’s features by showing its usefulness in devising an ASC module
that allows hosts to connect to a global distributed hash table to obtain
learning data about a program before a given invocation of
asc is run and
contribute the data back to the DHT after the program (and
asc) exits normally.
dsh, distributed “shell” (also known as Dancer’s shell), by Junichi Uekawa.
dshis a utility to run one command on multiple networked machines using
rsh. Perhaps more similar in name than in functionality,
dshdoes not provide an actual shell environment.
gsh, a recent Python re-implementation of the original
gsh, written by Kees Cook, which runs commands in parallel on multiple machines.