Created
November 6, 2017 09:45
-
-
Save kaityo256/c5e40aec414c36b3c649e36a06757fdb to your computer and use it in GitHub Desktop.
multithread malloc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| //------------------------------------------------------------------------ | |
| #include <iostream> | |
| #include <vector> | |
| #include <omp.h> | |
| #include <chrono> | |
| //------------------------------------------------------------------------ | |
| const int N_THREADS = 16; | |
| //------------------------------------------------------------------------ | |
| int | |
| func1(int n, int i){ | |
| int sum = 0; | |
| for(int k=0;k<2;k++){ | |
| std::vector <int> v; | |
| for(int j=0;j<n;j++){ | |
| v.push_back(j*i); | |
| } | |
| sum = sum + v[n/2]; | |
| } | |
| return sum; | |
| } | |
| //------------------------------------------------------------------------ | |
| int | |
| main(void){ | |
| auto t1 = std::chrono::system_clock::now(); | |
| #pragma omp parallel for schedule(static) | |
| for(int i=0;i<N_THREADS;i++){ | |
| func1(10000000,i); | |
| } | |
| #pragma omp barrier | |
| auto t2 = std::chrono::system_clock::now(); | |
| auto elapsed = std::chrono::duration_cast<std::chrono::milliseconds>(t2-t1).count(); | |
| std::cout << "Parallel " << elapsed << std::endl; | |
| t1 = std::chrono::system_clock::now(); | |
| func1(10000000,0); | |
| t2 = std::chrono::system_clock::now(); | |
| elapsed = std::chrono::duration_cast<std::chrono::milliseconds>(t2-t1).count(); | |
| std::cout << "Serial " << elapsed << std::endl; | |
| } | |
| //------------------------------------------------------------------------ |
Author
kaityo256
commented
Nov 6, 2017
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment