solvcon / modmesh

Toolkit for solving partial differential equations
BSD 3-Clause "New" or "Revised" License
29 stars 35 forks source link

Add profiling system for the shock tube problem #135

Open yungyuc opened 1 year ago

yungyuc commented 1 year ago

The shock tube problem (modmesh.onedim.euler1d.ShockTube) is a classical compressible flow problem. It uses a numerical solver along with an analytical solution.

The numerical solver is supposed to be high-performance but it is not yet optimized. Before optimization, profiling should be done. We do not yet have a useable profiling system in modmesh, but there is a prototype: https://github.com/solvcon/modmesh/blob/master/cpp/modmesh/profile.hpp .

This issue is to track the augmentation of the prototype to a useable profiling system. It does not need to be comprehensive, but should help understand the performance of the shock tube problem.

yungyuc commented 1 year ago

To have a basic understandings of the shock tube problem, the notes in https://github.com/solvcon/mmnote/ may be helpful.

tai271828 commented 1 year ago

I will help profiling on Ubuntu Linux.

tai271828 commented 1 year ago

Since pull request #190 is landed, I think my next step will try to make the profiling data able to be exported to a file, which could be consumed by a GUI-based reporter, dashboard, or something.

easy_profiler mentioned in this thread has a nice GUI application to represent its profiling data. The application is written in Qt5, so I believe we can be enlightened a lot by its code when writing a Qt6-based dashboard for our own profiling data.

tai271828 commented 1 year ago

Since pull request #190 is landed, I think my next step will try to make the profiling data able to be exported to a file, which could be consumed by a GUI-based reporter, dashboard, or something.

easy_profiler mentioned in this thread has a nice GUI application to represent its profiling data. The application is written in Qt5, so I believe we can be enlightened a lot by its code when writing a Qt6-based dashboard for our own profiling data.

Besides, if the data could be consumed by the other application, that means it will be time for us to put profiling benchmark in our CI.

yungyuc commented 1 year ago

Yes, I think it's a great idea to steal profling visualization code from easy profiler, and probably also the profile data file format.

Profiling in CI is tricky because the CI servers usually are noisy. We should bring it to discord and use more discussions for it.

yungyuc commented 9 months ago

Clear assignees for lack of activities.