IP Library Granted Patent US 11,868,821
Granted Patent B2
US 11,868,821 · App. 18/155,411 · Granted Jan 9, 2024

Surrogate process creation technique for high process-per-server scenarios

Inventors: Joshua J. Hursey (La Crosse, WI); David Solt (Frisco, TX); Austen William Lauria (Fishkill, NY)
Assignee: International Business Machines Corporation
G06F9/52
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,868,821
App. No.
18/155,411
Granted
Jan 9, 2024
Kind
B2
Abstract

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.

Claims (45)

1. A method for launching parallel processes comprising:

creating by a launcher a parent process and then a surrogate, in response to a request to start a number of parallel processes;

inheriting by the surrogate communications channels from the launcher;

executing by the surrogate activities related to launch of the number of parallel process prior to a fork call;

launching the number of parallel processes by the surrogate;

executing the parallel processes; and

terminating the surrogate.

2. The method of claim 1 wherein only a portion of the number of parallel processes are launched using the surrogate.

3. The method of claim 1 further comprising:

creating, by the parent process, a communications channel for each of the parallel process.

4. The method of claim 1 further comprising:

establishing, by the parent process, systems resources for each of the parallel processes.

5. The method of claim 4 wherein the systems resources are those resources required prior to an execution of an exec call by each of the parallel processes.

6. The method of claim 1 wherein launching further comprises:

allowing the number of parallel processes to proceed to an associated execute call; and

halting an execution of the associated execute call until all of the number of parallel processes have reached the associated execute call.

7. The method of claim 1 wherein executing the number of parallel processes further comprises:

providing, by the surrogate, the launcher through a launcher-to-surrogate communications channel an indication that the number of parallel processes have been started and a per process identifier for each of the number of parallel processes.

8. The method of claim 1 further comprising:

prior to terminating the surrogate, transferring ownership of the number of parallel processes to the launcher.

9. The method of claim 8 wherein transferring occurs when the number of parallel processes execute.

10. The method of claim 8 wherein transferring comprises:

providing a launcher-to-surrogate communications channel;

sending to the launcher through the launcher-to-surrogate communications channel parallel process tracking for each of the number of parallel processes; and

receiving by the surrogate from the launcher through the launcher-to-surrogate communications channel control operations for the number of parallel processes.

11. The method of claim 10 wherein the control operations are operations that are not permitted by an operating system for indirectly connected processes.

12. A system for launching parallel processes comprising:

a server configured to process a number of parallel processes in response to a request for the number of parallel processes;

a launcher configured to create a parent process and then a surrogate; and

the surrogate configured to launch the number of parallel processes without further involvement of the launcher.

13. The system of claim 12 further comprising:

wherein the parent process is configured create communications channels for each of the number of parallel processes.

14. The system of claim 13 wherein the parent process is further configured to establish for each of the number of parallel processes any system resources required by the number of parallel process prior to a fork call for each of the number of parallel processes.

15. The system of claim 12 further comprising:

a launcher-to-surrogate communication channel created by the launcher and configured to allow communication between the launcher and the surrogate.

16. The system of claim 12 wherein the surrogate launches only a portion of the number of parallel processes and the launcher launches a remaining number of the number of processes.

17. The system of claim 12 wherein the surrogate is configured to reparent the number of parallel processes to the launcher after launching the number of parallel processes.

18. The system of claim 17 wherein the surrogate is configured to terminate following reparenting.

19. A computer-readable storage medium having computer-executable instructions that when executed by at least one computer cause the computer to:

create by a launcher a parent process, and then a surrogate, in response to a request to start a number of parallel processes;

inherit by the surrogate communications channels from the launcher;

execute by the surrogate activities related to launch of the number of parallel processes prior to a fork call;

launch the number of parallel processes by the surrogate;

execute the parallel processes; and

terminate the surrogate.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2023
From: HURSEY, JOSHUA J.; SOLT, DAVID; LAURIA, AUSTEN WILLIAM
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 062396/0879 →
Continuity (2)
Continuation 17190086 · Mar 2, 2021
Related Publication 20230153175A1 · May 18, 2023