Figure 7 lists the comparative code sizes of programs written in Flocc, compared with other languages. The Flocc implementations are between 3x (K-means) and 34x (Grep) more concise (14x on average); illustrating the potential productivity gains of such a high-level language approach. Furthermore, numerous bugs are possible in low level C/C++ implementations which cannot occur in Flocc, provided ofcourse Flocc's code generation templates are implemented correctly.
Problem | Flocc | Comparison | Types | ||
---|---|---|---|---|---|
Matrix multiply (cf. Fig 4) | 5 | C/MPI | 89 | Arr | |
Floyd's all pairs shortest path | 15 | C/MPI | 88 | Arr | |
Jacobi 2D | 8 | C++/MPI | 120 | Arr | |
SOR red/black | 18 | C/MPI | 289 | Arr | |
N-body (gravitational) | 38 | C/MPI | 153 | Arr | |
K-means clustering | 36 | C/MPI | 114 | Map | |
Triangle enum (cf. Fig 13) | 12 | C++/MR-MPI | 263 | Map | |
R-MAT graph generation | 35 | C++/MR-MPI | 148 | Map | |
PageRank | 11 | Java/Hadoop | 157 | Map | |
Histogram (cf. Fig 5) | 6 | C++/MPI | 204 | Map | |
Apriori association mining | 14 | Java/Hadoop | 371 | Map | |
Dot product (cf. Fig 6) | 3 | C++/MPI | 35 | List | |
Standard deviation | 6 | C/MPI | 38 | List | |
Simple linear regression | 10 | C++/MPI | 47 | List | |
Word count | 3 | Java/Hadoop | 48 | List | |
Grep | 2 | Java/Hadoop | 59 | List | |
Fig. 7 Comparative code sizes (loc without comments, blanklines, and IO code) |