Skip to content

[ENH] Performance/ Benchmarking/ Scaling #12

Open
@sofroniewn

Description

@sofroniewn

Is your feature request related to a problem? Please describe.
This is maybe more of a question than a feature request - but it could turn into one.

I saw you've got one of two files in the repo around benchmarks - like time_forward.py - but I was wondering if you have done or are interested in doing more widespread and systematic benchmarking - particularly with respect to how performance scales with variables like number of atoms for different basis sets on cpu and gpu.

I'm wondering how you expect performance to compare to a library like PySCF just knowing the architecture of dqc? I'm also curious if performance / scale we're things you were interested in or even motivated by when developing dqc too?

I havn't tried any comparisons yet and don't really know enough about the actual implementations to have any expectations one way or another. There is a little bit of PySCF benchmark data that could be compared to, or we could compute our own.

Ideally I'd like to push to as large systems as possible, but I am so new to this space that I'm really not sure what is possible. If I could do things on the scale of amino acids (~20 atoms) that would be a nice start - getting to ~100 atoms would be even better, and so it continues!

Describe the solution you'd like
I could imagine developing a benchmarking suite of both basic calculations and calculations of properties (like IR spectra) and a set of molecules of increasing size and then measuring calculation time for a variety of different basis sets and hardware configurations, cpu/ gpu. The goal would be to assess performance as molecule size increased.

Describe alternatives you've considered
I could do ad-hoc testing using basic timing functionality to try and build up an intuitive feel for scaling performance

Additional context
If this was something you were interested in I'd appreciate your help in designing the best approach to benchmarking as I am so new to this space.

If benchmarking is successful one can then start doing profiling to try and identify performance gaps and ultimately work on improving performance

Metadata

Metadata

Assignees

No one assigned

    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