The following commit has been merged in the master branch:
commit bc2f6be95682dc984f7f8f1241acf901b3b5ca5e
Author: andrei zavada <[email protected]>
Date:   Sun Oct 28 23:02:00 2012 +0200

    omp tweaks, quite elusive at that

diff --git a/src/expdesign/primaries-tree-scanner.cc 
b/src/expdesign/primaries-tree-scanner.cc
index 9461212..2145dc0 100644
--- a/src/expdesign/primaries-tree-scanner.cc
+++ b/src/expdesign/primaries-tree-scanner.cc
@@ -314,6 +314,7 @@ scan_tree( TMsmtCollectProgressIndicatorFun 
user_progress_fun)
        list<string> complete_episode_set = enumerate_episodes();
        size_t  n_episodes = complete_episode_set.size();
 
+#pragma omp flush
        for ( auto &G : groups )
                for ( auto &J : G.second )
                startover:
diff --git a/src/expdesign/primaries.cc b/src/expdesign/primaries.cc
index 953c053..8af096a 100644
--- a/src/expdesign/primaries.cc
+++ b/src/expdesign/primaries.cc
@@ -137,7 +137,7 @@ for_all_subjects( const TSubjectOpFun& F, const 
TSubjectReportFun& report, const
                                v.emplace_back( make_tuple(&G.second, &J));
        size_t global_i = 0;
 #ifdef _OPENMP
-#pragma omp parallel for
+#pragma omp parallel for schedule(guided)
 #endif
        for ( size_t i = 0; i < v.size(); ++i ) {
 #ifdef _OPENMP
@@ -168,7 +168,7 @@ for_all_episodes( const TEpisodeOpFun& F, const 
TEpisodeReportFun& report, const
                                                v.emplace_back( 
make_tuple(&G.second, &J, &M.first, &E));
        size_t global_i = 0;
 #ifdef _OPENMP
-#pragma omp parallel for
+#pragma omp parallel for schedule(guided)
 #endif
        for ( size_t i = 0; i < v.size(); ++i ) {
 #ifdef _OPENMP
@@ -204,7 +204,8 @@ for_all_recordings( const TRecordingOpFun& F, const 
TRecordingReportFun& report,
                                                                            
&R.second));
        size_t global_i = 0;
 #ifdef _OPENMP
-#pragma omp parallel for
+// read that man, bro
+#pragma omp parallel for schedule(guided)
 #endif
        for ( size_t i = 0; i < v.size(); ++i ) {
 #ifdef _OPENMP
@@ -245,7 +246,7 @@ for_all_modruns( const TModelRunOpFun& F, const 
TModelRunReportFun& report, cons
                                                                                
&Q.second));
        size_t global_i = 0;
 #ifdef _OPENMP
-#pragma omp parallel for
+#pragma omp parallel for schedule(guided)
 #endif
        for ( size_t i = 0; i < v.size(); ++i ) {
 #ifdef _OPENMP

-- 
Sleep experiment manager

_______________________________________________
debian-med-commit mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-med-commit

Reply via email to