Surrogate Process Creation for Parallel Launch Overhead

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The current method of launching parallel processes in a serial manner creates significant overhead in the system, impacting performance due to increased memory footprint and additional responsibilities of the launch mechanism.

Innovation Solution

A surrogate is created by the launcher to inherit communications channels and execute activities related to launching parallel processes, allowing the launcher to focus on other tasks and minimizing overhead, with the surrogate terminating once all processes are launched.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the launcher creates and manages all parallel processes directly, then process launch functionality is complete, but memory footprint and system overhead increase significantly

Engineering Contradiction:
Improveprocess launch functionalityVSAvoidmemory footprint
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent divides the process launch functionality into two separate entities: the launcher and the surrogate. The launcher creates the surrogate process, which then inherits necessary resources and launches the parallel processes. This segmentation allows the launcher to offload the memory-intensive process creation tasks to the surrogate, reducing the launcher's memory footprint while maintaining complete process launch functionality.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The surrogate process acts as an intermediary between the launcher and the parallel processes. It inherits communications channels from the launcher and performs the actual process launch activities. This intermediary approach allows the launcher to minimize its involvement and memory usage while ensuring reliable process creation through the surrogate's execution of launch activities.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the launcher handles all process creation responsibilities, then process management is comprehensive, but system performance deteriorates due to increased overhead

Engineering Contradiction:
Improveprocess management comprehensivenessVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

By segmenting the launcher's responsibilities into two parts - the launcher itself and the surrogate process - the system distributes the computational overhead. The launcher retains comprehensive process management capabilities while delegating the actual process creation work to the surrogate, thereby maintaining comprehensiveness while improving system performance through reduced overhead.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The surrogate process is self-contained and executes the process launch activities independently once created by the launcher. It inherits the necessary communications channels and resources, then autonomously performs the parallel process launches without requiring continuous involvement from the launcher. This self-service approach reduces the launcher's overhead and improves overall system performance.

Inventive Principle:
Principle #25Self-service

3Device complexity

If parallel processes are launched in a serial manner, then resource allocation is simplified, but launch time and system overhead increase

Engineering Contradiction:
Improveresource allocation complexityVSAvoidlaunch time
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The launcher performs preliminary actions by creating the surrogate process and establishing all necessary communications channels and resources before the actual parallel process launches begin. The surrogate then executes the process launches, potentially in parallel, having already received all necessary resources. This preliminary setup enables more efficient process creation without requiring complex real-time resource allocation during the launch sequence.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11868821B2Surrogate process creation technique for high process-per-server scenarios
Publication Date: 2024.01.09 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11868821B2 patent drawing
  • US11868821B2 patent drawing
  • US11868821B2 patent drawing

AI summary

A system and method for launching parallel processes on a server configured to process a number of parallel processes. A request is received from a parallel application to start a number of parallel processes. In response to this request a launcher creates a surrogate. The surrogate inherits communications channels from the launcher. The surrogate then executes activities related to the launch of the parallel processes, and then launches the parallel processes. The parallel processes are launched and the surrogate is terminated.