CGAL/cgal

Parallel tetrahedral remeshing using TBB

Closed this issue · 5 comments

Project Summary

The goal of this project is to parallelize the CGAL Tetrahedral Remeshing package using the Intel Threading Building Blocks (TBB) library. This will significantly reduce the computational time required for remeshing large meshes, enabling faster and more efficient simulations. CGAL already provides some parallel implementations for some of its packages. While the primary focus is to parallelize the Remeshing package, a key objective is to lay the foundation for a generic parallelization framework for CGAL. Analogously to C++ STL's execution policies we would like to develop a framework that could, as future work, be extended to the rest of the library and allow to seamlessly change execution policies. The core of this proposal is a generic framework for the parallel execution of atomic operations using TBB in the remeshing package.

Links

List of commits:

  • beb282f67e4 shorten a few lines
  • c9fc73fda55 fix execution policy
  • 34adfe4771c initialize m_moves, not a temporary vector
  • 0391f332cfd fix verbose macros
  • 06cf5c44388 these assertions are wrong
  • f9e8374942d add more parallel tests
  • 0b765685cdd fix compilation when using a T3 with Sequential_tag and CGAL_LINKED_WITH_TBB defined
  • 3660ac6c564 deleted trailing whitespaces
  • 5b00d880eed Removed tabs
  • bb0fd7adf36 dedicated macro for debug logs for the split operation
  • ae316c62be4 Dedicated macro for flip debug logs, saving incident cells if locking was successful
  • 91cfbfa3974 Writing lock stats when CGAL_TETRAHEDRAL_REMESHING_WRITE_LOCK_STATS is defined
  • 44df91cae45 missing dependencies
  • 7d5fdf68eff trailing whitespaces and removed extra files
  • 54484a64873 fix compilation with g++
  • c5c77bd7eb5 remaining tabs
  • 8f9efe37c3a remove CMakeLists.txt that does not fit the package template
  • 87d3e66ede6 replace tabs
  • 29fcd3d4799 more tests and compilation fixes
  • c6b7a952800 start using parallel code in tests
  • f5fdca6a135 add missing template parameter for CI
  • 361d7f44b7a add missing mutable
  • 6aaa0d5a03d more compilation fixes
  • 1802252287a fix license issues, trailing whitespaces, and compilation without tbb
  • 6e0352fc7b7 add concurrent remeshing to examples
  • a708ffc2767 fix tabs and indentation
  • ee33f577164 Merge branch 'gsoc2025-Tetra_remeshing_parallel-imanolas' of github.com:CGAL/cgal-public-dev into gsoc2025-Tetra_remeshing_parallel-imanolas
  • 421dc84acc1 fix compilation (and remove a few trailing whitespaces)
  • e8344c0e6c4 fix compilation
  • 314f47c8990 Merge branch 'gsoc2025-Tetra_remeshing_parallel-imanolas' of https://github.com/IasonManolas/cgal into gsoc2025-Tetra_remeshing_parallel-imanolas
  • c011fee2057 Merge branch 'CGAL:master' into gsoc2025-Tetra_remeshing_parallel-imanolas
  • 56e054d3993 Merge branch 'gsoc2025-Tetra_remeshing_parallel-imanolas' of https://github.com/CGAL/cgal-public-dev into gsoc2025-Tetra_remeshing_parallel-imanolas
  • e82acfb558d - Refactor adaptive tetrahedral remeshing benchmark to utilize C3t3 structure. - cached incident cells for the flipping operation using a tbb concurrent container. This could be extended to the rest operations as well if needed. - Removed partial smoothing steps and now refactored smoothing can be turned on/off as a whole
  • 12f6041f5a7 Merge remote-tracking branch 'cgal/6.0.x-branch' into cgal/master
  • 8c25c60052f Merge remote-tracking branch 'cgal/5.6.x-branch' into 'cgal/6.0.x-branch'
  • 06b03c51ce8 Fix the handling of non-simply connected faces in the output of clip with plane (#9044)
  • 3654f780ae0 Initialize the lower bound face in traversal of the AABB-tree for Hausdorff distance (#9041)
  • 24f70c8b3dc add an example of issue_7164 with a closed model
  • 37f90189970 Initialized the lower bound face in traversal of the AABB-tree to solve issue-7164
  • dc2b48bed49 Tolerance for FT without sqrt (#9053)
  • 1573340408a Robustify cut plugin (#9037)
  • e881b42f8a8 fix compilation and trailing whitespaces
  • ca869de9938 more macro protections for MSVC
  • 7a08a00c7ae tolerance for FT without sqrt
  • 1967525a7bc - Updated benchmark files to utilize the C3t3 type for computing the mesh quality on the cells of the complex instead of all finite cells. This is usefull when we add the far points to decrease lock conflict in a parallel context - Quality metrics functions to work with the C3t3 structure (as done in the Mesh_3 package) - Added error handling in metadata generation script for robustness. - Improved logging and debugging capabilities in edge collapse and split operations. - Refactored various functions to ensure consistency
  • 46294c0b7a8 CI...
  • c0de2cf4a2f move to T2
  • 478dab85c1e macro protection
  • f6bfc3bf960 update license
  • c2f14177e54 add new tests
  • 96e67f30485 change to Triangulation_2 license
  • a027377f093 fix the handling of non-simply connected faces in the output
  • ae6ffd5e097 use EPICK and Side_of_triangle_mesh
  • b741ed91ea1 Make sure Boost system is also found (#8999)
  • 9f0694501f1 First correct parallel collapse and paralle remeshing in general.
  • 696bd52d047 Reset to original
  • 31efdfcb750 Add thread-safe logging and edge pair dumping functionality
  • 6c400d05080 - Removed redundant methods - Introduced thread-safe logging for edge split operations to facilitate debugging. - Updated the ElementaryOperation class to support ordered and unordered processing strategies. - Enhanced the EdgeSplitOperation to include detailed logging and improved edge handling. - Refactored vertex smoothing operations
  • a6f6cdd4f50 Fixed const correctness for the edge parameter
  • 50793c99dd2 make sure system is also found
  • 2acb2e6b4e3 small fix
  • 39e7d158639 - Changed the boost::bimap to a vector for testing purposes
  • 14c8f80e9fa added missing #endif
  • 17a89fc7252 - Modified the smooth() function to incorporate a new preprocessor macro for refactored smoothing.
  • 3de21b938ce Refactor vertex smoothing operations and enhance context management
  • 9ca1601018f Refactor vertex smoothing operations and enhance context management
  • cc38302c426 Enhance vertex smoothing operations with new context and surface handling
  • 6f9ceaa7035 Update benchmark configuration and documentation for preprocessor macros
  • e36a869030a Add preprocessor macros configuration and enhance benchmark scripts
  • 03301cac658 Refactor tetrahedral remeshing operations for improved configurability
  • 53b2b1630ae Refactor elementary operations to use a unified ElementSource type
  • c5a2b0a7211 Added an additional command line parameter
  • 92f8eb72e2a Added comment for thread-safety of updating the valence maps during flipping
  • e793a75c9b7 Small Refactoring - Removed the SSI type alias and its associated static variable, shifting away from tracking subdomain indices for vertices. - Added a comment regarding the thread safety of s_boundary_vertices_valences. - Marked collectBoundaryEdgesAndComputeVerticesValences for future refactoring due to inefficiency. - Ensured execute_boundary_edge_flip checks for empty s_boundary_vertices_valences before preprocessing.
  • 32bc09bfe4f Implemented parallel boundary edge flipping operation. Quality metrics similar to original sequential implementation.
  • 6e6f14056c8 Refactor locking mechanism in edge flip operations. Working version
  • 789b0999f28 Added debug functions
  • 830ed3fd87a Fix trailing whitespace
  • 41dec1a8a83 Change batch size to 5
  • 3623b14ca60 Try to get a superset of the lock zone for edge flips
  • 68d95d7a26e Enable some macros
  • 41a87782500 - The execution policy of the internal flip operation depends on whether CGAL_CONCURRENT_TETRAHEDRAL_REMESHING is defined -ENABLE_EDGE_FLIP_DEBUG defined only uses flipping during the remeshing
  • c705ba94d89 Fix taking reference to temporary object
  • 7254859a20d Fix static thread local variable definitions
  • d88e1bad669 Fix trailing whitespace
  • a4d4ec6b1ca - added some preprocessor macros for
  • f6e3cbe68c7 -using the parallel tag in the Remeshing_triangulation structure -added tbb related code
  • 10bb7ffeee7 -added dump edge function
  • 8f0c63340e4 - dumping info for debugging purposes - Renamed unlock_zone to unlock_all_thread_elements
  • e7872b15d54 Removed dangling "}"
  • 243b612f098 - Added preproccessor macro for using the threadsafe variant of the incident_cells function - Remove static incident cache variable. Lazily recomputing incident cells whenever needed to avoid any data race issues for now. - get_lock_zone simply returns the incident cells of the first vertex. Done this for easier debugging since visually the lock zone seems wrong(edges that are not part of the triangulation are part of the lock zone) - can_apply_operation does the check for is_edge_uv
  • 755b53eab30 added missing code
  • 603f816847e fixed compilation issues
  • 0918c806e26 Fixed compilation issues
  • d83b85690f9 Refactored
  • e26216a35d7 Implemented LockManager and hardcoded the execution policy of internal to parallel and of boundary flipping to sequential to ease debugging
  • ab5041b0fbd Reduced the number of template parameters of the ElementaryOperation interface to C3t3, ElementType and ElementLockType
  • 1fe1e7f42b5 updated benchmark creation and comparison scripts and config files. added config templates
  • fab9e0982dc Revert "Fix crash in benchmark_refactored_tetrahedral_remeshing.cpp"
  • 3c5293aca29 Fix crash in benchmark_refactored_tetrahedral_remeshing.cpp
  • b191aa20304 Added an additional template parameter to ElementaryOperation to allow returning and ElementSource instead of an iterator range. This is used in the edge flip operation to return a vector of vertex pairs instead of an iterator range
  • 24de54ceb90 Revised elementary operations interface and execution classes
  • f5e122c11bd First working refactored elementary operation. It produces the same results as the original implementation but currently has some workarounds for code that was not fitting in our current ElementaryOperation interface. Its performance is also currently worse than the original.
  • 2a62abbd9de Moved the switch for the refactored split version into the split() function
  • 49829707a5f - Creating the absolute path of the results json -Using CMAKE_CURRENT_SOURCE_DIR instead of CMAKE_SOURCE_DIR
  • b5349826635 Merge remote-tracking branch 'jane_cgal_origin/Tet_remeshing-deterministic-jtournois' into gsoc2025-Tetra_remeshing_parallel-imanolas
  • cb19aa7febb cleaning
  • fcf02c4cebf make tetrahedral_remeshing deterministic
  • ecd2ed13f88 add a test for determinism of Tetrahedral_remeshing
  • 0e1f6eed2cb Renamed "atomic" to "elementary" Replaced tabs with spaces
  • cac5b81da22 Renamed benchmark_atomic_tetrahedral_remeshing to benchmark_refactored_tetrahedral_remeshing
  • 22b7704f160 injected code that calls my refactored atomic operations using a preprocessor macro. In the future this will change but will use this approach for now in order to gradually build up the refactored atomic operations
  • dbbf9855e06 Added interface for the atomic operations and the execution of atomic operations
  • 5a216baae3b Edited to add the new executable for benchmarking my generic tetrahedral remeshing
  • 3eba2b8271b Added new file to benchmark the refactored tetrahedral remeshing that uses my generic atomic operation functions.
  • 0f200cb30f4 Add detailed README files for the benchmarking pipeline
  • 4b3f1ea5a3c Add README for benchmarking pipeline with features, quickstart, and directory structure
  • 38b623d7133 Remove obsolete benchmark configuration files for tetrahedral remeshing. This commit deletes benchmark_config.h and concurrent_mesher_config.cfg, which are no longer needed for the current benchmarking framework.
  • de5b88803f8 Add benchmark comparison scripts and configuration for tetrahedral remeshing
  • b621c16913c Add benchmark creation scripts and configuration for tetrahedral remeshing
  • 4c3282f2ce6 Add common utilities and typedefs for tetrahedral remeshing benchmarks
  • a0749b7461b Refactor quality metrics generation in mesh_quality.h to use JSON for results output. Removed deprecated performance data macros.
  • 9b1ee28338a Enhance CMake configuration for tetrahedral remeshing benchmarks by adding support for adaptive remeshing, integrating Python metadata generation, and improving dependency management. Introduced a new Python script for generating executable metadata and updated build commands accordingly.
  • 563f12deebd Remove deprecated benchmark files for tetrahedral remeshing, including XML exporter, implicit functions, and Python scripts for benchmarking and chart generation.
  • 3a3ecdc7571 Added main file to benchmark uniform remeshing
  • b3153539962 main file to benchmark adaptive remeshing
  • 7428ccc08f4 Revert "New benchmark python pipeline"
  • f3124253086 New benchmark python pipeline
  • d2b6dfa7b56 Converted the .sh script to a python script to ease debugging
  • 96062e1671e Ported Mesh_3 benchmarks. Modified benchmarks for the tetrahedral remeshing package.

پروجیکٹ کا خلاصہ

اس پروجیکٹ کا مقصد انٹیل تھریڈنگ بلڈنگ بلاکس (TBB) لائبریری کا استعمال کرتے ہوئے CGAL Tetrahedral Remeshing پیکیج کو متوازی بنانا ہے۔ اس سے بڑی میشوں کو دوبارہ بنانے کے لیے درکار کمپیوٹیشنل وقت کو نمایاں طور پر کم کر دیا جائے گا، تیز اور زیادہ کارآمد سمولیشنز کو قابل بنایا جائے گا۔ CGAL پہلے ہی اپنے کچھ پیکجوں کے لیے کچھ متوازی نفاذ فراہم کرتا ہے۔ جبکہ بنیادی توجہ Remeshing پیکیج کو متوازی بنانا ہے، ایک کلیدی مقصد CGAL کے لیے ایک عام متوازی فریم ورک کی بنیاد رکھنا ہے۔ C++ STL کی عمل درآمد کی پالیسیوں کے مطابق ہم ایک ایسا فریم ورک تیار کرنا چاہیں گے جو مستقبل کے کام کے طور پر، لائبریری کے باقی حصوں تک بڑھایا جا سکے اور بغیر کسی رکاوٹ کے عمل درآمد کی پالیسیوں کو تبدیل کرنے کی اجازت دے سکے۔ اس تجویز کا بنیادی حصہ ریمیشنگ پیکیج میں ٹی بی بی کا استعمال کرتے ہوئے جوہری کارروائیوں کے متوازی عمل کے لیے ایک عمومی فریم ورک ہے۔

لنکس

وعدوں کی فہرست:

  • beb282f67e4چند لائنیں مختصر کریں
  • c9fc73fda55عملدرآمد کی پالیسی کو درست کریں
  • 34adfe4771cm_moves کو شروع کریں، عارضی ویکٹر نہیں۔
  • 0391f332cfdوربوز میکروز کو ٹھیک کریں۔
  • 06cf5c44388یہ دعوے غلط ہیں
  • f9e8374942dمزید متوازی ٹیسٹ شامل کریں۔
  • 0b765685cddSequential_tag اور CGAL_LINKED_WITH_TBB کی وضاحت کے ساتھ T3 استعمال کرتے وقت تالیف درست کریں
  • 3660ac6c564پچھلی خالی جگہوں کو حذف کر دیا گیا۔
  • 5b00d880eedہٹائے گئے ٹیبز
  • bb0fd7adf36سپلٹ آپریشن کے لیے ڈیبگ لاگز کے لیے وقف شدہ میکرو
  • ae316c62be4فلپ ڈیبگ لاگز کے لیے وقف شدہ میکرو، اگر لاکنگ کامیاب رہا تو واقعے کے سیلز کو محفوظ کرنا
  • 91cfbfa3974جب CGAL_TETRAHEDRAL_REMESHING_WRITE_LOCK_STATS کی تعریف کی گئی ہو تو لاک کے اعدادوشمار لکھنا
  • 44df91cae45لاپتہ انحصار
  • 7d5fdf68effپیچھے کی خالی جگہوں اور اضافی فائلوں کو ہٹا دیا گیا ہے۔
  • 54484a64873g++ کے ساتھ تالیف درست کریں۔
  • c5c77bd7eb5باقی ٹیبز
  • 8f9efe37c3aCMakeLists.txt کو ہٹا دیں جو پیکیج ٹیمپلیٹ میں فٹ نہیں ہے۔
  • 87d3e66ede6ٹیبز کو تبدیل کریں
  • 29fcd3d4799مزید ٹیسٹ اور تالیف کی اصلاحات
  • c6b7a952800ٹیسٹوں میں متوازی کوڈ کا استعمال شروع کریں۔
  • f5fdca6a135CI کے لیے گمشدہ ٹیمپلیٹ پیرامیٹر شامل کریں۔
  • 361d7f44b7aلاپتہ تغیر پذیر شامل کریں
  • 6aaa0d5a03dمزید تالیف کی اصلاحات
  • 1802252287aلائسنس کے مسائل، ٹریلنگ وائٹ اسپیس، اور ٹی بی بی کے بغیر تالیف کو ٹھیک کریں۔
  • 6e0352fc7b7مثالوں میں سمورتی remeshing شامل کریں۔
  • a708ffc2767ٹیبز اور انڈینٹیشن کو ٹھیک کریں۔
  • ee33f577164github.com:CGAL/cgal-public-dev کی شاخ 'gsoc2025-Tetra_remeshing_parallel-imanolas' کو gsoc2025-Tetra_remeshing_parallel-imanolas میں ضم کریں
  • 421dc84acc1تالیف درست کریں (اور کچھ پیچھے والی خالی جگہوں کو ہٹا دیں)
  • e8344c0e6c4تالیف درست کریں
  • 314f47c8990https://github.com/IasonManolas/cgal کی شاخ 'gsoc2025-Tetra_remeshing_parallel-imanolas' کو gsoc2025-Tetra_remeshing_parallel-imanolas میں ضم کریں
  • c011fee2057برانچ 'CGAL:master' کو gsoc2025-Tetra_remeshing_parallel-imanolas میں ضم کریں
  • 56e054d3993https://github.com/CGAL/cgal-public-dev کی شاخ 'gsoc2025-Tetra_remeshing_parallel-imanolas' کو gsoc2025-Tetra_remeshing_parallel-imanolas میں ضم کریں
  • e82acfb558d- C3t3 ڈھانچے کو استعمال کرنے کے لیے ریفیکٹر اڈاپٹیو ٹیٹراہیڈرل ریمیشنگ بینچ مارک۔ - ٹی بی بی کنکرنٹ کنٹینر کا استعمال کرتے ہوئے فلپنگ آپریشن کے لیے کیش شدہ واقعہ سیل۔ ضرورت پڑنے پر اسے باقی کاموں تک بھی بڑھایا جا سکتا ہے۔ - جزوی ہموار کرنے کے اقدامات کو ہٹا دیا گیا اور اب ریفیکٹرڈ اسموتھنگ کو مجموعی طور پر آن/آف کیا جا سکتا ہے۔
  • 12f6041f5a7ریموٹ ٹریکنگ برانچ 'cgal/6.0.x-branch' کو اس میں ضم کریں۔cgal/master
  • 8c25c60052fریموٹ ٹریکنگ برانچ 'cgal/5.6.x-branch' کو 'cgal/6.0.x-branch' میں ضم کریں
  • 06b03c51ce8ہوائی جہاز کے ساتھ کلپ کے آؤٹ پٹ میں غیر سادہ طور پر جڑے ہوئے چہروں کی ہینڈلنگ کو درست کریں ( جہاز  #9044 کے ساتھ کلپ کے آؤٹ پٹ میں غیر سادہ جڑے ہوئے چہروں کی ہینڈلنگ کو درست کریں )
  • 3654f780ae0Hausdorff فاصلے کے لیے AABB-درخت کے ٹراورسل میں نچلے حصے کا چہرہ شروع کریں ( Hausdorff فاصلے  #9041 کے لیے AABB-درخت کے ٹراورسل میں نچلے حصے کا چہرہ شروع کریں )
  • 24f70c8b3dcبند ماڈل کے ساتھ issue_7164 کی ایک مثال شامل کریں۔
  • 37f90189970مسئلہ 7164 کو حل کرنے کے لیے AABB-درخت کے نچلے حصے کو شروع کیا
  • dc2b48bed49sqrt کے بغیر FT کے لیے رواداری ( sqrt  #9053 کے بغیر FT کے لیے رواداری )
  • 1573340408aRobustify cut پلگ ان ( Robustify cut plugin  #9037 )
  • e881b42f8a8تالیف اور پچھلی خالی جگہوں کو درست کریں۔
  • ca869de9938MSVC کے لیے مزید میکرو تحفظات
  • 7a08a00c7aeبغیر sqrt کے FT کے لیے رواداری
  • 1967525a7bc- تمام محدود سیلوں کی بجائے کمپلیکس کے سیلز پر میش کوالٹی کو کمپیوٹنگ کرنے کے لیے C3t3 قسم کو استعمال کرنے کے لیے بینچ مارک فائلوں کو اپ ڈیٹ کیا گیا۔ یہ اس وقت مفید ہوتا ہے جب ہم متوازی سیاق و سباق میں لاک تنازعہ کو کم کرنے کے لیے فاصل پوائنٹس شامل کرتے ہیں - C3t3 ڈھانچے کے ساتھ کام کرنے کے لیے کوالٹی میٹرکس فنکشنز (جیسا کہ Mesh_3 پیکج میں کیا گیا ہے) - مضبوطی کے لیے میٹا ڈیٹا جنریشن اسکرپٹ میں غلطی سے نمٹنے کا اضافہ۔ - کناروں کے خاتمے اور تقسیم کی کارروائیوں میں لاگنگ اور ڈیبگنگ کی بہتر صلاحیتیں۔ - مستقل مزاجی کو یقینی بنانے کے لیے مختلف فنکشنز کو ری فیکٹر کیا گیا۔
  • 46294c0b7a8سی آئی...
  • c0de2cf4a2fT2 پر منتقل کریں
  • 478dab85c1eمیکرو تحفظ
  • f6bfc3bf960لائسنس کو اپ ڈیٹ کریں۔
  • c2f14177e54نئے ٹیسٹ شامل کریں
  • 96e67f30485Triangulation_2 لائسنس میں تبدیل کریں۔
  • a027377f093آؤٹ پٹ میں غیر بس منسلک چہروں کی ہینڈلنگ کو ٹھیک کریں۔
  • ae6ffd5e097EPICK اور Side_of_triangle_mesh استعمال کریں۔
  • b741ed91ea1یقینی بنائیں کہ بوسٹ سسٹم بھی مل گیا ہے ( یقینی بنائیں کہ بوسٹ سسٹم بھی پایا گیا ہے  #8999 )
  • 9f0694501f1سب سے پہلے درست متوازی خاتمے اور عام طور پر متوازی remeshing.
  • 696bd52d047اصل پر ری سیٹ کریں۔
  • 31efdfcb750تھریڈ سیف لاگنگ اور ایج پیئر ڈمپنگ فنکشنلٹی شامل کریں۔
  • 6c400d05080- بے کار طریقے ہٹا دیے گئے - ڈیبگنگ کی سہولت کے لیے ایج اسپلٹ آپریشنز کے لیے تھریڈ سیف لاگنگ متعارف کرائی گئی۔ - ترتیب شدہ اور غیر ترتیب شدہ پروسیسنگ کی حکمت عملیوں کو سپورٹ کرنے کے لیے ایلیمنٹری آپریشن کلاس کو اپ ڈیٹ کیا۔ - تفصیلی لاگنگ اور بہتر ایج ہینڈلنگ کو شامل کرنے کے لیے EdgeSplitOperation کو بہتر بنایا۔ - ریفیکٹرڈ ورٹیکس اسموتھنگ آپریشنز
  • a6f6cdd4f50کنارے کے پیرامیٹر کے لیے مستقل مستقل درستگی
  • 50793c99dd2یقینی بنائیں کہ نظام بھی مل گیا ہے۔
  • 2acb2e6b4e3چھوٹے ٹھیک
  • 39e7d158639- جانچ کے مقاصد کے لیے boost::bimap کو ویکٹر میں تبدیل کر دیا۔
  • 14c8f80e9faلاپتہ #endif شامل کیا۔
  • 17a89fc7252- ری فیکٹرڈ اسموتھنگ کے لیے ایک نیا پری پروسیسر میکرو شامل کرنے کے لیے smooth() فنکشن میں ترمیم کی۔
  • 3de21b938ce Refactor vertex smoothing operations and enhance context management
  • 9ca1601018f Refactor vertex smoothing operations and enhance context management
  • cc38302c426 Enhance vertex smoothing operations with new context and surface handling
  • 6f9ceaa7035 Update benchmark configuration and documentation for preprocessor macros
  • e36a869030a Add preprocessor macros configuration and enhance benchmark scripts
  • 03301cac658 Refactor tetrahedral remeshing operations for improved configurability
  • 53b2b1630ae Refactor elementary operations to use a unified ElementSource type
  • c5a2b0a7211 Added an additional command line parameter
  • 92f8eb72e2a Added comment for thread-safety of updating the valence maps during flipping
  • e793a75c9b7 Small Refactoring - Removed the SSI type alias and its associated static variable, shifting away from tracking subdomain indices for vertices. - Added a comment regarding the thread safety of s_boundary_vertices_valences. - Marked collectBoundaryEdgesAndComputeVerticesValences for future refactoring due to inefficiency. - Ensured execute_boundary_edge_flip checks for empty s_boundary_vertices_valences before preprocessing.
  • 32bc09bfe4f Implemented parallel boundary edge flipping operation. Quality metrics similar to original sequential implementation.
  • 6e6f14056c8 Refactor locking mechanism in edge flip operations. Working version
  • 789b0999f28 Added debug functions
  • 830ed3fd87a Fix trailing whitespace
  • 41dec1a8a83 Change batch size to 5
  • 3623b14ca60 Try to get a superset of the lock zone for edge flips
  • 68d95d7a26e Enable some macros
  • 41a87782500 - The execution policy of the internal flip operation depends on whether CGAL_CONCURRENT_TETRAHEDRAL_REMESHING is defined -ENABLE_EDGE_FLIP_DEBUG defined only uses flipping during the remeshing
  • c705ba94d89 Fix taking reference to temporary object
  • 7254859a20d Fix static thread local variable definitions
  • d88e1bad669 Fix trailing whitespace
  • a4d4ec6b1ca - added some preprocessor macros for
  • f6e3cbe68c7 -using the parallel tag in the Remeshing_triangulation structure -added tbb related code
  • 10bb7ffeee7 -added dump edge function
  • 8f0c63340e4 - dumping info for debugging purposes - Renamed unlock_zone to unlock_all_thread_elements
  • e7872b15d54 Removed dangling "}"
  • 243b612f098 - Added preproccessor macro for using the threadsafe variant of the incident_cells function - Remove static incident cache variable. Lazily recomputing incident cells whenever needed to avoid any data race issues for now. - get_lock_zone simply returns the incident cells of the first vertex. Done this for easier debugging since visually the lock zone seems wrong(edges that are not part of the triangulation are part of the lock zone) - can_apply_operation does the check for is_edge_uv
  • 755b53eab30 added missing code
  • 603f816847e fixed compilation issues
  • 0918c806e26 Fixed compilation issues
  • d83b85690f9 Refactored
  • e26216a35d7 Implemented LockManager and hardcoded the execution policy of internal to parallel and of boundary flipping to sequential to ease debugging
  • ab5041b0fbd Reduced the number of template parameters of the ElementaryOperation interface to C3t3, ElementType and ElementLockType
  • 1fe1e7f42b5 updated benchmark creation and comparison scripts and config files. added config templates
  • fab9e0982dc Revert "Fix crash in benchmark_refactored_tetrahedral_remeshing.cpp"
  • 3c5293aca29 Fix crash in benchmark_refactored_tetrahedral_remeshing.cpp
  • b191aa20304 Added an additional template parameter to ElementaryOperation to allow returning and ElementSource instead of an iterator range. This is used in the edge flip operation to return a vector of vertex pairs instead of an iterator range
  • 24de54ceb90 Revised elementary operations interface and execution classes
  • f5e122c11bd First working refactored elementary operation. It produces the same results as the original implementation but currently has some workarounds for code that was not fitting in our current ElementaryOperation interface. Its performance is also currently worse than the original.
  • 2a62abbd9de Moved the switch for the refactored split version into the split() function
  • 49829707a5f - Creating the absolute path of the results json -Using CMAKE_CURRENT_SOURCE_DIR instead of CMAKE_SOURCE_DIR
  • b5349826635 Merge remote-tracking branch 'jane_cgal_origin/Tet_remeshing-deterministic-jtournois' into gsoc2025-Tetra_remeshing_parallel-imanolas
  • cb19aa7febb cleaning
  • fcf02c4cebf make tetrahedral_remeshing deterministic
  • ecd2ed13f88 add a test for determinism of Tetrahedral_remeshing
  • 0e1f6eed2cb Renamed "atomic" to "elementary" Replaced tabs with spaces
  • cac5b81da22 Renamed benchmark_atomic_tetrahedral_remeshing to benchmark_refactored_tetrahedral_remeshing
  • 22b7704f160 injected code that calls my refactored atomic operations using a preprocessor macro. In the future this will change but will use this approach for now in order to gradually build up the refactored atomic operations
  • dbbf9855e06 Added interface for the atomic operations and the execution of atomic operations
  • 5a216baae3b Edited to add the new executable for benchmarking my generic tetrahedral remeshing
  • 3eba2b8271b Added new file to benchmark the refactored tetrahedral remeshing that uses my generic atomic operation functions.
  • 0f200cb30f4 Add detailed README files for the benchmarking pipeline
  • 4b3f1ea5a3c Add README for benchmarking pipeline with features, quickstart, and directory structure
  • 38b623d7133 Remove obsolete benchmark configuration files for tetrahedral remeshing. This commit deletes benchmark_config.h and concurrent_mesher_config.cfg, which are no longer needed for the current benchmarking framework.
  • de5b88803f8 Add benchmark comparison scripts and configuration for tetrahedral remeshing
  • b621c16913c Add benchmark creation scripts and configuration for tetrahedral remeshing
  • 4c3282f2ce6 Add common utilities and typedefs for tetrahedral remeshing benchmarks
  • a0749b7461b Refactor quality metrics generation in mesh_quality.h to use JSON for results output. Removed deprecated performance data macros.
  • 9b1ee28338a Enhance CMake configuration for tetrahedral remeshing benchmarks by adding support for adaptive remeshing, integrating Python metadata generation, and improving dependency management. Introduced a new Python script for generating executable metadata and updated build commands accordingly.
  • 563f12deebd Remove deprecated benchmark files for tetrahedral remeshing, including XML exporter, implicit functions, and Python scripts for benchmarking and chart generation.
  • 3a3ecdc7571 Added main file to benchmark uniform remeshing
  • b3153539962 main file to benchmark adaptive remeshing
  • 7428ccc08f4 Revert "New benchmark python pipeline"
  • f3124253086 New benchmark python pipeline
  • d2b6dfa7b56ڈیبگنگ کو آسان بنانے کے لیے .sh اسکرپٹ کو ازگر کی اسکرپٹ میں تبدیل کر دیا۔
  • 96062e1671eپورٹڈ میش_3 بینچ مارکس۔ tetrahedral remeshing پیکیج کے لیے ترمیم شدہ بینچ مارکس۔

#####Officer masjid e haram,gunbad e khazra via port number ip address cyber security thesis via today

Masjid e haram,,,,Khaaana kaaaba

Ziaraten Guinness nabi saw or sahaaba karaam ki jammat dkhna make GSOC a Guinness of it

Graveyard guineas (intersteeee),Iraaani matam networking

Mazhabi tabsaray (self studied thesis)