Skip to content

Commit 5839d13

Browse files
Merge pull request #606 from DSC-SPIDAL/connected-dataflow
Connected dataflow
2 parents 58e298f + 89bc16c commit 5839d13

File tree

10 files changed

+51
-47
lines changed

10 files changed

+51
-47
lines changed

docs/docs/architecture/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Job Master manages the job related activities during job execution such as fault
3030

3131
The processes that perform the computations in a job.
3232

33-
### Twister2 Dashboard:
33+
### Twister2 Dashboard
3434

3535
Twister2 Dashboard is a web site that helps users to monitor their jobs.
3636
Only one instance of Dashboard runs in the cluster and it will provide data for all jobs running in the cluster.

docs/docs/concepts/task-system/task-system.md

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ task graphs in the task layer which could be created either statically or dynami
2727
the task graph represents a task whereas an edge represents the communication link between the vertices.
2828
Each node in the task graph holds the information about the input and its output. A task could be
2929
long-running (streaming graph) or short-running (dataflow graph without loops) depending on the type
30-
of application. A task graph 'TG' generally consists of set of Task Vertices'TV' and Task Edges \(TE\) which is
31-
mathematically denoted as Task Graph
30+
of application. A task graph 'TG' generally consists of set of Task Vertices'TV' and Task Edges \(TE\)
31+
which is mathematically denoted as Task Graph
3232

3333
```text
3434
(TG) -> (TV, TE)
@@ -203,12 +203,12 @@ message TaskSchedulePlanList {
203203
### YAML file
204204

205205
The task scheduler has task.yaml in the config directory. The task scheduler mode represents either
206-
'roundrobin' or 'firstfit' or 'datalocalityaware'. The default task instances represents the default
207-
memory, disk, and cpu values assigned to the task instances. The default container padding values
206+
'roundrobin' or 'firstfit' or 'datalocalityaware'. The default task instance represents the default
207+
memory, disk, and cpu values assigned to the task instances. The default container padding value
208208
represents the percentage of values to be added to each container. The default container instance
209-
values represents the default size of memory, disk, and cpu of the container. The task parallelism
209+
value represents the default size of memory, disk, and cpu of the container. The task parallelism
210210
represents the default parallelism value assigned to each task instance. The task type represents
211-
the streaming or batch task.The task scheduler dynamically loads the respective streaming and batch
211+
the streaming or batch task. The task scheduler dynamically loads the respective streaming and batch
212212
task schedulers based on the configuration values specified in the task.yaml.
213213

214214
\`\`yaml
@@ -231,6 +231,12 @@ twister2.task.instance.ram: 512.0
231231
twister2.task.instance.disk: 500.0
232232
twister2.task.instance.cpu: 2.0
233233
234+
#Default Container Padding Values
235+
twister2.ram.padding.container: 2.0
236+
twister2.disk.padding.container: 12.0
237+
twister2.cpu.padding.container: 1.0
238+
twister2.container.padding.percentage: 2
239+
234240
#Default Container Instance Values
235241
twister2.container.instance.ram: 2048.0
236242
twister2.container.instance.disk: 2000.0
@@ -314,7 +320,8 @@ operations.
314320
* The task executor will receive the tasks as serialized objects and it will deserialize the objects
315321
before processing them.
316322
* A thread pool will be maintained by the task executors to manage the core in an optimal manner.
317-
* The size of the thread pool will be determined by the number of cores that are available to the executor.
323+
* The size of the thread pool will be determined by the number of cores that are available to the
324+
executor.
318325

319326
### Types of Task Executors
320327

docs/docs/deployment/docker/running-jobs.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ If you want to build docker image by yourself, you can download the [Dockerfile]
2626
docker build -t repositoryname:tag .
2727

2828
# example:
29-
# docker build -t twister2/standalone:0.2.1 .
29+
# docker build -t twister2/standalone:0.3.0 .
3030
```
3131

3232
## Running The Container
@@ -39,10 +39,10 @@ docker run -it twister2/standalone bash
3939

4040
## Running Jobs
4141

42-
Docker image contains the source code and prebuilt twister2. Prebuilt twister2 is in the `~/twister2-0.2.1` So, make sure that you are in that directory
42+
Docker image contains the source code and prebuilt twister2. Prebuilt twister2 is in the `~/twister2-0.3.0` So, make sure that you are in that directory
4343

4444
```bash
45-
cd ~/twister2-0.2.1
45+
cd ~/twister2-0.3.0
4646
```
4747

4848
In order to run a job you can use the following command on the interactive bash session
@@ -71,7 +71,7 @@ bazel build --config=ubuntu scripts/package:tarpkgs
7171
This will build twister2 distribution in the file:
7272

7373
```bash
74-
bazel-bin/scripts/package/twister2-0.2.1.tar.gz
74+
bazel-bin/scripts/package/twister2-0.3.0.tar.gz
7575
```
7676

7777
If you want to modify the twister2 code and test without installing all the dependencies to your machine, you can mount the directory to the docker container:

docs/docs/deployment/mesos/running-jobs.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ In order to run twister2 jobs you should have a running Mesos cluster.
1010

1111
**Running HelloWorld Example**
1212

13-
Please first familiarize yourself with [HelloWorld job](https://github.com/DSC-SPIDAL/twister2/blob/master/docs/quickstart.md).
13+
Please first familiarize yourself with [HelloWorld job](../../quickstart.md)
1414
You can submit jobs to Mesos cluster by using twister2 executable:
1515

1616
```bash
@@ -36,8 +36,7 @@ is on maser ip:5050) or persistent logs. The workers in HelloWorld job
3636
prints a log message and sleeps 1 minutes before exiting.
3737

3838
You can view the log files in persistent storage if persistent storage is
39-
enabled. Details can be found here on [installation
40-
document](https://github.com/DSC-SPIDAL/twister2/blob/master/docs/deployment/mesos/twister2-mesos-install.md).
39+
enabled. Further details of the Mesos installation could be found below.
4140

4241
**Terminating a Running Job**
4342

docs/docs/deployment/mesos/twister2-mesos-install.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
**Twister2 Mesos Installation**
1+
# Twister2 Mesos Installation
22

33
In order to use Mesos, you have to install it on the machines that you
44
want to use. One of the nodes will be the Mesos master and the others

docs/docs/deployment/slurm/running-jobs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ In this mode, the job is killed immediately when you terminate the client using
2929

3030
## Installing OpenMPI
3131

32-
When you compile Twister2, it builds OpenMPI 3.1.2 version with it. This version is
32+
When you compile Twister2, it builds OpenMPI 4.0.1 version with it. This version is
3333
used by Twister2 for its standalone deployment by default.
3434

3535
You can use your own OpenMPI installation when running the jobs. In order to do that, you

docs/docs/deployment/standalone/running-jobs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ to this file in order to run the job on them.
4343

4444
## Installing OpenMPI
4545

46-
When you compile Twister2, it builds OpenMPI 3.1.2 version with it. This version is
46+
When you compile Twister2, it builds OpenMPI 4.0.1 version with it. This version is
4747
used by Twister2 for its standalone deployment by default.
4848

4949
You can use your own OpenMPI installation when running the jobs. In order to do that, you

docs/docs/examples/ml/kmeans/kmeans.md

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -393,24 +393,17 @@ K-Means clustering process.
393393
### Sample Output
394394

395395
```bash
396-
[2019-03-25 15:27:01 -0400] [INFO] [worker-0] [main] edu.iu.dsc.tws.examples.batch.kmeans.KMeansWorker:
397-
Final Centroids After 100 iterations [[0.2535406313735363, 0.25640515489554255],
398-
[0.7236140928643464, 0.7530306848028933], [0.7481226889281528, 0.24480221871888594],
399-
[0.2203460821168371, 0.754988220991043]]
396+
9-08-22 16:03:16 -0400] [INFO] [-] [JM] edu.iu.dsc.tws.master.server.WorkerMonitor: All 2 workers joined the job.
397+
[2019-08-22 16:03:16 -0400] [INFO] [-] [JM] edu.iu.dsc.tws.master.server.WorkerMonitor: Sending WorkersJoined messages ...
400398

401-
[2019-03-25 15:27:01 -0400] [INFO] [worker-1] [main] edu.iu.dsc.tws.examples.batch.kmeans.KMeansWorker:
402-
Final Centroids After 100 iterations [[0.2535406313735363, 0.25640515489554255],
403-
[0.7236140928643464, 0.7530306848028933], [0.7481226889281528, 0.24480221871888594],
404-
[0.2203460821168371, 0.754988220991043]]
399+
[2019-08-22 16:03:21 -0400] [INFO] [worker-0] [main] edu.iu.dsc.tws.examples.batch.kmeans.KMeansWorker: Final Centroids After 100 iterations
400+
[[0.2586896371541501, 0.26352894494071144], [0.7226999170143885, 0.7523701053237408], [0.7481226890456432, 0.2448022186721992], [0.21755114043859655, 0.7589559817543858]]
405401

406-
[2019-03-25 15:27:01 -0400] [INFO] [worker-1] [main] edu.iu.dsc.tws.rsched.schedulers.standalone.MPIWorker:
407-
Worker finished executing - 1
408-
409-
[2019-03-25 15:27:01 -0400] [INFO] [worker-0] [main] edu.iu.dsc.tws.rsched.schedulers.standalone.MPIWorker:
410-
Worker finished executing - 0
411-
412-
[2019-03-25 15:27:01 -0400] [INFO] [-] [JM] edu.iu.dsc.tws.master.server.JobMaster: All 2 workers have completed.
413-
JobMaster is stopping.
402+
[2019-08-22 16:03:21 -0400] [INFO] [worker-0] [main] edu.iu.dsc.tws.rsched.schedulers.standalone.MPIWorker: Worker finished executing - 0
414403

404+
[2019-08-22 16:03:21 -0400] [INFO] [worker-1] [main] edu.iu.dsc.tws.examples.batch.kmeans.KMeansWorker: Final Centroids After 100 iterations
405+
[[0.2586896371541501, 0.26352894494071144], [0.7226999170143885, 0.7523701053237408], [0.7481226890456432, 0.2448022186721992], [0.21755114043859655, 0.7589559817543858]]
415406

407+
[2019-08-22 16:03:21 -0400] [INFO] [worker-1] [main] edu.iu.dsc.tws.rsched.schedulers.standalone.MPIWorker: Worker finished executing - 1
408+
[2019-08-22 16:03:21 -0400] [INFO] [-] [JM] edu.iu.dsc.tws.master.server.JobMaster: All 2 workers have completed. JobMaster is stopping.
416409
```

docs/docs/examples/terasort/terasort.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
22
id: terasort
3-
title: Tera Sort
4-
sidebar_label: Tera Sort
3+
title: TeraSort
4+
sidebar_label: TeraSort
55
---
66

7-
Tera Sort is a common benchmark to measure and compare high performance big data frameworks such
7+
TeraSort is a common benchmark to measure and compare high performance big data frameworks such
88
as Twister2. The idea is to measure the time to sort one terabyte of randomly distributed data.
99

1010
This terasort is implemented according to the requirements listed in the
@@ -39,7 +39,7 @@ operation is configured with a comparator to sort by key.
3939
./bin/twister2 submit standalone jar examples/libexamples-java.jar edu.iu.dsc.tws.examples.batch.terasort.TeraSort -size .5 -valueSize 90 -keySize 10 -instances 8 -instanceCPUs 1 -instanceMemory 1024 -sources 8 -sinks 8 -memoryBytesLimit 4000000000 -fileSizeBytes 100000000 -inputFile /path/to/file-%d
4040
```
4141

42-
### Tera Sort parameters
42+
### TeraSort parameters
4343

4444
#### Data Configuration - File Based mode
4545

docs/docs/quickstart.md

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ examples/src/java/edu/iu/dsc/tws/examples/comms
122122
You can run them with a simple command such as
123123

124124
```text
125-
./bin/twister2 submit standalone jar examples/libexamples-java.jar edu.iu.dsc.tws.examples.comms.ExampleMain -op "reduce" -stages 8,1
125+
./bin/twister2 submit standalone jar examples/libexamples-java.jar edu.iu.dsc.tws.examples.comms.ExampleMain -op "reduce" -stages 8,1 -workers 4
126126
```
127127

128128
Now, lets focus on a simple communication example where we try to do a word count.
@@ -132,7 +132,7 @@ Now, lets focus on a simple communication example where we try to do a word coun
132132
Lets look at a word count example. This is a standard example in every other big data system. The code related to example can be found in
133133

134134
```bash
135-
examples/src/java/edu/iu/dsc/tws/examples/batch/wordcount
135+
examples/src/java/edu/iu/dsc/tws/examples/batch/wordcount/task
136136
```
137137

138138
We are using a Keyed Reduce communication operation to calculate the global counts of words, which are emitted from parallel workers.
@@ -142,19 +142,19 @@ The example has three main classes.
142142
WordCountWorker that implements the IWorker interface and runs the code.
143143

144144
```java
145-
edu.iu.dsc.tws.examples.batch.wordcount.WordCountWorker
145+
edu.iu.dsc.tws.examples.batch.wordcount.task.WordCountWorker
146146
```
147147

148148
BatchWordSource, where we use a thread to generate words and put them into the communication.
149149

150150
```java
151-
edu.iu.dsc.tws.examples.batch.wordcount.BatchWordSouce
151+
edu.iu.dsc.tws.examples.batch.wordcount.task.BatchWordSouce
152152
```
153153

154154
WordAggregator, where it receives the counts of the words.
155155

156156
```java
157-
edu.iu.dsc.tws.examples.batch.wordcount.WordAggregator
157+
edu.iu.dsc.tws.examples.batch.wordcount.task.WordAggregator
158158
```
159159

160160
The WordCountWorker sets up communications and task ids. Then it sets up the communication operation.
@@ -207,14 +207,19 @@ return true;
207207
Here is the command to run this example
208208

209209
```bash
210-
./bin/twister2 submit standalone jar examples/libexamples-java.jar edu.iu.dsc.tws.examples.batch.wordcount.WordCountJob
210+
./bin/twister2 submit standalone jar examples/libexamples-java.jar edu.iu.dsc.tws.examples.batch.wordcount.task.WordCountJob
211211
```
212212

213213
It will output the words and their counts on the console and below is an small sample.
214214

215215
```bash
216-
[INFO] edu.iu.dsc.tws.examples.batch.wordcount.WordAggregator: 12 Word MWf count 83
217-
[INFO] edu.iu.dsc.tws.examples.batch.wordcount.WordAggregator: 12 Word mFu count 105
218-
[INFO] edu.iu.dsc.tws.examples.batch.wordcount.WordAggregator: 12 Word JyDA count 105
216+
[2019-08-22 16:41:22 -0400] [INFO] [worker-3] [main] edu.iu.dsc.tws.examples.batch.wordcount.task.WordCountJob: 100003 Word aw count 1
217+
[2019-08-22 16:41:22 -0400] [INFO] [worker-3] [main] edu.iu.dsc.tws.examples.batch.wordcount.task.WordCountJob: 100003 Word z count 5
218+
[2019-08-22 16:41:22 -0400] [INFO] [worker-3] [main] edu.iu.dsc.tws.examples.batch.wordcount.task.WordCountJob: 100003 Word DWm count 3
219+
[2019-08-22 16:41:22 -0400] [INFO] [worker-3] [main] edu.iu.dsc.tws.examples.batch.wordcount.task.WordCountJob: 100003 Word wU count 1
220+
[2019-08-22 16:41:22 -0400] [INFO] [worker-3] [main] edu.iu.dsc.tws.examples.batch.wordcount.task.WordCountJob: 100003 Word Ge count 1
221+
[2019-08-22 16:41:22 -0400] [INFO] [worker-3] [main] edu.iu.dsc.tws.examples.batch.wordcount.task.WordCountJob: 100003 Word yW count 2
222+
[2019-08-22 16:41:22 -0400] [INFO] [worker-3] [main] edu.iu.dsc.tws.rsched.schedulers.standalone.MPIWorker: Worker finished executing - 3
223+
[2019-08-22 16:41:22 -0400] [INFO] [-] [JM] edu.iu.dsc.tws.master.server.JobMaster: All 4 workers have completed. JobMaster is stopping.
219224
```
220225

0 commit comments

Comments
 (0)