Runtime Binder for Multi-Threaded MPI Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional MPI implementations restrict multi-threaded applications by allowing only single-thread access to resources, requiring modifications to avoid simultaneous access and limiting flexibility in choosing MPI implementations during runtime without terminating the application.

Innovation Solution

A system and method that dynamically binds a multi-threaded process to an interface at runtime, allowing selection of different MPI implementations without recompilation, using a binder to manage access to un-shareable resources and establish communication channels among concurrent computing resources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If conventional MPI implementations are used with multi-threaded applications, then the application can access MPI resources, but only a single thread can access the MPI library at a time, requiring modifications to avoid simultaneous access

Engineering Contradiction:
Improvemulti-threaded access capabilityVSAvoidapplication modification requirement
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a binder as an intermediary layer between multi-threaded applications and the MPI library. The binder receives requests from multiple threads, serializes them, and forwards them to the MPI library, which only allows single-thread access. This mediator approach enables multi-threaded applications to use conventional MPI implementations without modification while maintaining thread safety through request serialization.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the access control mechanism by separating the thread management functionality from the MPI library itself. The binder acts as a separate component that handles thread serialization, while the MPI library maintains its original single-thread access model. This segmentation allows the MPI library to remain unchanged while enabling multi-threaded access through the binder layer.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If MPI implementations are statically linked against a specific application, then the application can use MPI functions, but changing to a different MPI implementation requires recompiling the application

Engineering Contradiction:
ImproveMPI implementation switching capabilityVSAvoidrecompilation requirement
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The patent implements dynamic binding between the application and MPI implementations through the binder. Instead of static linking, the binder can be configured at runtime to use different MPI implementations. This dynamic approach allows users to switch between different MPI implementations (e.g., MPICH2, OpenMPI, Intel MPI) without recompiling the application, as the binder handles the interface adaptation layer.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The binder serves as a universal interface layer that can work with multiple different MPI implementations. It provides a standardized interface to the application while supporting various underlying MPI libraries. This multi-functionality enables the application to switch between different MPI implementations through the same binder interface without requiring recompilation or reconfiguration of the application code.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Reliability

If software developers modify multi-threaded applications to avoid simultaneous access to the MPI library, then the application can work with single-threaded MPI implementations, but the developers are restricted to use only specific kind of MPI implementations

Engineering Contradiction:
Improvethread safetyVSAvoidMPI implementation choice flexibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The binder serves as an intermediary that handles thread safety concerns, allowing the MPI library to maintain its single-thread access model while enabling multi-threaded applications to access it safely. The binder serializes requests from multiple threads, ensuring that only one thread accesses the MPI library at a time, thus maintaining reliability without restricting MPI implementation choices.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The binder automatically manages thread serialization and request queuing without requiring application developers to manually implement thread safety mechanisms. This self-service approach to thread management eliminates the need for developers to modify their applications to avoid simultaneous access, while still ensuring thread safety and maintaining flexibility in MPI implementation selection.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8561077B1Binder for a multi-threaded process to access an un-shareable resource
Publication Date: 2013.10.15 MATHWORKS INC
  • US8561077B1 patent drawing
  • US8561077B1 patent drawing
  • US8561077B1 patent drawing

AI summary

The present invention allows a multi-threaded process to access an un-shareable resource without modifying the multi-threaded process. A binder is created for the multi-threaded process to access the un-shareable resource. All requests from the multi-threaded process to access the un-shareable resource are intercepted by the binder and the binder decides how to redirect or reformulate the requests to access the un-shareable resource. The present invention allows a process to dynamically bind to an interface at run time to establish communication channels among multiple concurrent computing resources in a concurrent computing environment. Hence, a user can choose to change to use a different interface during run time of the process without terminating the execution of the process.