Eigensolver Dynamic Thread Allocation Shared Memory
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current technologies, such as PLASMA, are limited in handling very large matrices due to 32-bit architecture constraints and inefficient thread allocation across different stages of eigensolver processes, leading to scalability issues in computing eigenpairs for dense matrices with hundreds of thousands or millions of rows and columns.
Innovation Solution
A high-performance computing system with dynamic thread allocation across stages, utilizing successive band reduction and multiple relatively robust representations to transform matrices from dense to tridiagonal form, and back, optimizing thread usage based on relative runtime complexities.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If PLASMA library is used for eigensolver computation, then memory usage pressure and process synchronization are improved, but scalability is limited due to 32-bit architecture constraints that cannot handle matrices with hundreds of thousands or millions of rows and columns
Solution Approach 1:
The patent transitions from 32-bit to 64-bit architecture, fundamentally changing the parameter of data width to enable handling of very large matrices with hundreds of thousands or millions of rows and columns. This parameter change allows the system to overcome the scalability limitations of PLASMA while maintaining its memory management advantages.
2Device complexity
If fixed thread allocation is used across all stages of eigensolver, then device complexity is reduced, but productivity decreases due to inefficient thread usage in stages with different runtime complexities
Solution Approach 1:
The patent implements dynamic thread allocation where the number of threads is adjusted based on the specific stage of the eigensolver algorithm. Each stage (tridiagonal reduction, eigenvalue computation, eigenvector computation, back-transformation) receives an optimized thread count proportional to its runtime complexity, maximizing computational efficiency while using a unified 64-bit codebase.
Solution Approach 2:
The patent applies different thread allocation strategies to different stages of the algorithm based on their local characteristics and computational demands. Each stage receives a customized thread count optimized for its specific operations, rather than using a uniform allocation across all stages.
3Adaptability or versatility
If message passing communication is used as in ScaLAPACK, then distributed memory parallel computing is enabled, but communication speed decreases compared to shared memory access
Solution Approach 1:
The patent uses shared memory as an intermediary communication mechanism between processing nodes, replacing the message passing protocol of ScaLAPACK. This intermediary approach allows for faster data exchange while still supporting distributed memory parallel computing architecture.
Data Source
AI summary
Disclosed herein is a shared memory systems that use a combination of SBR and MRRR techniques to calculate eigenpairs for dense matrices having very large numbers of rows and columns. The disclosed system allows for the use of a highly scalable tridiagonal eigensolver. The disclosed system likewise allows for allocating a different number of threads to each of the different computational stages of the eigensolver.


