golemfactory / gumpi

MPI on Golem Unlimited PoC

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

gumpi

CircleCI status: status

Known to work with this GU version, commit 93c9f37e1765ad743a6b16209561e6374fb88e84.

Minimum supported Rust version: 1.34

Example usage

If the hub listens at 127.0.0.1:61622 and you want to spawn 12 processes, enter gumpi project root, execute:

cargo run -- --hub 127.0.0.1:61622 --job job.toml -n 12

See the command line help for more information about the parameters

Example job config (job.toml from the example) which will show the hostname for every process on every node:

progname = "uname"
args = ["-a"]

See examples/Tutorial.md for a more details.

Directories inside the Docker image

The structure of the directories:

  • /app contains the sources and the built binary of the application
  • /input contains the uploaded input data
  • /output is the working directory of the app

In particular, when providing input data, you should refer to it as either ../input/file.dat or /input/file.dat.

Known issues and limitations

Connectivity

If you want to run the application over LAN, you may need to specify your IP address space, e.g. the previous example will become:

progname = "uname"
args = ["-a"]
mpiargs = ["--mca", "btl_tcp_if_include", "10.30.8.0/22"]

Output size

Currently gumpi limits the accepted size of the stdout and the returned output to 1GiB. Should this be a problem for your application, please report an issue.

Output location

Currently gumpi requires the application to put all the relevant artifacts into a single subdirectory. In particular, fetching files directly from the working directory is NOT supported.

Debugging

You can use the --noclean runtime option to disable the automatic cleanup of the sessions on the client side. Note that in the future Golem Unlimited may automatically remove stale sessions on the provider side.

About

MPI on Golem Unlimited PoC

License:GNU Affero General Public License v3.0


Languages

Language:Rust 100.0%