3 ms·
To build applications that run across many machines in a network it is typically necessary to write low-level code (sockets), set up servers, create protocols f
by j4m 3y ago
To build applications that run across many machines in a network it is typically necessary to write low-level code (sockets), set up servers, create protocols for communicating, etc. This can be time consuming, especially when all you want to do is write an application, not a library. PENVM makes all of this work much easier to do.
As an example, the pvx tool (https://github.com/penvm/penvm-pvx https://github.com/penvm/penvm-pvx) allows a user to run commands on a collection of machines and get the results. There are other tools that do this (e.g., dsh, parallel). What PENVM does is make this kind of application easy to write. See how much code the pvx tool is. Not much at all. Most of it is actually processing the command line arguments.
pvx is just one example. There are many other situations when distributing work across many machines is required. Any application that needs to use many machines (to reduce the time to get a result!) can leverage PENVM. You can see this with the Jupyter examples (https://github.com/penvm/penvm-jupyter-demos https://github.com/penvm/penvm-jupyter-demos) and some videos (https://penvm.dev/docs/examples/jupyter/jupyter-demos-videos/ https://penvm.dev/docs/examples/jupyter/jupyter-demos-videos...).
One of the key features of PENVM is that the kernel (set of operations that can be executed) can be extended, or even a new one put in place, to offer new custom functionality. These kernels can be shared, too.
More examples will be coming to demonstrate how PENVM makes this kind of work easier.