Eigensolver Dynamic Thread Allocation Shared Memory

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvememory usage pressureVSAvoidscalability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

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.

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improvethread allocation complexityVSAvoidcomputation efficiency
Core Design Contradiction:
Device complexityVSProductivity

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #3Local quality

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

Engineering Contradiction:
Improvedistributed memory supportVSAvoidcommunication speed
Core Design Contradiction:
Adaptability or versatilityVSSpeed

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9547882B2Shared memory eigensolver
Publication Date: 2017.01.17 HEWLETT PACKARD ENTERPRISE DEV LP
  • US9547882B2 patent drawing
  • US9547882B2 patent drawing
  • US9547882B2 patent drawing

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.