deepmodeling / abacus-develop

An electronic structure package based on either plane wave basis or numerical atomic orbitals.
http://abacus.ustc.edu.cn
GNU Lesser General Public License v3.0
170 stars 129 forks source link

Need 2D-block-parallel form to serial form of matrix transformation interface for future development #3455

Closed kirk0830 closed 1 month ago

kirk0830 commented 9 months ago

Background

Some matrix multiplication operations need the full matrix, while presently this interface seems to be absent?

Describe the solution you'd like

A easy-to-use interface for this purpose, will be helpful for representation-related feature development, including integrate QO inside ABACUS rather than use an external python-end post-processing package

Task list only for developers

Notice Possible Changes of Behavior (Reminder only for developers)

No response

Notice any changes of core modules (Reminder only for developers)

No response

Notice Possible Changes of Core Modules (Reminder only for developers)

No response

Additional Context

No response

Task list for Issue attackers (only for developers)

WHUweiqingzhou commented 9 months ago

I also think this interface is quite useful. Actually, in source/module_hamilt_lcao/module_hcontainer/func_transfer.cpp, there are several interfaces between 2D para and serial, but only for HContainer.

jinzx10 commented 9 months ago

I second this. I think we definitely need an RAII container for block-cyclic distributed data. Linear algebra operations can also be encapsulated into this container.