[147134] trunk/dports/python/py-graph-tool

mmoll at macports.org mmoll at macports.org
Tue Mar 29 08:28:56 PDT 2016


Revision: 147134
          https://trac.macports.org/changeset/147134
Author:   mmoll at macports.org
Date:     2016-03-29 08:28:56 -0700 (Tue, 29 Mar 2016)
Log Message:
-----------
py-graph-tool: enable OpenMP when using the clang-3.[89] compilers

Modified Paths:
--------------
    trunk/dports/python/py-graph-tool/Portfile

Added Paths:
-----------
    trunk/dports/python/py-graph-tool/files/
    trunk/dports/python/py-graph-tool/files/graph_blockmodel.hh.patch
    trunk/dports/python/py-graph-tool/files/graph_blockmodel_overlap.hh.patch

Modified: trunk/dports/python/py-graph-tool/Portfile
===================================================================
--- trunk/dports/python/py-graph-tool/Portfile	2016-03-29 14:47:50 UTC (rev 147133)
+++ trunk/dports/python/py-graph-tool/Portfile	2016-03-29 15:28:56 UTC (rev 147134)
@@ -9,8 +9,8 @@
 set realname        graph-tool
 name                py-${realname}
 version             2.13
-revision            1
-epoch               20160307
+revision            2
+epoch               20160329
 categories          python science
 platforms           darwin
 license             GPL-3
@@ -38,6 +38,7 @@
                     sha1    108be4cf6212eb6886f172ea03813187f73e4c3c \
                     rmd160  cd2e8506522821750d70a97b951254f0a133d218
 } else {
+    patchfiles     graph_blockmodel.hh.patch graph_blockmodel_overlap.hh.patch
     if {${name} ne ${subport}} {
         compiler.blacklist *gcc* {clang <= 700.1.81} {macports-clang-3.[0-6]}
         compiler.fallback-append macports-clang-3.7
@@ -82,6 +83,10 @@
     configure.cppflags-append -I${prefix}/include -I${python.include}/..
     configure.ldflags-append -L${prefix}/lib
     configure.args-append --with-boost=${prefix} --exec-prefix=${python.prefix}
+    if {${configure.compiler} eq "macports-clang-3.8" ||
+        ${configure.compiler} eq "macports-clang-3.9"} {
+        configure.args-append --enable-openmp
+    }
     # Clang uses the old libstc++ from gcc 4.2 before OS X 10.9. Boost doesn't
     # include some of the tr1 headers in libstdc++ and defines its own tr1
     # classes. This causes conflicts with sparsehash which insists on using

Added: trunk/dports/python/py-graph-tool/files/graph_blockmodel.hh.patch
===================================================================
--- trunk/dports/python/py-graph-tool/files/graph_blockmodel.hh.patch	                        (rev 0)
+++ trunk/dports/python/py-graph-tool/files/graph_blockmodel.hh.patch	2016-03-29 15:28:56 UTC (rev 147134)
@@ -0,0 +1,84 @@
+--- ./src/graph/community/graph_blockmodel.hh.orig	2016-03-29 05:31:22.000000000 -0400
++++ ./src/graph/community/graph_blockmodel.hh	2016-03-29 05:43:27.000000000 -0400
+@@ -2638,21 +2638,21 @@
+                 vector<int64_t>& vlist, vector<int64_t>& block_list,
+                 bool deg_corr, bool dense, bool multigraph, double beta,
+                 Eprop eweight, Vprop vweight, Graph& g, bool sequential,
+-                bool parallel, bool random_move, double c, size_t nmerges,
++                bool parallel_enabled, bool random_move, double c, size_t nmerges,
+                 Vprop merge_map, size_t niter, size_t B, bool verbose, RNG& rng,
+                 double& S, size_t& nmoves)
+ {
+     typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
+ 
+     if (vlist.size() < 100)
+-        parallel = false;
++        parallel_enabled = false;
+ 
+     nmoves = 0;
+     S = 0;
+ 
+     vector<rng_t*> rngs;
+     size_t num_threads = 1;
+-    if (parallel)
++    if (parallel_enabled)
+     {
+ #ifdef USING_OPENMP
+         num_threads = omp_get_max_threads();
+@@ -2690,7 +2690,7 @@
+     // used only if merging
+     gt_hash_set<vertex_t> past_moves;
+     vector<pair<vertex_t, double> > best_move;
+-    if (nmerges > 0 || parallel)
++    if (nmerges > 0 || parallel_enabled)
+         best_move.resize(num_vertices(g), make_pair(vertex_t(0), numeric_limits<double>::max()));
+ 
+     std::uniform_int_distribution<size_t> s_rand(0, block_list.size() - 1);
+@@ -2699,17 +2699,17 @@
+ 
+     for (size_t iter = 0; iter < niter; ++iter)
+     {
+-        if (nmerges == 0 && !parallel)
++        if (nmerges == 0 && !parallel_enabled)
+             std::shuffle(vlist.begin(), vlist.end(), rng);
+ 
+         int i = 0, N = vlist.size();
+         #pragma omp parallel for default(shared) private(i) \
+             firstprivate(past_moves, m_entries) \
+-            schedule(runtime) if (parallel)
++            schedule(runtime) if (parallel_enabled)
+         for (i = 0; i < N; ++i)
+         {
+             size_t tid = 0;
+-            if (parallel)
++            if (parallel_enabled)
+             {
+     #ifdef USING_OPENMP
+                 tid = omp_get_thread_num();
+@@ -2862,7 +2862,7 @@
+ 
+                 if (accept)
+                 {
+-                    if (!parallel)
++                    if (!parallel_enabled)
+                     {
+                         assert(b[v] == int(r));
+                         move_vertex(v, s, b, cv, vmap, deg_corr, states,
+@@ -2884,7 +2884,7 @@
+             }
+         }
+ 
+-        if (parallel && (nmerges == 0))
++        if (parallel_enabled && (nmerges == 0))
+         {
+             for (vertex_t v : vlist)
+             {
+@@ -2910,7 +2910,7 @@
+         }
+     }
+ 
+-    if (parallel && (nmerges == 0))
++    if (parallel_enabled && (nmerges == 0))
+     {
+         for (auto r : rngs)
+             delete r;

Added: trunk/dports/python/py-graph-tool/files/graph_blockmodel_overlap.hh.patch
===================================================================
--- trunk/dports/python/py-graph-tool/files/graph_blockmodel_overlap.hh.patch	                        (rev 0)
+++ trunk/dports/python/py-graph-tool/files/graph_blockmodel_overlap.hh.patch	2016-03-29 15:28:56 UTC (rev 147134)
@@ -0,0 +1,66 @@
+--- ./src/graph/community/graph_blockmodel_overlap.hh.orig	2016-03-29 05:31:42.000000000 -0400
++++ ./src/graph/community/graph_blockmodel_overlap.hh	2016-03-29 05:37:52.000000000 -0400
+@@ -1287,7 +1287,7 @@
+                         VLprop cv, VVprop vmap, Vprop clabel,
+                         vector<int64_t>& vlist, vector<int64_t>& block_list,
+                         bool deg_corr, bool dense, bool multigraph, double beta,
+-                        Vprop vweight, Graph& g, bool sequential, bool parallel,
++                        Vprop vweight, Graph& g, bool sequential, bool parallel_enabled,
+                         bool random_move, double c, size_t niter, size_t B,
+                         bool verbose, RNG& rng, double& S, size_t& nmoves)
+ {
+@@ -1297,11 +1297,11 @@
+     S = 0;
+ 
+     if (vlist.size() < 100)
+-        parallel = false;
++        parallel_enabled = false;
+ 
+     vector<pair<vertex_t, double> > best_move;
+     vector<rng_t*> rngs;
+-    if (parallel)
++    if (parallel_enabled)
+     {
+         best_move.resize(num_vertices(g), make_pair(vertex_t(0), numeric_limits<double>::max()));
+ 
+@@ -1334,11 +1334,11 @@
+ 
+         int i = 0, N = vlist.size();
+         #pragma omp parallel for default(shared) private(i) \
+-            firstprivate(m_entries) schedule(runtime) if (parallel)
++            firstprivate(m_entries) schedule(runtime) if (parallel_enabled)
+         for (i = 0; i < N; ++i)
+         {
+             size_t tid = 0;
+-            if (parallel)
++            if (parallel_enabled)
+             {
+     #ifdef USING_OPENMP
+                 tid = omp_get_thread_num();
+@@ -1464,7 +1464,7 @@
+ 
+             if (accept)
+             {
+-                if (!parallel)
++                if (!parallel_enabled)
+                 {
+ 
+                     assert(b[v] == int(r));
+@@ -1488,7 +1488,7 @@
+             }
+         }
+ 
+-        if (parallel)
++        if (parallel_enabled)
+         {
+             for (vertex_t v : vlist)
+             {
+@@ -1512,7 +1512,7 @@
+         }
+     }
+ 
+-    if (parallel)
++    if (parallel_enabled)
+     {
+         for (auto r : rngs)
+             delete r;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20160329/6507038d/attachment-0001.html>


More information about the macports-changes mailing list