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:
beb282f67e4shorten a few linesc9fc73fda55fix execution policy34adfe4771cinitialize m_moves, not a temporary vector0391f332cfdfix verbose macros06cf5c44388these assertions are wrongf9e8374942dadd more parallel tests0b765685cddfix compilation when using a T3 with Sequential_tag and CGAL_LINKED_WITH_TBB defined3660ac6c564deleted trailing whitespaces5b00d880eedRemoved tabsbb0fd7adf36dedicated macro for debug logs for the split operationae316c62be4Dedicated macro for flip debug logs, saving incident cells if locking was successful91cfbfa3974Writing lock stats when CGAL_TETRAHEDRAL_REMESHING_WRITE_LOCK_STATS is defined44df91cae45missing dependencies7d5fdf68efftrailing whitespaces and removed extra files54484a64873fix compilation with g++c5c77bd7eb5remaining tabs8f9efe37c3aremove CMakeLists.txt that does not fit the package template87d3e66ede6replace tabs29fcd3d4799more tests and compilation fixesc6b7a952800start using parallel code in testsf5fdca6a135add missing template parameter for CI361d7f44b7aadd missing mutable6aaa0d5a03dmore compilation fixes1802252287afix license issues, trailing whitespaces, and compilation without tbb6e0352fc7b7add concurrent remeshing to examplesa708ffc2767fix tabs and indentationee33f577164Merge branch 'gsoc2025-Tetra_remeshing_parallel-imanolas' of github.com:CGAL/cgal-public-dev into gsoc2025-Tetra_remeshing_parallel-imanolas421dc84acc1fix compilation (and remove a few trailing whitespaces)e8344c0e6c4fix compilation314f47c8990Merge branch 'gsoc2025-Tetra_remeshing_parallel-imanolas' of https://github.com/IasonManolas/cgal into gsoc2025-Tetra_remeshing_parallel-imanolasc011fee2057Merge branch 'CGAL:master' into gsoc2025-Tetra_remeshing_parallel-imanolas56e054d3993Merge branch 'gsoc2025-Tetra_remeshing_parallel-imanolas' of https://github.com/CGAL/cgal-public-dev into gsoc2025-Tetra_remeshing_parallel-imanolase82acfb558d- 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 whole12f6041f5a7Merge remote-tracking branch 'cgal/6.0.x-branch' intocgal/master8c25c60052fMerge remote-tracking branch 'cgal/5.6.x-branch' into 'cgal/6.0.x-branch'06b03c51ce8Fix the handling of non-simply connected faces in the output of clip with plane (#9044)3654f780ae0Initialize the lower bound face in traversal of the AABB-tree for Hausdorff distance (#9041)24f70c8b3dcadd an example of issue_7164 with a closed model37f90189970Initialized the lower bound face in traversal of the AABB-tree to solve issue-7164dc2b48bed49Tolerance for FT without sqrt (#9053)1573340408aRobustify cut plugin (#9037)e881b42f8a8fix compilation and trailing whitespacesca869de9938more macro protections for MSVC7a08a00c7aetolerance for FT without sqrt1967525a7bc- 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 consistency46294c0b7a8CI...c0de2cf4a2fmove to T2478dab85c1emacro protectionf6bfc3bf960update licensec2f14177e54add new tests96e67f30485change to Triangulation_2 licensea027377f093fix the handling of non-simply connected faces in the outputae6ffd5e097use EPICK and Side_of_triangle_meshb741ed91ea1Make sure Boost system is also found (#8999)9f0694501f1First correct parallel collapse and paralle remeshing in general.696bd52d047Reset to original31efdfcb750Add thread-safe logging and edge pair dumping functionality6c400d05080- 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 operationsa6f6cdd4f50Fixed const correctness for the edge parameter50793c99dd2make sure system is also found2acb2e6b4e3small fix39e7d158639- Changed the boost::bimap to a vector for testing purposes14c8f80e9faadded missing #endif17a89fc7252- Modified the smooth() function to incorporate a new preprocessor macro for refactored smoothing.3de21b938ceRefactor vertex smoothing operations and enhance context management9ca1601018fRefactor vertex smoothing operations and enhance context managementcc38302c426Enhance vertex smoothing operations with new context and surface handling6f9ceaa7035Update benchmark configuration and documentation for preprocessor macrose36a869030aAdd preprocessor macros configuration and enhance benchmark scripts03301cac658Refactor tetrahedral remeshing operations for improved configurability53b2b1630aeRefactor elementary operations to use a unified ElementSource typec5a2b0a7211Added an additional command line parameter92f8eb72e2aAdded comment for thread-safety of updating the valence maps during flippinge793a75c9b7Small Refactoring - Removed theSSItype alias and its associated static variable, shifting away from tracking subdomain indices for vertices. - Added a comment regarding the thread safety ofs_boundary_vertices_valences. - MarkedcollectBoundaryEdgesAndComputeVerticesValencesfor future refactoring due to inefficiency. - Ensuredexecute_boundary_edge_flipchecks for emptys_boundary_vertices_valencesbefore preprocessing.32bc09bfe4fImplemented parallel boundary edge flipping operation. Quality metrics similar to original sequential implementation.6e6f14056c8Refactor locking mechanism in edge flip operations. Working version789b0999f28Added debug functions830ed3fd87aFix trailing whitespace41dec1a8a83Change batch size to 53623b14ca60Try to get a superset of the lock zone for edge flips68d95d7a26eEnable some macros41a87782500- 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 remeshingc705ba94d89Fix taking reference to temporary object7254859a20dFix static thread local variable definitionsd88e1bad669Fix trailing whitespacea4d4ec6b1ca- added some preprocessor macros forf6e3cbe68c7-using the parallel tag in the Remeshing_triangulation structure -added tbb related code10bb7ffeee7-added dump edge function8f0c63340e4- dumping info for debugging purposes - Renamed unlock_zone to unlock_all_thread_elementse7872b15d54Removed 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_uv755b53eab30added missing code603f816847efixed compilation issues0918c806e26Fixed compilation issuesd83b85690f9Refactorede26216a35d7Implemented LockManager and hardcoded the execution policy of internal to parallel and of boundary flipping to sequential to ease debuggingab5041b0fbdReduced the number of template parameters of the ElementaryOperation interface to C3t3, ElementType and ElementLockType1fe1e7f42b5updated benchmark creation and comparison scripts and config files. added config templatesfab9e0982dcRevert "Fix crash in benchmark_refactored_tetrahedral_remeshing.cpp"3c5293aca29Fix crash in benchmark_refactored_tetrahedral_remeshing.cppb191aa20304Added 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 range24de54ceb90Revised elementary operations interface and execution classesf5e122c11bdFirst 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.2a62abbd9deMoved the switch for the refactored split version into the split() function49829707a5f- Creating the absolute path of the results json -Using CMAKE_CURRENT_SOURCE_DIR instead of CMAKE_SOURCE_DIRb5349826635Merge remote-tracking branch 'jane_cgal_origin/Tet_remeshing-deterministic-jtournois' into gsoc2025-Tetra_remeshing_parallel-imanolascb19aa7febbcleaningfcf02c4cebfmake tetrahedral_remeshing deterministicecd2ed13f88add a test for determinism of Tetrahedral_remeshing0e1f6eed2cbRenamed "atomic" to "elementary" Replaced tabs with spacescac5b81da22Renamed benchmark_atomic_tetrahedral_remeshing to benchmark_refactored_tetrahedral_remeshing22b7704f160injected 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 operationsdbbf9855e06Added interface for the atomic operations and the execution of atomic operations5a216baae3bEdited to add the new executable for benchmarking my generic tetrahedral remeshing3eba2b8271bAdded new file to benchmark the refactored tetrahedral remeshing that uses my generic atomic operation functions.0f200cb30f4Add detailed README files for the benchmarking pipeline4b3f1ea5a3cAdd README for benchmarking pipeline with features, quickstart, and directory structure38b623d7133Remove obsolete benchmark configuration files for tetrahedral remeshing. This commit deletesbenchmark_config.handconcurrent_mesher_config.cfg, which are no longer needed for the current benchmarking framework.de5b88803f8Add benchmark comparison scripts and configuration for tetrahedral remeshingb621c16913cAdd benchmark creation scripts and configuration for tetrahedral remeshing4c3282f2ce6Add common utilities and typedefs for tetrahedral remeshing benchmarksa0749b7461bRefactor quality metrics generation in mesh_quality.h to use JSON for results output. Removed deprecated performance data macros.9b1ee28338aEnhance 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.563f12deebdRemove deprecated benchmark files for tetrahedral remeshing, including XML exporter, implicit functions, and Python scripts for benchmarking and chart generation.3a3ecdc7571Added main file to benchmark uniform remeshingb3153539962main file to benchmark adaptive remeshing7428ccc08f4Revert "New benchmark python pipeline"f3124253086New benchmark python pipelined2b6dfa7b56Converted the .sh script to a python script to ease debugging96062e1671ePorted 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/master8c25c60052fریموٹ ٹریکنگ برانچ '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() فنکشن میں ترمیم کی۔3de21b938ceRefactor vertex smoothing operations and enhance context management9ca1601018fRefactor vertex smoothing operations and enhance context managementcc38302c426Enhance vertex smoothing operations with new context and surface handling6f9ceaa7035Update benchmark configuration and documentation for preprocessor macrose36a869030aAdd preprocessor macros configuration and enhance benchmark scripts03301cac658Refactor tetrahedral remeshing operations for improved configurability53b2b1630aeRefactor elementary operations to use a unified ElementSource typec5a2b0a7211Added an additional command line parameter92f8eb72e2aAdded comment for thread-safety of updating the valence maps during flippinge793a75c9b7Small Refactoring - Removed theSSItype alias and its associated static variable, shifting away from tracking subdomain indices for vertices. - Added a comment regarding the thread safety ofs_boundary_vertices_valences. - MarkedcollectBoundaryEdgesAndComputeVerticesValencesfor future refactoring due to inefficiency. - Ensuredexecute_boundary_edge_flipchecks for emptys_boundary_vertices_valencesbefore preprocessing.32bc09bfe4fImplemented parallel boundary edge flipping operation. Quality metrics similar to original sequential implementation.6e6f14056c8Refactor locking mechanism in edge flip operations. Working version789b0999f28Added debug functions830ed3fd87aFix trailing whitespace41dec1a8a83Change batch size to 53623b14ca60Try to get a superset of the lock zone for edge flips68d95d7a26eEnable some macros41a87782500- 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 remeshingc705ba94d89Fix taking reference to temporary object7254859a20dFix static thread local variable definitionsd88e1bad669Fix trailing whitespacea4d4ec6b1ca- added some preprocessor macros forf6e3cbe68c7-using the parallel tag in the Remeshing_triangulation structure -added tbb related code10bb7ffeee7-added dump edge function8f0c63340e4- dumping info for debugging purposes - Renamed unlock_zone to unlock_all_thread_elementse7872b15d54Removed 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_uv755b53eab30added missing code603f816847efixed compilation issues0918c806e26Fixed compilation issuesd83b85690f9Refactorede26216a35d7Implemented LockManager and hardcoded the execution policy of internal to parallel and of boundary flipping to sequential to ease debuggingab5041b0fbdReduced the number of template parameters of the ElementaryOperation interface to C3t3, ElementType and ElementLockType1fe1e7f42b5updated benchmark creation and comparison scripts and config files. added config templatesfab9e0982dcRevert "Fix crash in benchmark_refactored_tetrahedral_remeshing.cpp"3c5293aca29Fix crash in benchmark_refactored_tetrahedral_remeshing.cppb191aa20304Added 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 range24de54ceb90Revised elementary operations interface and execution classesf5e122c11bdFirst 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.2a62abbd9deMoved the switch for the refactored split version into the split() function49829707a5f- Creating the absolute path of the results json -Using CMAKE_CURRENT_SOURCE_DIR instead of CMAKE_SOURCE_DIRb5349826635Merge remote-tracking branch 'jane_cgal_origin/Tet_remeshing-deterministic-jtournois' into gsoc2025-Tetra_remeshing_parallel-imanolascb19aa7febbcleaningfcf02c4cebfmake tetrahedral_remeshing deterministicecd2ed13f88add a test for determinism of Tetrahedral_remeshing0e1f6eed2cbRenamed "atomic" to "elementary" Replaced tabs with spacescac5b81da22Renamed benchmark_atomic_tetrahedral_remeshing to benchmark_refactored_tetrahedral_remeshing22b7704f160injected 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 operationsdbbf9855e06Added interface for the atomic operations and the execution of atomic operations5a216baae3bEdited to add the new executable for benchmarking my generic tetrahedral remeshing3eba2b8271bAdded new file to benchmark the refactored tetrahedral remeshing that uses my generic atomic operation functions.0f200cb30f4Add detailed README files for the benchmarking pipeline4b3f1ea5a3cAdd README for benchmarking pipeline with features, quickstart, and directory structure38b623d7133Remove obsolete benchmark configuration files for tetrahedral remeshing. This commit deletesbenchmark_config.handconcurrent_mesher_config.cfg, which are no longer needed for the current benchmarking framework.de5b88803f8Add benchmark comparison scripts and configuration for tetrahedral remeshingb621c16913cAdd benchmark creation scripts and configuration for tetrahedral remeshing4c3282f2ce6Add common utilities and typedefs for tetrahedral remeshing benchmarksa0749b7461bRefactor quality metrics generation in mesh_quality.h to use JSON for results output. Removed deprecated performance data macros.9b1ee28338aEnhance 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.563f12deebdRemove deprecated benchmark files for tetrahedral remeshing, including XML exporter, implicit functions, and Python scripts for benchmarking and chart generation.3a3ecdc7571Added main file to benchmark uniform remeshingb3153539962main file to benchmark adaptive remeshing7428ccc08f4Revert "New benchmark python pipeline"f3124253086New benchmark python pipelined2b6dfa7b56ڈیبگنگ کو آسان بنانے کے لیے .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)