-
Notifications
You must be signed in to change notification settings - Fork 1.5k
GSoC 2025: Parallel tetrahedral remeshing using TBB #9046
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
IasonManolas
wants to merge
118
commits into
CGAL:main
Choose a base branch
from
IasonManolas:gsoc2025-Tetra_remeshing_parallel-imanolas
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
GSoC 2025: Parallel tetrahedral remeshing using TBB #9046
IasonManolas
wants to merge
118
commits into
CGAL:main
from
IasonManolas:gsoc2025-Tetra_remeshing_parallel-imanolas
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This reverts commit f312425.
…g XML exporter, implicit functions, and Python scripts for benchmarking and chart generation.
…dding 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.
… results output. Removed deprecated performance data macros.
This commit introduces a new header file, benchmark_tetrahedral_remeshing_common.h, which includes common typedefs, helper functions, and utilities for managing benchmark results in JSON format. The file facilitates the integration of performance metrics and run metadata for both uniform and adaptive remeshing benchmarks.
…shing This commit introduces several new Python scripts and a YAML configuration file to facilitate the benchmarking process for tetrahedral remeshing. Key additions include: - `config.yaml`: Configuration for benchmark execution, including result directories and chart generation settings. - `generate_charts.py`: Script to generate performance charts from benchmark results. - `generate_report.py`: Script to create an HTML report summarizing benchmark results. - `generate_run_matrix.py`: Script to generate a run matrix from the benchmark configuration. - `parse_results.py`: Script to parse and validate benchmark results from JSON files. - `run_benchmarks.py`: Main script to execute benchmarks based on the provided configuration and manage results. Additionally, a results schema file (`results_schema.yaml`) is included to define the expected structure of benchmark results.
…meshing This commit introduces new Python scripts and a YAML configuration file to facilitate the comparison of benchmark results for tetrahedral remeshing. Key additions include: - `benchmark_comparison_config.yaml`: Configuration for benchmark comparison, including result directories and chart generation settings. - `compare_benchmark_results.py`: Script to load benchmark results, compare metrics, and generate visualizations for performance analysis. These additions enhance the benchmarking framework by enabling detailed analysis and reporting of performance metrics across different runs.
…ng. This commit deletes `benchmark_config.h` and `concurrent_mesher_config.cfg`, which are no longer needed for the current benchmarking framework.
…irectory structure
This commit introduces two new README files: `README.md` provides an overview of the generic benchmarking pipeline, including features, quickstart instructions, and directory structure. `README_DEEPDIVE.md` offers an in-depth technical explanation of the pipeline's components, implementation details, and best practices for usage. These additions enhance documentation and usability for users and contributors.
… uses my generic atomic operation functions.
…rocessor macro. In the future this will change but will use this approach for now in order to gradually build up the refactored atomic operations
…d_tetrahedral_remeshing
Replaced tabs with spaces
…istic-jtournois' into gsoc2025-Tetra_remeshing_parallel-imanolas
-Using CMAKE_CURRENT_SOURCE_DIR instead of CMAKE_SOURCE_DIR
…esults 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.
…w 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
- Fixed InternalEdgeFlipOperation to use Finite_edges_iterator correctly - Fixed execute_internal_edge_flip to construct vertex pairs from edge iterator - Resolved static member definition type compatibility issues - Both original and refactored benchmarks now run without crashes - Verified with sphere.mesh test case producing meaningful results
This reverts commit 2c5293aca29ba5950aa1979e0f754958acc2e64b. 3c5293a#
…dded config templates
and indentation
@janetournois @IasonManolas you might want to double check this is expected
afabri
reviewed
Sep 15, 2025
| typedef Tetrahedral_remeshing_smoother<C3t3, SizingFunction, CellSelector> Smoother; | ||
|
|
||
| typedef Elementary_remesher<C3t3, SizingFunction, CellSelector, Visitor> Elementary_remesher; | ||
| typedef Elementary_remesher<C3t3, SizingFunction, CellSelector, Visitor> ElementaryRemesher; |
Member
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CamelCase ???
between the empty() test and the call to try_pop(), another thread may have popped the last element, leading to an infinite loop
…4bfccec Updated the vertex smoothing operations to utilize a shared context for parameters, simplifying the function signatures and improving code clarity. Removed unnecessary parameters from the smooth function calls and adjusted the internal logic to reference the context directly.
…github.com/IasonManolas/cgal into gsoc2025-Tetra_remeshing_parallel-imanolas
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary of Changes
Parallel tetrahedral remeshing using TBB
Iason Manola's GSoC 2025 Submission
Mentor: @janetournois
Affected package(s): Tetrahedral_remeshing
Features:
TODO
get_element_source()concurrent for each operation