Skip to content

Commit

Permalink
Merge pull request #15 from GMAP/new_app
Browse files Browse the repository at this point in the history
New app
  • Loading branch information
adrianomg authored Jan 30, 2024
2 parents 3a0708e + 3948168 commit 0e2632c
Show file tree
Hide file tree
Showing 50 changed files with 2,556 additions and 375 deletions.
4 changes: 4 additions & 0 deletions Changelog.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
* v0.4.5-alpha
- [New feature] Added a new command to the CLI: 'new-app'. This command allows users to create a new application from scratch. It will create a new folder inside the 'SPBench/sys/apps/' folder with the name provided by the user. Inside this folder, it will create a toy application with a basic structure which users can use as template.
- [New feature] Added a new command to the CLI: 'delete-app'. This command allows users to delete an application from the 'SPBench/sys/apps/' folder and from the registry, as well as all benchmarks associated with it and registered inputs.

* v0.4.4-alpha
- [New benchmarks] Added Lane Detection implementations using a pipeline of farms and a farm of pipelines with FastFlow and Intel TBB
- [New benchmarks] Added Ferret using a farm of pipelines with FastFlow
Expand Down
16 changes: 9 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# SPBench
# SPBench - Easing the Complex

[![SPBench_logo](https://user-images.githubusercontent.com/11809226/121076611-fbef5300-c7ac-11eb-9213-5a30a284bec1.png)](https://spbench-doc.readthedocs.io/en/latest/)

[SPBench](https://spbench-doc.readthedocs.io/en/latest/) (Stream Processing Benchmark) is a framework for benchmarking C++ stream processing applications.
[SPBench](https://spbench-doc.readthedocs.io/en/latest/) (Stream Processing Benchmark) is a framework for streamlining benchmarking of C++ stream processing.
The main goal of SPBench is to enable users to easily create custom benchmarks from real-world stream processing applications and evaluate multiple PPIs.

<ins>**The SPbench documentation is available at https://spbench-doc.rtfd.io**</ins>
Expand Down Expand Up @@ -31,12 +31,14 @@ The main goal of SPBench is to enable users to easily create custom benchmarks f

- A. M. Garcia, D. Griebler, C. Schepke and L. G. L. Fernandes, Micro-batch and data frequency for stream processing on multi-cores. The Journal of Supercomputing (2023), p. 1-39, doi: 10.1007/s11227-022-05024-y. \[[link](https://doi.org/10.1007/s11227-022-05024-y)\]

- A. M. Garcia et al., "A Latency, Throughput, and Programmability Perspective of GrPPI for Streaming on Multi-cores," 2023 31st Euromicro International Conference on Parallel, Distributed and Network-Based Processing (PDP), Naples, Italy, 2023, pp. 164-168, doi: 10.1109/PDP59025.2023.00033. \[[link](https://doi.org/10.1109/PDP59025.2023.00033)\]

- A. M. Garcia, D. Griebler, L. G. L. Fernandes and C. Schepke, "Introducing a Stream Processing Framework for Assessing Parallel Programming Interfaces", 2021 29th Euromicro International Conference on Parallel, Distributed and Network-Based Processing (PDP), 2021, pp. 84-88, doi: 10.1109/PDP52278.2021.00021. \[[link](https://doi.org/10.1109/PDP52278.2021.00021)\]

## The SPBench is intended for three main audiences:
- Users who want to run performance tests with the SPBench benchmarks. It implements different real-world stream processing applications using parallel programming interfaces (PPIs) and parallelism patterns and makes the primary metrics used in this domain available. The framework also enables users to create custom benchmarks with new PPIs.
- Researchers and developers who want to test and evaluate new technologies and solutions. The SPBench benchmarks are also highly parameterizable, and its API allows for easy and fast code reuse across all applications.
- Students and teachers who want to learn/teach stream parallelism. The benchmarks implemented with the SPBench API abstract the low-level code and expose to users only the stream core of each application (in a few lines of code). Therefore, it allows users to easily identify each operator and data dependencies and understand what the stream flow looks like. Then users can build parallelism on top of this highly simplified code.
- Students and teachers who want to learn/teach stream parallelism. The benchmarks implemented with the SPBench API abstract the low-level code and expose to users only the stream core of each application (in a few lines of code). Therefore, it allows users to easily identify each operator and data dependencies and understand the stream flow. Then, users can build parallelism on top of this highly simplified code.

### The SPBench suite comprises the following stream processing applications and will be more in the future:
- Ferret (PARSEC)
Expand Down Expand Up @@ -91,8 +93,8 @@ For custom and manual installations, see libs/README.md or ppis/README.md.

**>> Attention <<**

It was tested with **GCC-9.4** compiler.
Some applications' dependency libraries, such as OpenCV, may not work with different versions or compilers.
It was tested on different Linux systems using with **GCC-9.4** compiler.
We do not ensure that all libraries, such as OpenCV, will work with different versions or compilers.

## How to run:

Expand All @@ -106,6 +108,6 @@ Try: `./spbench -h` or `python3 spbench -h `

See the [documentation](https://spbench-doc.readthedocs.io/en/latest/) for more info about SPBench.

SPBench is an ongoing project, and you may face some bugs or other problems.
SPBench is an ongoing project, and you may face bugs or other problems.
Feel free to open an issue or contact me with any problem regarding the SPBench.
adriano.garcia@edu.pucrs.br
adriano1mg@gmail.com
4 changes: 2 additions & 2 deletions benchmarks/global_config.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@
"PRE_SRC_CMD": "",
"POST_SRC_CMD": "",
"MACROS": "",
"EXTRA_MACROS": "",
"EXTRA_MACROS": "-DNO_UPL",
"PKG-CONFIG": {
"myPKG": ""
},
"INCLUDES": {
"UPL": "-I $SPB_HOME/libs/upl/include/upl/"
},
"LIBS": {
"UPL" : "-L $SPB_HOME/libs/upl/lib/x86 -lupl"
"UPL" : ""
},
"LDFLAGS": "",
"EXTRA_LDFLAGS": ""
Expand Down
Loading

0 comments on commit 0e2632c

Please sign in to comment.