IP Library Granted Patent US 12,253,900
Granted Patent B2
US 12,253,900 · App. 18/078,260 · Granted Mar 18, 2025

Method for optimizing the energy consumption of a computing infrastructure by suspension of jobs

Inventors: Jean-Olivier Gerphagnon (Les Clayes-sous-Bois, FR); Jean-François Berree (Gieres, FR)
Assignees: BULL SAS; LE COMMISSARIAT À L'ÉNERGIE ATOMIQUE ET AUX ÉNERGIES ALTERNATIVES
G06F1/329
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 12,253,900
App. No.
18/078,260
Granted
Mar 18, 2025
Kind
B2
Abstract

A method for optimizing energy consumption of a computing infrastructure comprising a plurality of compute nodes, each associated with a plurality of jobs. The method includes receiving an energy consumption reduction request comprising an energy consumption reduction objective; determining a set of jobs to be suspended; and sending, to a runtime environment of each compute node associated with a job comprised in the determined set of jobs, a suspension request comprising said job. Upon receiving the suspension request, the method includes suspending the job comprised in the received suspension request, the suspension being carried out via a set of non-native instructions implemented in the runtime environment of each compute node; and active waiting by the suspended job for a suspension stop message comprising said suspended job, the active waiting being carried out via a set of non-native instructions implemented in the runtime environment of each compute node.

Claims (43)

1. A method for optimizing energy consumption of a computing infrastructure comprising an operating system at an operating system level and a plurality of compute nodes, each compute node of the plurality of compute nodes being associated with a plurality of jobs being run or waiting to be run on said each compute node, wherein the method comprises:

receiving an energy consumption reduction request comprising an energy consumption reduction objective;

determining a set of jobs to be suspended from the plurality of jobs associated with said each compute node, the set of jobs being determined based on the energy consumption reduction objective that is received;

sending, to a runtime environment of said each compute node associated with at least one job comprised in the set of jobs that is determined, a suspension request comprising said at least one job;

wherein said runtime environment is at an application level of said each compute node of said plurality of compute nodes;

upon receiving the suspension request, suspending the at least one job comprised in the suspension request that is received, the suspending being carried out via a set of non-native instructions implemented at the runtime environment of the at least one job on said each compute node of the computing infrastructure associated with said at least one job;

wherein said set of non-native instructions are not received by said operating system level of the computing infrastructure, and

wherein said suspending said at least one job is not performed by said operating system;

active waiting by the at least one job that is suspended for a suspension stop message comprising said at least one job that is suspended, the active waiting being carried out via the set of non-native instructions implemented at the runtime environment of the at least one job on said each compute node of the computing infrastructure associated with said at least one job;

wherein said method is performed independent of said operating system.

2. The method according to claim 1 , wherein the set of non-native instructions is based on a Message Passing Interface standard.

3. The method according to claim 1 , wherein each job of said plurality of jobs is represented by one or more processes on one or more compute nodes of the plurality of compute nodes of the computing infrastructure, and the suspending said at least one job comprises synchronously suspending the one or more processes running said at least one job.

4. The method according to claim 1 , wherein said plurality of jobs are distributed across one or more compute nodes and are associated with one and a same application, and the suspending the at least one job comprises suspending all jobs of the plurality of jobs associated with said same application.

5. The method according to claim 1 , further comprising, upon the runtime environment of the at least one job of the each compute node receiving the suspension stop message, stopping the suspending of the at least one job comprised in the suspension stop message that is received, the stopping being performed via the set of non-native instructions implemented at the runtime environment of the at least one job on said each compute node of the computing infrastructure associated with said at least one job.

6. The method according to claim 1 , wherein the energy consumption reduction request further comprises an item of reduction-removal information, the method further comprising sending the suspension stop message to the runtime environment of the at least one job on the each compute node, the sending depending on said item of reduction-removal information.

7. The method according to claim 1 , wherein the energy consumption reduction request further comprises one or more of

reduction date and time information, and

reduction duration information.

8. The method according to claim 1 , wherein each job of the plurality of jobs is associated with at least one item of job information, and the set of jobs is further determined based on the job information associated with said each job.

9. A computing infrastructure comprising an operating system at an operating system level and a plurality of compute nodes, each compute node of the plurality of compute nodes being associated with a plurality of jobs being run or waiting to be run on said each compute node, wherein the computing infrastructure comprises:

a receiver configured to receive an energy consumption reduction request comprising an energy consumption reduction objective;

a processor configured to

determine a set of jobs to be suspended from the plurality of jobs associated with said each compute node, the set of jobs being determined based on the energy consumption reduction objective that is received;

send, to a runtime environment of said each compute node associated with at least one job comprised in the set of jobs that is determined, a suspension request comprising said at least one job;

wherein said runtime environment is at an application level of said each compute node of said plurality of compute nodes;

wherein said each computer node of the plurality of compute nodes are configured to, at the runtime environment

upon receipt of the suspension request, suspend the at least one job comprised in the suspension request that is received;

wherein said suspend is carried out via a set of non-native instructions implemented at the runtime environment of the at least one job on said each compute node of the computing infrastructure associated with said at least one job;

wherein said set of non-native instructions are not received by said operating system level of the computing infrastructure, and

wherein said suspending said at least one job is not performed by said operating system;

actively wait for a suspension stop message comprising a suspended job;

wherein said actively waiting is carried out via the set of non-native instructions implemented at the runtime environment of the at least one job on said each compute node of the computing infrastructure associated with said at least one job;

wherein said receive, said determine, said send, said suspend and said actively wait are performed independent of said operating system.

10. A computer program-product comprising instructions that, when executed on a computer, lead the computer to implement a method for optimizing energy consumption of a computing infrastructure comprising an operating system at an operating system level and a plurality of compute nodes, each compute node of the plurality of compute nodes being associated with a plurality of jobs being run or waiting to be run on said each compute node, wherein the method comprises:

receiving an energy consumption reduction request comprising an energy consumption reduction objective;

determining a set of jobs to be suspended from the plurality of jobs associated with said each compute node, the set of jobs being determined based on the energy consumption reduction objective that is received;

sending, to a runtime environment of said each compute node associated with at least one job comprised in the set of jobs that is determined, a suspension request comprising said at least one job;

wherein said runtime environment is at an application level of said each compute node of said plurality of compute nodes;

upon receiving the suspension request, suspending the at least one job comprised in the suspension request that is received, the suspending being carried out via a set of non-native instructions implemented at the runtime environment of the at least one job on said each compute node of the computing infrastructure associated with said at least one job;

wherein said set of non-native instructions are not received by said operating system level of the computing infrastructure, and

wherein said suspending said at least one job is not performed by said operating system;

active waiting by the at least one job that is suspended for a suspension stop message comprising said at least one job that is suspended, the active waiting being carried out via the set of non-native instructions implemented at the runtime environment of the at least one job on said each compute node of the computing infrastructure associated with said at least one job;

wherein said method is performed independent of said operating system.

Assignments (2)
PARTIAL ASSIGNMENT AGREEMENT Recorded Nov 20, 2023
From: BULL SAS
To: LE COMMISSARIAT À L'ÉNERGIE ATOMIQUE ET AUX ÉNERGIES ALTERNATIVES
Reel/Frame 065629/0404 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2022
From: GERPHAGNON, JEAN-OLIVIER; BERREE, JEAN-FRANÇOIS
To: BULL SAS
Reel/Frame 062039/0227 →
Priority Claims (1)
EP 21213553 · Dec 9, 2021 · regional
Continuity (1)
Related Publication 20230185357A1 · Jun 15, 2023
References Cited (38)
US 4412285A · Neches · 1983 [cited by examiner]
US 4975829A · Clarey · 1990 [cited by examiner]
US 5546583A · Shriver · 1996 [cited by examiner]
US 5572680A · Ikeda · 1996 [cited by examiner]
US 5671368A · Chan · 1997 [cited by examiner]
US 5875320A · Gu · 1999 [cited by examiner]
US 6131166A · Wong-Insley · 2000 [cited by examiner]
US 6457132B1 · Borgendale · 2002 [cited by examiner]
US 6463457B1 · Armentrout · 2002 [cited by examiner]
US 7356677B1 · Rafizadeh · 2008 [cited by examiner]
US 20010016807A1 · Hashima · 2001 [cited by examiner]
US 20010044891A1 · McGrath · 2001 [cited by examiner]
US 20020116085A1 · Schaaf · 2002 [cited by examiner]
US 20030051183A1 · Lo · 2003 [cited by examiner]
US 20070079296A1 · Li · 2007 [cited by examiner]
US 20090094473A1 · Mizutani · 2009 [cited by examiner]
US 20090172657A1 · Makelainen · 2009 [cited by examiner]
US 20090265568A1 · Jackson · 2009 [cited by applicant]
US 20100174928A1 · Borghetti · 2010 [cited by examiner]
US 20110197196A1 · Felton et al. · 2011 [cited by applicant]
US 20120047383A1 · Laor · 2012 [cited by examiner]
US 20120096287A1 · Kamath · 2012 [cited by examiner]
US 20130326489A1 · Eijndhoven · 2013 [cited by examiner]
US 20150281336A1 · Beale · 2015 [cited by examiner]
US 20160179162A1 · Eastep et al. · 2016 [cited by applicant]
US 20180032381A1 · Ki · 2018 [cited by examiner]
US 20180232036A1 · Varadarajan · 2018 [cited by examiner]
US 20180233021A1 · Hiebert · 2018 [cited by examiner]
US 20190155359A1 · Bozga et al. · 2019 [cited by applicant]
US 20190196572A1 · Stoffel et al. · 2019 [cited by applicant]
US 20210342185A1 · Naidu et al. · 2021 [cited by applicant]
US 20220050714A1 · Grimshaw · 2022 [cited by examiner]
EP 3502895 · 2019 [cited by applicant]
FR 3010552 · 2015 [cited by applicant]
FR 3031200 · 2016 [cited by applicant]
MPI: A Message-Passing Interface Standard Version 3.1 Jun. 4, 2015 (Year: 2015). [cited by examiner]
Description of runtime environment (Year: 2015). [cited by examiner]
European Search Report issued in EP21213553.7, mailed Jun. 1, 2022 (10 pages). [cited by applicant]