[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