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

US11593183B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11593183-B2
Application numberUS-202117190086-A
CountryUS
Kind codeB2
Filing dateMar 2, 2021
Priority dateMar 2, 2021
Publication dateFeb 28, 2023
Grant dateFeb 28, 2023

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for launching parallel processes comprising: receiving a request from a parallel application to start a number of parallel processes; creating, by the launcher, a parent process prior to creating a surrogate creating by a launcher the surrogate; 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 parallel application configured to request a number of parallel processes; a server configured to process the number of parallel processes; a launcher configured to create a surrogate, the launcher further configured to coordinate with other system services, provide runtime information to peer process, make resource allocations to processes, and to create a parent process prior to the creation of the surrogate; and the surrogate configured to launch the number of parallel processes without further involvement of the launcher. 13. The system of claim 12 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 compute-executable instructions that when executed by at least one computer cause the computer to: receive a request from a parallel application to start a number of parallel processes; create by a launcher a parent process prior to creating a surrogate; create by the launcher the surrogate; inherit by the surrogate communications channels from the launcher; execute by the surrogate activities related to launch of the number of parallel process prior to a fork call; launch the number of parallel processes by the surrogate; execute the parallel processes; and terminate the surrogate.

Assignees

Inventors

Classifications

  • G06F9/52Primary

    Program synchronisation; Mutual exclusion, e.g. by means of semaphores · CPC title

  • G06F9/4843Primary

    by program, e.g. task dispatcher, supervisor, operating system · CPC title

  • Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs (mappping at compile time, see G06F8/451) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11593183B2 cover?
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 …
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F9/52. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 28 2023 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).