spacemeshos / pos-server

Apache License 2.0
4 stars 1 forks source link

Support multiple-providers tasks #7

Open avive opened 3 years ago

avive commented 3 years ago

Motivation

Currently, each job is locked to 1 compute provider so the system is optimized for running multiple concurrent jobs on systems with multiple providers. We would like to add support for tasks that use all available GPUs in a system and so 1 proof of space can be created more quickly in a multiple providers system.

Outline

Design and implement a new task which locks all available providers when started and distributes the leaves generation and pow solution computation between the locked providers.

Requirements

Leaves in different proof of space data indexes are computed in parallel and although each computation iteration takes roughly the same time, the order of computation iteration completion is indeterministic. Task needs to correctly serialize iterations output to pos file in the correct index. One possible design is to append to an output file in the correct index in a serialized way. A block of leaves with all 0s may need to be appended when a block of leaves with is available before a block of leaves in a smaller index so the data can be persisted in the correct index.

POW Solution generation

Performance