All Projects → dalvangriebler → NPB-CPP

dalvangriebler / NPB-CPP

Licence: MIT license
NAS Parallel Benchmark Kernels in C/C++. The parallel versions are in FastFlow, TBB, and OpenMP.

Programming Languages

C++
36643 projects - #6 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to NPB-CPP

Ems
Extended Memory Semantics - Persistent shared object memory and parallelism for Node.js and Python
Stars: ✭ 552 (+2966.67%)
Mutual labels:  parallel, openmp
Util
A collection of useful utility functions
Stars: ✭ 201 (+1016.67%)
Mutual labels:  parallel, parallelism
Openmp Examples
openmp examples
Stars: ✭ 64 (+255.56%)
Mutual labels:  parallel, openmp
tbslas
A parallel, fast solver for the scalar advection-diffusion and the incompressible Navier-Stokes equations based on semi-Lagrangian/Volume-Integral method.
Stars: ✭ 21 (+16.67%)
Mutual labels:  parallel, openmp
YACLib
Yet Another Concurrency Library
Stars: ✭ 193 (+972.22%)
Mutual labels:  parallel, parallelism
shortcut-comparison
Performance comparison of parallel Rust and C++
Stars: ✭ 74 (+311.11%)
Mutual labels:  parallel, openmp
Laser
The HPC toolbox: fused matrix multiplication, convolution, data-parallel strided tensor primitives, OpenMP facilities, SIMD, JIT Assembler, CPU detection, state-of-the-art vectorized BLAS for floats and integers
Stars: ✭ 191 (+961.11%)
Mutual labels:  parallel, openmp
Onetbb
oneAPI Threading Building Blocks (oneTBB)
Stars: ✭ 3,284 (+18144.44%)
Mutual labels:  parallelism, tbb
Gapbs
GAP Benchmark Suite
Stars: ✭ 165 (+816.67%)
Mutual labels:  benchmark, openmp
Babelstream
STREAM, for lots of devices written in many programming models
Stars: ✭ 121 (+572.22%)
Mutual labels:  benchmark, openmp
Onednn
oneAPI Deep Neural Network Library (oneDNN)
Stars: ✭ 2,600 (+14344.44%)
Mutual labels:  openmp, tbb
java-multithread
Códigos feitos para o curso de Multithreading com Java, no canal RinaldoDev do YouTube.
Stars: ✭ 24 (+33.33%)
Mutual labels:  parallel, parallelism
Weave
A state-of-the-art multithreading runtime: message-passing based, fast, scalable, ultra-low overhead
Stars: ✭ 305 (+1594.44%)
Mutual labels:  openmp, parallelism
Hamsters.js
100% Vanilla Javascript Multithreading & Parallel Execution Library
Stars: ✭ 517 (+2772.22%)
Mutual labels:  parallel, parallelism
vercors
The VerCors verification toolset for verifying parallel and concurrent software
Stars: ✭ 30 (+66.67%)
Mutual labels:  openmp, parallelism
Napajs
Napa.js: a multi-threaded JavaScript runtime
Stars: ✭ 8,945 (+49594.44%)
Mutual labels:  parallel, multi-core
Paraphrase
Multi-core suitable Forth-like language
Stars: ✭ 27 (+50%)
Mutual labels:  parallelism, multi-core
HeCBench
software.intel.com/content/www/us/en/develop/articles/repo-evaluating-performance-productivity-oneapi.html
Stars: ✭ 85 (+372.22%)
Mutual labels:  benchmark, openmp
parallelizer
Simplifies the parallelization of function calls.
Stars: ✭ 62 (+244.44%)
Mutual labels:  parallel, parallelism
open-ops
Open Optimizing Parallelizing System
Stars: ✭ 21 (+16.67%)
Mutual labels:  parallel, parallelism

Warning: this project is continued at NPB-CPP

🔉 We are happy to announce that both NPB Kernels and pseudo-application are available at our new repository NPB-CPP. 😄

This was our first work on NAS Parallel Benchmark (NPB) suite and many other works are now continuing this project in many different ways.

🔉Note: this repository will no longer be updated, therefore, follow us at NPB-CPP

How to cite this work

[DOI] D. Griebler, J. Loff, G. Mencagli, M. Danelutto and L. G. Fernandes. Efficient NAS Benchmark Kernels with C++ Parallel Programming. In proceedings of the 26th Euromicro International Conference on Parallel, Distributed and Network-Based Processing (PDP). Cambridge, United Kingdom, 2018.

The NPB-CPP Benchmark

These codes were converted to C++ from the original NPB3.3.1. We achieved similar performance in C++ compared to the Fortran version.

==================================================================
	NAS Parallel Benchmarks in C++, OpenMP, FastFlow, and TBB
 												
		Code contributors: 
				Dalvan Griebler    		
				Júnior Löff
												
	Warning: in case of problems send an email to us:					
		[email protected]			
		[email protected]				
==================================================================

This folder contains:

- NPB-FF - Directory with the parallel version implemented in FastFlow
- NPB-OMP - Directory with the parallel version translated from the original NPB version
- NPB-SER - Directory with the serial version of the NPB ported to C++
- NPB-TBB - Directory with the parallel version implemented in Thread Building Blocks

Each directory is independent and contains its own implemented version of the kernels:

IS - Integer Sort, random memory access
EP - Embarrassingly Parallel
CG - Conjugate Gradient, irregular memory access and communication
MG - Multi-Grid on a sequence of meshes, long- and short-distance communication, memory intensive
FT - discrete 3D fast Fourier Transform, all-to-all communication

Software Requirements

Warning: our tests were made with GCC-5

TBB

Installation

apt-get install libtbb-dev

FastFlow

Installation

svn co https://svn.code.sf.net/p/mc-fastflow/code/ $HOME/fastflow

How to Compile

Enter the directory from the version desired and execute:

make _BENCHMARK CLASS=_VERSION

_BENCHMARKs are:

EP, CG, MG, IS and FT 

_VERSIONs are:

Class S: small for quick test purposes
Class W: workstation size (a 90's workstation; now likely too small)	
Classes A, B, C: standard test problems; ~4X size increase going from one class to the next	
Classes D, E, F: large test problems; ~16X size increase from each of the previous Classes  

Command:

make ep CLASS=B
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].