Skip to content

Thread per point - #10

Draft
MTCam wants to merge 3 commits into
mainfrom
thread-per-point
Draft

Thread per point#10
MTCam wants to merge 3 commits into
mainfrom
thread-per-point

Conversation

@MTCam

@MTCam MTCam commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

This change set adds on thread per point in RHS assembly. The default is one thread per element for volume, one thread per interior face, and one thread per boundary point. If enabled, this change set can optionally change volume to one thread per volume point (duplicating some computation on each thread for two-point fluxing) - and/or optionally change to one thread per interior face point.

MTCam and others added 3 commits August 6, 2026 07:44
Imported from Theseus-parallelism, branch project/03-parallelism.
Source range: 9cd39a4552c8ea558ef672fbe1fd8c8d594b5783..e8a1f82

Original development history:

- Extract inviscid interior-face point kernel
- Add point-parallel Euler interior faces
- Extract Navier-Stokes interior-face point kernels
- Add point-parallel Navier-Stokes interior faces
- Add point-parallel gradient volume assembly
- Add point-parallel viscous volume assembly
- Add point-parallel Euler volume assembly
- Add point-parallel Navier-Stokes volume assembly
- Merge branch 'main' into project/03-parallelism-sync
@MTCam
MTCam requested a balanced review from Copilot August 7, 2026 18:02

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds optional point-parallel volume and interior-face RHS assembly, alongside timestep performance reporting.

Changes:

  • Adds per-point DGSEM kernels for Euler and Navier–Stokes assembly.
  • Adds CMake switches and resizes wave-speed caches for point-parallel execution.
  • Adds aggregate timestep timing and reporting.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
CMakeLists.txt Adds point-parallel build options and adjusts timer configuration.
include/DGSEMIntegrator.hpp Implements point-level volume, face, viscous, and gradient kernels.
include/EulerOperator_impl.hpp Integrates optional point-parallel Euler assembly.
include/NSOperator_impl.hpp Integrates optional point-parallel Navier–Stokes assembly.
include/dgsem_cache.hpp Documents expanded wave-speed storage.
include/dgsem_cache_utilities.hpp Sizes and validates point-level wave-speed caches.
include/timer.hpp Adds timestep statistics collection and reporting.
src/Simulation.cpp Integrates timestep timing and updates runtime output.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread include/timer.hpp
const double mean_mean =
mean_sum * inv_nranks;

os << std::fixed << std::setprecision(3);
Comment thread CMakeLists.txt
Comment on lines +25 to +28
option(ENABLE_POINT_PARALLEL_INTERIOR_FACES
"Use one device thread per interior-face point." OFF)
option(ENABLE_POINT_PARALLEL_VOLUME
"Use one device thread per element volume point where supported." OFF)
Comment thread include/timer.hpp
Comment on lines +13 to +17
#include <algorithm>
#include <chrono>
#include <cstdint>
#include <iomanip>
#include <iostream>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants