56 lines
1.6 KiB
Markdown
56 lines
1.6 KiB
Markdown
# BFT task distribution model
|
|
Simulation model for task pool size calculation.
|
|
|
|
## Description
|
|
This model allows to perform experiments of task distribution process in
|
|
bft environment. Model has 3 parameters:
|
|
- number of nodes `-n`
|
|
- number of tasks `-v`
|
|
- precision (number of experiments) `-e`
|
|
|
|
Model produces size of node's task pool for chosen precision.
|
|
|
|
Detailed information about task distribution problem can be found on
|
|
[medium article](https://medium.com/@neospcc/task-distribution-over-consensus-nodes-42f1349442ad).
|
|
|
|
|
|
## Usage
|
|
You can run model inside a docker container or run app manually with
|
|
`go run`. Don't forget to turn on gomodules in that case!
|
|
|
|
```
|
|
$ make up
|
|
Sending build context to Docker daemon 114.7kB
|
|
. . .
|
|
/ #
|
|
/ # bft-task-distrib-model -n 10 -v 100 -e 1000
|
|
# BFT TASK DISTRIBUTION MODEL v.1.0
|
|
# N = 10 V = 100
|
|
# EXP = 1000
|
|
# AVAILABLE WORKERS = 8
|
|
# STARTING AT: 2019-01-14T09:49:00Z
|
|
3:67 (1.000) 1(1)
|
|
6:50 (0.980) 2(2)
|
|
9:45 (1.000) 1(1)
|
|
# ENDED AT: 2019-01-14T09:49:00Z
|
|
# DURATION: 40.430027ms
|
|
```
|
|
|
|
Output string `3:67 (1.000) 1(1)` means, that for `3` nodes, pool
|
|
size must be `67` tasks.
|
|
|
|
Relation between max pool size and obtained pool size is
|
|
`1.000` - so they equal.
|
|
|
|
Last column is a number of tries to reduce pool size.
|
|
|
|
There is also gnuplot file with example from [medium article](https://medium.com/@neospcc/task-distribution-over-consensus-nodes-42f1349442ad):
|
|
```
|
|
$ gnuplot
|
|
Terminal type is now 'qt'
|
|
gnuplot> load 'results.gp'
|
|
```
|
|
|
|
## License
|
|
This project is licensed under the GPLv3 License -
|
|
see the [LICENSE.md](LICENSE.md) file for details
|