Skip to content

ExtremeScale/ThreadPool

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

std::thread based thread pool

A simple std::thread based thread pool with a parallel-for loop implementation.

Example of how to perform STREAM benchmark scale operation in parallel:

void scale(int i, double* a, double* b) {
        a[i]=4*b[i];
}

int main () {

        ThreadPool pool(8);

        int N = 1e9;
        auto a = (double*)calloc(N,sizeof(double));
        auto b = (double*)calloc(N,sizeof(double));
        for (int i=0; i<N; i++) { b[i] = i; }

        {
            Timer timer([&](int elapsed) { cout << elapsed*1e-6 << " ms\n"; });
            pool.ParallelFor(0,N,scale,a,b);
        }


        return 0;
}

Releases

No releases published

Packages

No packages published

Languages

  • C++ 96.1%
  • Makefile 3.7%
  • CMake 0.2%