mirror of https://github.com/CGAL/cgal
Replace LINKED_WITH_TBB by CGAL_LINKED_WITH_TBB.
This commit is contained in:
parent
298e56aa92
commit
b268598665
|
|
@ -38,7 +38,7 @@
|
|||
|
||||
#include <algorithm>
|
||||
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
# ifdef CGAL_MESH_3_WORKSHARING_USES_TASK_SCHEDULER
|
||||
# include <tbb/task.h>
|
||||
# endif
|
||||
|
|
@ -137,7 +137,7 @@ protected:
|
|||
};
|
||||
|
||||
// Parallel
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
template <>
|
||||
class Mesher_level_base <Parallel_tag>
|
||||
{
|
||||
|
|
@ -170,7 +170,7 @@ protected:
|
|||
tbb::task *m_empty_root_task;
|
||||
#endif
|
||||
};
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
|
||||
|
||||
/************************************************
|
||||
|
|
@ -537,13 +537,13 @@ public:
|
|||
previous_level.refine(visitor.previous_level());
|
||||
if(! no_longer_element_to_refine() )
|
||||
{
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
// Parallel
|
||||
if (boost::is_base_of<Parallel_tag, Concurrency_tag>::value)
|
||||
process_a_batch_of_elements(visitor);
|
||||
// Sequential
|
||||
else
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
process_one_element(visitor);
|
||||
}
|
||||
}
|
||||
|
|
@ -564,7 +564,7 @@ public:
|
|||
refine_sequentially_up_to_N_vertices(Mesh_visitor visitor,
|
||||
int approx_max_num_mesh_vertices)
|
||||
{
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
// Parallel
|
||||
if (boost::is_base_of<Parallel_tag, Concurrency_tag>::value)
|
||||
{
|
||||
|
|
@ -573,7 +573,7 @@ public:
|
|||
CGAL_assertion_msg(triangulation().get_lock_data_structure() == 0,
|
||||
"In refine_sequentially_up_to_N_vertices, the triangulation's locking data structure should be NULL");
|
||||
}
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
|
||||
int count = 0;
|
||||
|
||||
|
|
@ -588,7 +588,7 @@ public:
|
|||
}
|
||||
|
||||
#ifdef CGAL_MESH_3_TASK_SCHEDULER_WITH_LOCALIZATION_IDS
|
||||
# ifdef LINKED_WITH_TBB
|
||||
# ifdef CGAL_LINKED_WITH_TBB
|
||||
// Parallel
|
||||
if (boost::is_base_of<Parallel_tag, Concurrency_tag>::value)
|
||||
{
|
||||
|
|
@ -626,7 +626,7 @@ public:
|
|||
}
|
||||
// Sequential
|
||||
else
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -728,7 +728,7 @@ public:
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
/**
|
||||
* This function takes N elements from the queue, and try to refine
|
||||
* it in parallel.
|
||||
|
|
@ -1007,7 +1007,7 @@ public:
|
|||
//=======================================================
|
||||
|
||||
}
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
|
||||
template <class Mesh_visitor>
|
||||
Mesher_level_conflict_status
|
||||
|
|
@ -1023,7 +1023,7 @@ public:
|
|||
Zone zone;
|
||||
|
||||
#ifdef CGAL_MESH_3_LOCKING_STRATEGY_SIMPLE_GRID_LOCKING
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
//=========================================
|
||||
//==== Simple Grid locking
|
||||
//=========================================
|
||||
|
|
@ -1043,7 +1043,7 @@ public:
|
|||
result = test_point_conflict(p, zone, visitor);
|
||||
}
|
||||
else
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
#endif // CGAL_MESH_3_LOCKING_STRATEGY_SIMPLE_GRID_LOCKING
|
||||
{
|
||||
//=========================================
|
||||
|
|
@ -1052,7 +1052,7 @@ public:
|
|||
|
||||
before_conflicts(e, p, visitor);
|
||||
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
//=========== Concurrent? =============
|
||||
if (boost::is_base_of<Parallel_tag, Concurrency_tag>::value)
|
||||
{
|
||||
|
|
@ -1068,7 +1068,7 @@ public:
|
|||
}
|
||||
//=========== or not? =================
|
||||
else
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
{
|
||||
bool facet_not_in_its_cz = false;
|
||||
zone = conflicts_zone(p, e, facet_not_in_its_cz);
|
||||
|
|
@ -1111,7 +1111,7 @@ public:
|
|||
|
||||
Vertex_handle vh = insert(p, zone);
|
||||
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
// Parallel
|
||||
if (boost::is_base_of<Parallel_tag, Concurrency_tag>::value)
|
||||
{
|
||||
|
|
@ -1127,7 +1127,7 @@ public:
|
|||
}
|
||||
// Sequential
|
||||
else
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
{
|
||||
after_insertion(vh, visitor);
|
||||
}
|
||||
|
|
@ -1283,13 +1283,13 @@ public:
|
|||
else
|
||||
if( ! no_longer_element_to_refine() )
|
||||
{
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
// Parallel
|
||||
if (boost::is_base_of<Parallel_tag, Concurrency_tag>::value)
|
||||
process_a_batch_of_elements(visitor);
|
||||
// Sequential
|
||||
else
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
process_one_element(visitor);
|
||||
}
|
||||
return ! is_algorithm_done();
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ if ( CGAL_FOUND )
|
|||
endif()
|
||||
|
||||
if( TBB_FOUND )
|
||||
add_definitions( -DNOMINMAX -DLINKED_WITH_TBB )
|
||||
add_definitions( -DNOMINMAX -DCGAL_LINKED_WITH_TBB )
|
||||
include_directories ( ${TBB_INCLUDE_DIRS} )
|
||||
link_directories( ${TBB_LIBRARY_DIRS} )
|
||||
endif( TBB_FOUND )
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
//#undef LINKED_WITH_TBB
|
||||
//#undef CGAL_LINKED_WITH_TBB
|
||||
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
|
|
@ -17,6 +17,12 @@ const char * const BENCHMARK_SCRIPT_FILENAME =
|
|||
"D:/INRIA/CGAL/workingcopy/Mesh_3/benchmark/Mesh_3/concurrency_script.txt";
|
||||
|
||||
|
||||
// ==========================================================================
|
||||
// BENCHMARK GENERAL PARAMETERS
|
||||
// ==========================================================================
|
||||
|
||||
//#define MESH_3_WITH_FEATURES
|
||||
|
||||
// ==========================================================================
|
||||
// MESH_3 GENERAL PARAMETERS
|
||||
// ==========================================================================
|
||||
|
|
@ -24,7 +30,6 @@ const char * const BENCHMARK_SCRIPT_FILENAME =
|
|||
//#define CGAL_MESH_3_USE_OLD_SURFACE_RESTRICTED_DELAUNAY_UPDATE
|
||||
//#define CGAL_MESH_3_VERBOSE
|
||||
//#define CGAL_MESH_3_VERY_VERBOSE
|
||||
//#define CGAL_MESH_3_USE_LAZY_SORTED_REFINEMENT_QUEUE
|
||||
#define CGAL_MESH_3_INITIAL_POINTS_NO_RANDOM_SHOOTING
|
||||
|
||||
const int FACET_ANGLE = 25;
|
||||
|
|
@ -37,8 +42,8 @@ const int TET_SHAPE = 3;
|
|||
|
||||
#ifdef CONCURRENT_MESH_3
|
||||
|
||||
# ifndef LINKED_WITH_TBB
|
||||
//# error("LINKED_WITH_TBB not defined.") // CJTODO TEMP
|
||||
# ifndef CGAL_LINKED_WITH_TBB
|
||||
//# error("CGAL_LINKED_WITH_TBB not defined.") // CJTODO TEMP
|
||||
# endif
|
||||
|
||||
// ==========================================================================
|
||||
|
|
@ -51,22 +56,23 @@ const int TET_SHAPE = 3;
|
|||
//#define CGAL_CONCURRENT_MESH_3_VERY_VERBOSE
|
||||
|
||||
// ==========================================================================
|
||||
// Concurrent refinement
|
||||
// Concurrency config
|
||||
// ==========================================================================
|
||||
|
||||
const char * const CONFIG_FILENAME =
|
||||
"D:/INRIA/CGAL/workingcopy/Mesh_3/demo/Mesh_3/concurrent_mesher_config.cfg";
|
||||
|
||||
//# define CGAL_MESH_3_USE_LAZY_SORTED_REFINEMENT_QUEUE
|
||||
# define CGAL_MESH_3_ADD_OUTSIDE_POINTS_ON_A_FAR_SPHERE
|
||||
//# define CGAL_MESH_3_ACTIVATE_GRID_INDEX_CACHE_IN_VERTEX // DOES NOT WORK YET
|
||||
|
||||
// =================
|
||||
// Locking strategy
|
||||
// =================
|
||||
|
||||
# define CGAL_MESH_3_ADD_OUTSIDE_POINTS_ON_A_FAR_SPHERE
|
||||
|
||||
# define CGAL_MESH_3_LOCKING_STRATEGY_SIMPLE_GRID_LOCKING
|
||||
|
||||
//# define CGAL_MESH_3_CONCURRENT_REFINEMENT_LOCK_ADJ_CELLS // USELESS, FOR TESTS ONLY
|
||||
//# define CGAL_MESH_3_ACTIVATE_GRID_INDEX_CACHE_IN_VERTEX // DOES NOT WORK YET
|
||||
|
||||
// =====================
|
||||
// Worksharing strategy
|
||||
|
|
@ -82,7 +88,7 @@ const int TET_SHAPE = 3;
|
|||
//# endif
|
||||
//# define CGAL_MESH_3_LOAD_BASED_WORKSHARING // Not recommended
|
||||
//# define CGAL_MESH_3_TASK_SCHEDULER_SORTED_BATCHES_WITH_MULTISET
|
||||
//# define CGAL_MESH_3_TASK_SCHEDULER_SORTED_BATCHES_WITH_SORT
|
||||
# define CGAL_MESH_3_TASK_SCHEDULER_SORTED_BATCHES_WITH_SORT
|
||||
# endif
|
||||
|
||||
// ==========================================================================
|
||||
|
|
@ -113,14 +119,13 @@ const int TET_SHAPE = 3;
|
|||
# define CGAL_MESH_3_IF_UNSORTED_QUEUE_JUST_SORT_AFTER_SCAN
|
||||
|
||||
// For better performance on meshes like fandisk
|
||||
//# define CGAL_MESH_3_ADD_OUTSIDE_POINTS_ON_A_FAR_SPHERE
|
||||
# define CGAL_MESH_3_ADD_OUTSIDE_POINTS_ON_A_FAR_SPHERE
|
||||
|
||||
#endif // CONCURRENT_MESH_3
|
||||
|
||||
|
||||
#define MESH_3_PROFILING
|
||||
//#define CHECK_AND_DISPLAY_THE_NUMBER_OF_BAD_ELEMENTS_IN_THE_END
|
||||
//#define MESH_3_WITH_FEATURES
|
||||
|
||||
// ==========================================================================
|
||||
// ==========================================================================
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ else( ACTIVATE_CONCURRENT_MESH_3 )
|
|||
endif()
|
||||
|
||||
if( TBB_FOUND )
|
||||
add_definitions( -DNOMINMAX -DLINKED_WITH_TBB )
|
||||
add_definitions( -DNOMINMAX -DCGAL_LINKED_WITH_TBB )
|
||||
include_directories ( ${TBB_INCLUDE_DIRS} )
|
||||
link_directories( ${TBB_LIBRARY_DIRS} )
|
||||
endif( TBB_FOUND )
|
||||
|
|
|
|||
|
|
@ -38,8 +38,8 @@
|
|||
|
||||
#ifdef CONCURRENT_MESH_3
|
||||
|
||||
# ifndef LINKED_WITH_TBB
|
||||
# pragma error("LINKED_WITH_TBB not defined.")
|
||||
# ifndef CGAL_LINKED_WITH_TBB
|
||||
# pragma error("CGAL_LINKED_WITH_TBB not defined.")
|
||||
# endif
|
||||
|
||||
# define CGAL_MESH_3_USE_LAZY_SORTED_REFINEMENT_QUEUE
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ if ( CGAL_FOUND )
|
|||
endif()
|
||||
|
||||
if( TBB_FOUND )
|
||||
add_definitions( -DNOMINMAX -DLINKED_WITH_TBB )
|
||||
add_definitions( -DNOMINMAX -DCGAL_LINKED_WITH_TBB )
|
||||
include_directories ( ${TBB_INCLUDE_DIRS} )
|
||||
link_directories( ${TBB_LIBRARY_DIRS} )
|
||||
endif( TBB_FOUND )
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
#ifndef CGAL_MESH_3_LOCKING_DATA_STRUCTURES_H
|
||||
#define CGAL_MESH_3_LOCKING_DATA_STRUCTURES_H
|
||||
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
|
||||
#include <CGAL/Mesh_3/Concurrent_mesher_config.h>
|
||||
|
||||
|
|
@ -502,12 +502,12 @@ typedef Simple_grid_locking_ds_with_thread_ids LockDataStructureType;
|
|||
|
||||
} } //namespace CGAL::Mesh_3
|
||||
|
||||
#else // !LINKED_WITH_TBB
|
||||
#else // !CGAL_LINKED_WITH_TBB
|
||||
|
||||
namespace CGAL { namespace Mesh_3 {
|
||||
typedef void LockDataStructureType;
|
||||
} } //namespace CGAL::Mesh_3
|
||||
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
|
||||
#endif // CGAL_MESH_3_LOCKING_DATA_STRUCTURES_H
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
#include <CGAL/Bbox_3.h>
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
#include <tbb/atomic.h>
|
||||
#endif
|
||||
|
||||
|
|
@ -492,14 +492,14 @@ private:
|
|||
{
|
||||
typedef size_type type;
|
||||
};
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
// Parallel: atomic
|
||||
template<>
|
||||
struct Number_of_elements<Parallel_tag>
|
||||
{
|
||||
typedef tbb::atomic<size_type> type;
|
||||
};
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
|
||||
// Private date members
|
||||
Triangulation tr_;
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ protected:
|
|||
char bits_;
|
||||
};
|
||||
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
// Parallel
|
||||
template<>
|
||||
class Mesh_surface_cell_base_3_base<Parallel_tag>
|
||||
|
|
@ -119,7 +119,7 @@ protected:
|
|||
/// Stores visited facets (4 first bits)
|
||||
bool visited_facets[4];
|
||||
};
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@
|
|||
#include <CGAL/Mesh_3/Profiling_tools.h>
|
||||
#endif
|
||||
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
# include <tbb/compat/thread>
|
||||
#endif
|
||||
|
||||
|
|
@ -73,7 +73,7 @@ protected:
|
|||
void set_bbox(const Bbox_3 &) {}
|
||||
};
|
||||
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
// Parallel
|
||||
template <>
|
||||
class Mesher_3_base<Parallel_tag>
|
||||
|
|
@ -104,7 +104,7 @@ protected:
|
|||
/// Worksharing data structure
|
||||
WorksharingDataStructureType m_worksharing_ds;
|
||||
};
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
|
||||
|
||||
/************************************************
|
||||
|
|
@ -399,7 +399,7 @@ void
|
|||
Mesher_3<C3T3,MC,MD>::
|
||||
initialize()
|
||||
{
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
// Parallel
|
||||
if (boost::is_base_of<Parallel_tag, Concurrency_tag>::value)
|
||||
{
|
||||
|
|
@ -480,7 +480,7 @@ initialize()
|
|||
}
|
||||
// Sequential
|
||||
else
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
{
|
||||
facets_mesher_.scan_triangulation();
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
#define CGAL_MESH_3_PROFILING_TOOLS_H
|
||||
|
||||
// TBB timers
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
#include <tbb/tick_count.h>
|
||||
struct WallClockTimer
|
||||
{
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
#include <CGAL/Mesher_level.h>
|
||||
#include <CGAL/Mesher_level_default_implementations.h>
|
||||
#include <CGAL/Meshes/Triangulation_mesher_level_traits_3.h>
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
#include <tbb/tbb.h>
|
||||
#endif
|
||||
|
||||
|
|
@ -115,7 +115,7 @@ protected:
|
|||
mutable Index m_last_vertex_index;
|
||||
};
|
||||
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
// Parallel
|
||||
template <typename Index>
|
||||
class Refine_cells_3_base<Index, Parallel_tag>
|
||||
|
|
@ -136,7 +136,7 @@ protected:
|
|||
/// Stores index of vertex that may be inserted into triangulation
|
||||
mutable tbb::enumerable_thread_specific<Index> m_last_vertex_index;
|
||||
};
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
|
||||
/************************************************
|
||||
// Class Refine_cells_3
|
||||
|
|
@ -155,7 +155,7 @@ template<class Tr,
|
|||
class Complex3InTriangulation3,
|
||||
class Previous_,
|
||||
class Concurrency_tag, // CJTODO => change to Sequential_tag
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
class Container_ = typename boost::mpl::if_c // (parallel/sequential?)
|
||||
<
|
||||
boost::is_base_of<Parallel_tag, Concurrency_tag>::value,
|
||||
|
|
@ -195,7 +195,7 @@ template<class Tr,
|
|||
# endif
|
||||
>::type // boost::if (parallel/sequential)
|
||||
|
||||
#else // !LINKED_WITH_TBB
|
||||
#else // !CGAL_LINKED_WITH_TBB
|
||||
|
||||
// Sequential
|
||||
class Container_ =
|
||||
|
|
@ -220,7 +220,7 @@ template<class Tr,
|
|||
typename Criteria::Cell_quality>
|
||||
# endif
|
||||
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
>
|
||||
class Refine_cells_3
|
||||
: public Refine_facets_3_base<typename MeshDomain::Index, Concurrency_tag>
|
||||
|
|
@ -407,7 +407,9 @@ private:
|
|||
|
||||
/// Computes badness and add to queue if needed
|
||||
void compute_badness_internal(const Cell_handle& cell, Sequential_tag);
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
void compute_badness_internal(const Cell_handle& cell, Parallel_tag);
|
||||
#endif
|
||||
void compute_badness(const Cell_handle& cell);
|
||||
|
||||
// Updates cells incident to vertex, and add them to queue if needed
|
||||
|
|
@ -520,7 +522,7 @@ scan_triangulation_impl()
|
|||
#endif
|
||||
|
||||
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
// Parallel
|
||||
if (boost::is_base_of<Parallel_tag, Ct>::value)
|
||||
{
|
||||
|
|
@ -571,7 +573,7 @@ scan_triangulation_impl()
|
|||
}
|
||||
// Sequential
|
||||
else
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
{
|
||||
std::cerr << "Scanning triangulation for bad cells (sequential)... ";
|
||||
|
||||
|
|
@ -808,6 +810,7 @@ compute_badness_internal(const Cell_handle& cell, Sequential_tag)
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
template<class Tr, class Cr, class MD, class C3T3_, class P_, class Ct, class C_>
|
||||
void
|
||||
Refine_cells_3<Tr,Cr,MD,C3T3_,P_,Ct,C_>::
|
||||
|
|
@ -819,13 +822,18 @@ compute_badness_internal(const Cell_handle& cell, Parallel_tag)
|
|||
this->add_bad_element(std::make_pair(cell, cell->get_erase_counter()), *is_cell_bad);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
template<class Tr, class Cr, class MD, class C3T3_, class P_, class Ct, class C_>
|
||||
void
|
||||
Refine_cells_3<Tr,Cr,MD,C3T3_,P_,Ct,C_>::
|
||||
compute_badness(const Cell_handle& cell)
|
||||
{
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
compute_badness_internal(cell, Ct());
|
||||
#else
|
||||
compute_badness_internal(cell, Sequential_tag());
|
||||
#endif
|
||||
}
|
||||
|
||||
template<class Tr, class Cr, class MD, class C3T3_, class P_, class Ct, class C_>
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
|
||||
#include <CGAL/Mesher_level.h>
|
||||
#include <CGAL/Mesher_level_default_implementations.h>
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
#include <tbb/tbb.h>
|
||||
#endif
|
||||
|
||||
|
|
@ -138,7 +138,7 @@ protected:
|
|||
mutable Index m_last_vertex_index;
|
||||
};
|
||||
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
// Parallel
|
||||
template <typename Index>
|
||||
class Refine_facets_3_base<Index, Parallel_tag>
|
||||
|
|
@ -159,7 +159,7 @@ protected:
|
|||
/// Stores index of vertex that may be inserted into triangulation
|
||||
mutable tbb::enumerable_thread_specific<Index> m_last_vertex_index;
|
||||
};
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
|
||||
/************************************************
|
||||
// Class Refine_facets_3
|
||||
|
|
@ -179,7 +179,7 @@ template<class Tr,
|
|||
class Complex3InTriangulation3,
|
||||
class Previous_level_,
|
||||
class Concurrency_tag,
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
class Container_ = typename boost::mpl::if_c // (parallel/sequential?)
|
||||
<
|
||||
boost::is_base_of<Parallel_tag, Concurrency_tag>::value,
|
||||
|
|
@ -221,7 +221,7 @@ template<class Tr,
|
|||
# endif
|
||||
>::type // boost::if (parallel/sequential)
|
||||
|
||||
#else // !LINKED_WITH_TBB
|
||||
#else // !CGAL_LINKED_WITH_TBB
|
||||
|
||||
// Sequential
|
||||
class Container_ =
|
||||
|
|
@ -247,7 +247,7 @@ template<class Tr,
|
|||
Meshes::Double_map_container<typename Tr::Facet,
|
||||
typename Criteria::Facet_quality>
|
||||
# endif
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
>
|
||||
class Refine_facets_3
|
||||
: public Refine_facets_3_base<typename MeshDomain::Index, Concurrency_tag>
|
||||
|
|
@ -558,7 +558,7 @@ private:
|
|||
/// Insert facet into refinement queue
|
||||
void insert_bad_facet(Facet& facet, const Quality& quality)
|
||||
{
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
// Parallel
|
||||
if (boost::is_base_of<Parallel_tag, Concurrency_tag>::value)
|
||||
{
|
||||
|
|
@ -572,7 +572,7 @@ private:
|
|||
}
|
||||
// Sequential
|
||||
else
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
{
|
||||
#if defined(CGAL_MESH_3_USE_LAZY_SORTED_REFINEMENT_QUEUE) \
|
||||
|| defined(CGAL_MESH_3_USE_LAZY_UNSORTED_REFINEMENT_QUEUE)
|
||||
|
|
@ -608,11 +608,11 @@ private:
|
|||
this->remove_element(canonical_facet);
|
||||
#endif
|
||||
}
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
/// Removes facet from refinement queue
|
||||
// Parallel: it's always lazy, so do nothing
|
||||
void remove_bad_facet(Facet& facet, Parallel_tag) {}
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
|
||||
/**
|
||||
* Action to perform on a facet inside the conflict zone before insertion
|
||||
|
|
@ -727,7 +727,7 @@ scan_triangulation_impl()
|
|||
<< "Tets : " << r_c3t3_.triangulation().number_of_cells() << std::endl;
|
||||
#endif
|
||||
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
// Parallel
|
||||
if (boost::is_base_of<Parallel_tag, Ct>::value)
|
||||
{
|
||||
|
|
@ -745,7 +745,7 @@ scan_triangulation_impl()
|
|||
}
|
||||
// Sequential
|
||||
else
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
{
|
||||
std::cerr << "Scanning triangulation for bad facets (sequential)...";
|
||||
for(Finite_facet_iterator facet_it = r_tr_.finite_facets_begin();
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
#ifndef CGAL_MESH_3_WORKSHARING_DATA_STRUCTURES_H
|
||||
#define CGAL_MESH_3_WORKSHARING_DATA_STRUCTURES_H
|
||||
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
|
||||
#include <CGAL/Mesh_3/Concurrent_mesher_config.h>
|
||||
|
||||
|
|
@ -1001,12 +1001,12 @@ inline tbb::task* WorkBatchTask::execute()
|
|||
|
||||
} } //namespace CGAL::Mesh_3
|
||||
|
||||
#else // !LINKED_WITH_TBB
|
||||
#else // !CGAL_LINKED_WITH_TBB
|
||||
|
||||
namespace CGAL { namespace Mesh_3 {
|
||||
typedef void WorksharingDataStructureType;
|
||||
} } //namespace CGAL::Mesh_3
|
||||
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
|
||||
#endif // CGAL_MESH_3_WORKSHARING_DATA_STRUCTURES_H
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ class Mesh_complex_3_in_triangulation_3 :
|
|||
public Mesh_3::Mesh_complex_3_in_triangulation_3_base
|
||||
<
|
||||
Tr,
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
typename boost::mpl::if_c
|
||||
<
|
||||
Tr::Is_for_parallel_mesh_3,
|
||||
|
|
@ -57,11 +57,11 @@ class Mesh_complex_3_in_triangulation_3 :
|
|||
>::type
|
||||
#else
|
||||
Sequential_tag
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
>
|
||||
{
|
||||
public:
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
typedef typename boost::mpl::if_c
|
||||
<
|
||||
Tr::Is_for_parallel_mesh_3,
|
||||
|
|
@ -70,7 +70,7 @@ public:
|
|||
>::type Concurrency_tag;
|
||||
#else
|
||||
typedef Sequential_tag Concurrency_tag;
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
|
||||
private:
|
||||
typedef Mesh_complex_3_in_triangulation_3<
|
||||
|
|
|
|||
|
|
@ -86,9 +86,9 @@ template< class MD,
|
|||
CGAL::Triangulation_cell_base_with_circumcenter_3
|
||||
<
|
||||
GT
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
, Triangulation_lazy_ds_cell_base_3<Parallel_tag>
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
>
|
||||
>
|
||||
>
|
||||
|
|
@ -98,18 +98,18 @@ private:
|
|||
typedef GT Geom_traits;
|
||||
typedef Mesh_vertex_base_3<Geom_traits, MD> Vertex_base;
|
||||
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
typedef Mesh_cell_base_3<Geom_traits, MD, Cb, Parallel_tag> Cell_base;
|
||||
typedef Triangulation_data_structure_3<
|
||||
Vertex_base,Cell_base, true> Tds;
|
||||
typedef Regular_triangulation_3<Geom_traits, Tds, true> Triangulation;
|
||||
|
||||
#else // !LINKED_WITH_TBB
|
||||
#else // !CGAL_LINKED_WITH_TBB
|
||||
typedef Mesh_cell_base_3<Geom_traits, MD, Cb, Sequential_tag> Cell_base;
|
||||
typedef Triangulation_data_structure_3<
|
||||
Vertex_base,Cell_base> Tds;
|
||||
typedef Regular_triangulation_3<Geom_traits, Tds> Triangulation;
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
|
||||
public:
|
||||
typedef Triangulation type;
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
#include <algorithm>
|
||||
#include <utility>
|
||||
#include <deque>
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
#include <tbb/enumerable_thread_specific.h>
|
||||
#endif
|
||||
|
||||
|
|
@ -75,7 +75,7 @@ namespace Meshes {
|
|||
}
|
||||
};
|
||||
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
// Parallel
|
||||
template <typename Element, typename Quality>
|
||||
class Filtered_deque_container_base<Element, Quality, Parallel_tag>
|
||||
|
|
@ -170,7 +170,7 @@ namespace Meshes {
|
|||
LocalList m_local_lists;
|
||||
bool m_add_to_TLS_lists;
|
||||
};
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
|
||||
/************************************************
|
||||
// Class Filtered_deque_container
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
|
||||
#include <map>
|
||||
#include <deque>
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
#include <tbb/enumerable_thread_specific.h>
|
||||
#endif
|
||||
|
||||
|
|
@ -74,7 +74,7 @@ namespace CGAL {
|
|||
}
|
||||
};
|
||||
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
// Parallel
|
||||
template <typename Element, typename Quality>
|
||||
class Filtered_multimap_container_base<Element, Quality, Parallel_tag>
|
||||
|
|
@ -167,7 +167,7 @@ namespace CGAL {
|
|||
LocalList m_local_lists;
|
||||
bool m_add_to_TLS_lists;
|
||||
};
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
|
||||
/************************************************
|
||||
// Class Filtered_multimap_container
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
|
||||
#include <CGAL/Triangulation_ds_cell_base_3.h>
|
||||
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
# include <tbb/atomic.h>
|
||||
#endif
|
||||
|
||||
|
|
@ -42,7 +42,7 @@ protected:
|
|||
Erase_counter_type m_erase_counter;
|
||||
};
|
||||
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
// Specialized version (Parallel)
|
||||
template <>
|
||||
class Triangulation_lazy_ds_cell_base_3_base<Parallel_tag>
|
||||
|
|
@ -72,7 +72,7 @@ protected:
|
|||
int m_localization_id;
|
||||
#endif
|
||||
};
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
|
||||
template < typename Concurrency_tag = Sequential_tag, typename TDS = void >
|
||||
class Triangulation_lazy_ds_cell_base_3
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ if ( CGAL_FOUND )
|
|||
endif()
|
||||
|
||||
if( TBB_FOUND )
|
||||
add_definitions( -DNOMINMAX -DLINKED_WITH_TBB )
|
||||
add_definitions( -DNOMINMAX -DCGAL_LINKED_WITH_TBB )
|
||||
include_directories ( ${TBB_INCLUDE_DIRS} )
|
||||
link_directories( ${TBB_LIBRARY_DIRS} )
|
||||
endif( TBB_FOUND )
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
//
|
||||
// Author(s) : Clement Jamin
|
||||
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
|
||||
#ifndef CGAL_CONCURRENT_COMPACT_CONTAINER_H
|
||||
#define CGAL_CONCURRENT_COMPACT_CONTAINER_H
|
||||
|
|
@ -960,4 +960,4 @@ namespace internal {
|
|||
|
||||
#endif // CGAL_CONCURRENT_COMPACT_CONTAINER_H
|
||||
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
|
|
@ -26,7 +26,7 @@
|
|||
#include <CGAL/basic.h>
|
||||
|
||||
#include <set>
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
# include <tbb/enumerable_thread_specific.h>
|
||||
#endif
|
||||
|
||||
|
|
@ -901,7 +901,7 @@ namespace CGAL {
|
|||
}
|
||||
};
|
||||
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
// Parallel version specialization
|
||||
template<>
|
||||
class Hidden_point_visitor<true>
|
||||
|
|
@ -963,7 +963,7 @@ namespace CGAL {
|
|||
c->hide_point(p);
|
||||
}
|
||||
};
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
|
||||
Hidden_point_visitor<used_by_parallel_mesh_3> &get_hidden_point_visitor()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -111,7 +111,7 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
// Parallel
|
||||
template <>
|
||||
class Triangulation_3_base<true>
|
||||
|
|
@ -141,7 +141,7 @@ public:
|
|||
protected:
|
||||
Mesh_3::LockDataStructureType *m_lock_ds;
|
||||
};
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
|
||||
/************************************************
|
||||
*
|
||||
|
|
@ -169,7 +169,7 @@ class Triangulation_3
|
|||
<
|
||||
GT
|
||||
// Force lazy cells if used by parallel Mesh_3
|
||||
#if defined(LINKED_WITH_TBB) \
|
||||
#if defined(CGAL_LINKED_WITH_TBB) \
|
||||
&& !defined(CGAL_MESH_3_USE_LAZY_SORTED_REFINEMENT_QUEUE) \
|
||||
&& !defined(CGAL_MESH_3_USE_LAZY_UNSORTED_REFINEMENT_QUEUE)
|
||||
,typename boost::mpl::if_c
|
||||
|
|
@ -606,7 +606,7 @@ public:
|
|||
|
||||
bool try_lock_vertex(Vertex_handle vh, int lock_radius = 0) const
|
||||
{
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
// Parallel Mesh_3
|
||||
if (used_by_parallel_mesh_3)
|
||||
{
|
||||
|
|
@ -636,7 +636,7 @@ public:
|
|||
#endif
|
||||
}
|
||||
}
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -644,7 +644,7 @@ public:
|
|||
{
|
||||
bool success = true;
|
||||
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
# ifdef CGAL_MESH_3_LOCKING_STRATEGY_SIMPLE_GRID_LOCKING
|
||||
if (used_by_parallel_mesh_3)
|
||||
{
|
||||
|
|
@ -657,7 +657,7 @@ public:
|
|||
}
|
||||
}
|
||||
# endif
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
|
||||
return success;
|
||||
}
|
||||
|
|
@ -665,7 +665,7 @@ public:
|
|||
{
|
||||
bool success = true;
|
||||
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
# ifdef CGAL_MESH_3_LOCKING_STRATEGY_SIMPLE_GRID_LOCKING
|
||||
if (used_by_parallel_mesh_3)
|
||||
{
|
||||
|
|
@ -679,7 +679,7 @@ public:
|
|||
}
|
||||
}
|
||||
#endif // CGAL_MESH_3_LOCKING_STRATEGY_SIMPLE_GRID_LOCKING
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
|
||||
return success;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@
|
|||
#include <CGAL/internal/Triangulation_ds_circulators_3.h>
|
||||
|
||||
#ifdef CGAL_HAS_THREADS
|
||||
# ifdef LINKED_WITH_TBB
|
||||
# ifdef CGAL_LINKED_WITH_TBB
|
||||
# include <tbb/enumerable_thread_specific.h>
|
||||
# else
|
||||
# include <boost/thread/tss.hpp>
|
||||
|
|
@ -121,7 +121,7 @@ private:
|
|||
|
||||
public:
|
||||
|
||||
#ifdef LINKED_WITH_TBB
|
||||
#ifdef CGAL_LINKED_WITH_TBB
|
||||
// Cells
|
||||
typedef typename boost::mpl::if_c
|
||||
<
|
||||
|
|
@ -147,7 +147,7 @@ public:
|
|||
Compact_container<Vertex>
|
||||
>::type Vertex_range;
|
||||
|
||||
#else // !LINKED_WITH_TBB
|
||||
#else // !CGAL_LINKED_WITH_TBB
|
||||
|
||||
// Cells
|
||||
# if defined(CGAL_MESH_3_USE_LAZY_SORTED_REFINEMENT_QUEUE) \
|
||||
|
|
@ -161,7 +161,7 @@ public:
|
|||
// Vertices
|
||||
typedef Compact_container<Vertex> Vertex_range;
|
||||
|
||||
#endif // LINKED_WITH_TBB
|
||||
#endif // CGAL_LINKED_WITH_TBB
|
||||
|
||||
typedef typename Cell_range::size_type size_type;
|
||||
typedef typename Cell_range::difference_type difference_type;
|
||||
|
|
@ -1243,7 +1243,7 @@ create_star_3(Vertex_handle v, Cell_handle c, int li,
|
|||
set_adjacency(cnew, li, c_li, c_li->index(c));
|
||||
|
||||
#ifdef CGAL_HAS_THREADS
|
||||
# ifdef LINKED_WITH_TBB
|
||||
# ifdef CGAL_LINKED_WITH_TBB
|
||||
static tbb::enumerable_thread_specific< std::vector<iAdjacency_info> > stack_safe_ptr;
|
||||
std::vector<iAdjacency_info>& adjacency_info_stack = stack_safe_ptr.local();
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue