Skip to content

Modern diag manager: Improve performance #1631

Closed
@uramirez8707

Description

Describe the bug
When comparing the performance between the modern diag manager and the legacy diag manager, you can see that the performance of the modern diag manager is consistently 4-7% slower than the legacy diag manager

To Reproduce
Compare performance between the modern and the legacy diag manager

One way to improve performance is to avoid x**power (where power is equal to 1)
https://github.com/uramirez8707/FMS/blob/bd9cbebd9efd1f94207a141cf43ee65cd0d041cd/diag_manager/include/fms_diag_reduction_methods.inc#L323-L325

Another way is to avoid having diag_send_complete loop through all the variable to check if it is time to do the buffer math/write output if send_data has not been called since the last time diag_send complete call.

Another way is to explore using do concurrent loops to parallelize the do loops when doing the math

Expected behavior
The performance should be similar or better

System Environment
This will happen in any system

Additional context
N/A

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions