Adaptive multi-stage software extension for fast recovery

By introducing an enhanced mode and dynamically adjusting the pace setting in the computer system, and utilizing the gradient descent algorithm to optimize resource management during the startup process, this invention solves the problems of flexibility and dynamism in existing technologies, realizes the application of resource management technology to accelerate the startup process and resources of the computer system.

CN115151894BActive Publication Date: 2026-06-26INTERNATIONAL BUSINESS MACHINE CORPORATION

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
INTERNATIONAL BUSINESS MACHINE CORPORATION
Filing Date
2021-02-01
Publication Date
2026-06-26

AI Technical Summary

Technical Problem

Existing technologies lack flexibility and dynamism in managing computing system resources, especially during startup and shutdown, resulting in excessive system downtime and insufficient resource utilization.

Method used

By introducing an enhanced mode into the computer system, dynamically adjusting the pace and grouping settings, optimizing the startup process using the gradient descent algorithm, increasing processor concurrency, and achieving flexible resource management.

Benefits of technology

It speeds up the computer system startup process, improves resource utilization, reduces system downtime, and meets the demand for on-demand computing capabilities.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115151894B_ABST
    Figure CN115151894B_ABST
Patent Text Reader

Abstract

A computer system can initialize one or more workloads. The computer system can operate in an enhanced mode and a regular mode. The enhanced mode includes an adjustment to a pacing setting and an adjustment to a group availability target for executing the one or more workloads. The computer system can identify that the enhanced mode is enabled during a system boot. The computer system can identify that the pacing setting is operating in the regular mode. The computer system can dynamically increase the pacing setting. The increase in the pacing setting can cause the one or more workloads to increase processor utilization of the computer system. The increased processor utilization can generate concurrent processing of the one or more workloads. The computer system can determine an end of the enhanced mode and reset the pacing setting.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure generally relates to managing the dynamic availability of resources of a computer system, and more specifically, to accelerating the start procedure of a computer system. Background Technology

[0002] The capacity of computer systems installed in cloud computing centers or on-site computing centers continues to grow. However, in some cases, the full computing power of very large computing systems (also known as mainframes) may be frequently required. Therefore, on-demand computing capabilities have been implemented, allowing available computing resources to be dynamically increased or decreased based on specific trigger signals.

[0003] Furthermore, for users who require 24 / 7 availability as a standard, system downtime costs have become increasingly prohibitive (e.g., in terms of computing resources). In particular, when recovering from maintenance scenarios, the primary focus is on minimizing the time spent starting or shutting down computer systems. During regular compute hours, the full capacity of the computing system can be deferred. Instead, full capacity can be used only for dedicated tasks, such as the monthly consolidation of business data. However, this may also involve additional licensing costs.

[0004] There are some disclosures regarding computer implementations that involve increasing the flexibility of using the spare capacity of computing systems.

[0005] Document US 2012 / 0047358 A1 discloses a method and related system for accelerating the boot process of a computing system. The method is applicable to electronic devices having a processor, an embedded controller, and system memory, wherein the program code of the Basic Input / Output System (BIOS) and the embedded controller of the electronic device are jointly stored in the system memory. In the disclosed method, upon receiving a boot trigger signal from the electronic device, the processor controls the embedded controller to cease access to the system memory so that the BIOS program code for the system memory can be loaded into the cache memory during the power-on self-test process.

[0006] Document EP 3518100 A1 discloses a method for quickly loading a kernel image file to be executed by a multi-core processor. The multi-core processor is connected to non-volatile storage devices and memory. The method distinguishes between different core groups of the multi-core processor and includes loading data blocks into memory according to the characteristics of the core group.

[0007] However, a drawback of known solutions is that they manage resources in a more or less static way. Therefore, it may be necessary to overcome these limitations and manage the available resources of a computing system in a more flexible and dynamic manner, especially for startup and shutdown procedures. Summary of the Invention

[0008] Embodiments of this disclosure include methods, computer program products, and systems for accelerating the startup process of a computer system.

[0009] In some embodiments, a computer system may initialize one or more workloads. The computer system may operate in boost mode and regular mode. Boost mode may include adjustments to the pacing setting and adjustments to group availability targets for executing one or more workloads. The computer system may recognize that boost mode is enabled during system startup. The computer system may recognize that the pacing setting operates in regular mode. The computing system may dynamically increase the pacing setting. Increasing the pacing setting increases the processor utilization of the computer system by one or more workloads. The increased processor utilization may generate concurrent processing of one or more workloads. The computer system may determine the end of boost mode. Determining the end of boost mode may include resetting the pacing setting to the pacing setting in regular mode.

[0010] In some embodiments, the computer system may recognize that its kernel system has been initialized. The computer system may dynamically increase the number of active members in a set of software components. This number of active members in the set executes in parallel, increasing processor utilization for one or more workloads.

[0011] In some embodiments, when the trigger signal for the end of the enhanced mode is set to a rule-based time point after the core system is initialized, that number of active members in the group are reset to the relevant regular grouping mode.

[0012] In some embodiments, when an additional processor of a computer system utilizes a user comprising one or more processors, each of the one or more processors comprises a plurality of partial processors.

[0013] In some embodiments, increasing the pace setting may include increasing the number of processor resources that execute in parallel.

[0014] In some embodiments, the startup process may be performed after a failover signal is received.

[0015] In some embodiments, the startup process may be hardware-triggered.

[0016] In some embodiments, the computer system can automatically optimize the time requirements of the startup process by applying the gradient descent algorithm. The gradient descent algorithm can be derived by changing the step setting and grouping setting used for a single startup process. The computer system can choose values ​​that make the function T have an extremum and its first derivative zero as the step setting and the grouping setting, where function T is a function of the step setting and the grouping setting.

[0017] Note that, compared to traditional methods of managing computing resources during such processes, the above-described claims offer the advantage of managing the available resources of a computing system in a more flexible and dynamic manner, particularly for startup and shutdown processes.

[0018] The above overview is not intended to describe every illustrative embodiment or implementation of this disclosure. Attached Figure Description

[0019] It should be noted that embodiments of this disclosure are described with reference to different subjects. Specifically, some embodiments are described with reference to method claims, while others are described with reference to apparatus claims. However, those skilled in the art will conclude from the above and below description that, unless otherwise indicated, any combination of features relating to different subjects (specifically, features of method claims and features of apparatus claims) is also considered to be disclosed herein, except for any combination of features belonging to one type of subject matter.

[0020] The foregoing limitations and other aspects of this disclosure are apparent from the examples of embodiments described below and illustrated with reference to examples of implementation, but this disclosure is not limited thereto.

[0021] Preferred embodiments of this disclosure will be described by way of example only and with reference to the following figures:

[0022] Figure 1 A block diagram illustrating an embodiment of a novel computer-implemented method for accelerating the startup process of a computer system according to embodiments of the present disclosure.

[0023] Figure 2 A block diagram illustrating an embodiment of a component that contributes to the proposed concept according to embodiments of the present disclosure is shown.

[0024] Figure 3 The following is illustrated according to embodiments of the present disclosure. Figure 2 A block diagram of the stages of the proposed method in the embodiments of the present invention.

[0025] Figure 4 A block diagram illustrating the next stage of an embodiment of the method proposed according to embodiments of the present disclosure is shown.

[0026] Figure 5 A flowchart (Flowchart A) is shown that is closer to an implementation of an embodiment of the method proposed according to embodiments of the present disclosure.

[0027] Figure 6 A flowchart (Flow B) showing how the steps are processed according to an embodiment of this disclosure is shown.

[0028] Figure 7 A flowchart (Flowchart C) illustrating how grouping is processed according to an embodiment of this disclosure is shown.

[0029] Figure 8 A flowchart illustrating how to evaluate pace and / or group options according to embodiments of this disclosure is shown.

[0030] Figure 9A A flowchart illustrating the IPL time depending on the pace according to an embodiment of this disclosure is shown.

[0031] Figure 9B A graph illustrating the IPL time depending on the pace according to an embodiment of this disclosure is shown.

[0032] Figure 10 A flowchart (Flowchart D) is shown for an operator-initiated system shutdown (e.g., initiated by software) according to an embodiment of this disclosure.

[0033] Figure 11 A block diagram of an inventive control system for accelerating the startup process of a computer system, according to an embodiment of the present disclosure, is shown.

[0034] Figure 12 An embodiment of the present disclosure is shown having according to Figure 11 A block diagram of the computer system for the control system.

[0035] While the embodiments described herein are subject to various modifications and alternatives, their details have been illustrated by way of example in the accompanying drawings and will be described in detail. However, it should be understood that the specific embodiments described are not intended to be limiting. Rather, the invention is intended to cover all modifications, equivalents, and alternatives falling within the spirit and scope of this disclosure. Detailed Implementation

[0036] In the context of this specification, the following conventions, terms and / or expressions may be used:

[0037] The term 'boot process' can refer to the steps required to initialize a computing system, including booting the core components, loading drivers, the basic operating system, defining partitions for a complex computing system, starting the advanced operating system, and similar tasks. After the boot process completes, the computing system will be able to execute applications, such as accepting workloads. It should also be noted that the terms 'computer system' and 'computing system' can be used synonymously.

[0038] The term 'workload' can essentially refer to any form of program code that executes on a computer system using the computer system's CPU, memory, network capacity, and other resources. Different programs may require different resources, thus generating different workloads. Program code can be associated with an operating system (e.g., system program code) or an application (user or application code).

[0039] The term 'enhanced mode' can refer to a mode of operation for a computing system in which more resources become available for allocation over a finite amount of time (and thus can be proactively acquired). During normal operation, these additional resources are unavailable for allocating certain application workloads. Therefore, a computing system can operate outside of an active enhanced mode using fewer physically available, accessible, and allocateable resources than it does during enhanced mode.

[0040] The term 'processor utilization' can represent the percentage of time a processor can be actively used within a time slice. In the case of complex processors, processor utilization can also represent the amount of processor resources used for a predefined time slice.

[0041] The term 'core system' can refer to those components required to start a computing system to function, such as applications (e.g., workloads) on an operating system that are initialized to make subsystems (e.g., network components, disk systems, etc.) available.

[0042] In the context of multi-core processors, the term 'partial processor' can refer to one of the cores in an implementation, such as a multi-core processor. Additionally, in the case of more complex execution units, additional processor resources can be included in the partial processor, such as dedicated cache memory for the computing core or dedicated extended instruction sets (e.g., in the form of dedicated microcode).

[0043] Specifically, in the context of so-called mainframe computers, the term "partial processor" may require a specific definition. A Complex Execution Complex (CEC) may include multiple General Purpose Processors (GPPs) and optionally multiple additional Integrated Information Processors (ZIPs). A CEC can be logically divided into multiple logical partitions, each representing a complete computing system. However, for example, I / O channels can be used together. Additionally, a logical partition (LPAR) may share processors with another LPAR (e.g., sharing multiple processors). Alternatively, processors can be dedicated to an LPAR to guarantee a specified processor capacity.

[0044] Furthermore, it should be considered that within an LPAR, the operating system (or control program, CP) only processes logical processors that can be physically shared or dedicated to a single processor. In a typical computing model, an LPAR may include n logical processors and m integrated information processors capable of executing workloads. It should also be noted that, under normal conditions, a z11P only receives those assigned workloads optimized for that z11P (e.g., Java programs or programs designed for specific operating system features).

[0045] This more complex processor can operate in a sub-capacity mode, where CP is only dispatchable by time portion. For example, if the sub-capacity is defined as 70%, then CP is only for 70% of the dispatchable time and 30% of the undispatchable time. However, from a software perspective, LPAR continues to have n logical processors that appear to operate at lower performance.

[0046] Conversely, in CEC's enhanced mode, all n+m processors can be used for workloads (e.g., assigned to specific workloads). This is where the aforementioned concept of "increased processor utilization" can originate. All n general-purpose processors can now be 100% dispatchable, and z11Ps can be additionally available (if installed).

[0047] The term 'gradient descent algorithm' can refer to a first-order iterative optimization algorithm used to find local minima of a function. To find a local minimum of a function using gradient descent, steps are taken that are proportional to the negative of the gradient (or approximate gradient) of the function at the current point. Gradient descent was first proposed by Cauchy in 1847.

[0048] The term "shutdown process" can refer to the process of ultimately disconnecting a computer from its major components in a controlled manner. After a computer system is shut down, major components such as the CPU, memory modules, and / or hard drives are de-energized, although some internal components, such as internal clocks or monitors or service processors, may retain power. In more complex computing systems, the shutdown process may also involve virtual machines or the main operating system used as part of the complex computing system. Therefore, the basic low-level operating system may still be active.

[0049] The term 'shutdown' (specifically, shutting down a computing system) can refer to following a predetermined shutdown procedure.

[0050] The term 'pacing gate' refers to a device used to configure the degree of parallelism of processing during workload startup and / or shutdown. Initially, pacing gates were introduced to prevent too much activity from starting or stopping simultaneously on a computing system, which could overload the system. The concept was designed to open the pacing gate to allow for greater parallelism if more capacity became available. In the context of modern multi-core CPUs, increasing pacing can mean making more processes available for parallel execution on the CPU, even if they are not available under normal operation. This may mean that the computer's user or owner can activate these additional capabilities.

[0051] The term "group availability target" can refer to the degree of parallelism in processing among members of a group (specifically, a set of applications). An availability target determines the number of members in a group that should be available simultaneously (e.g., active or running uplink) and therefore running in parallel. This should not be confused with "pacing," which can affect how many workloads can be started or stopped in parallel. They can then utilize available hardware resources. Instead, the term "grouping" refers to software that can be executed in parallel or not. As an illustrative example, consider the following: pacing in conjunction with a group means that when a group has, for example, an availability target of 10 and the initial pacing can be set to, for example, 2, only 2 members can be started at a time until all 10 members are active. Without pacing, all 10 members will be started simultaneously, which could lead to overload.

[0052] However, these two ideas are usually independent of each other and do not necessarily need to be combined.

[0053] A detailed description of the accompanying drawings is given below. All instructions in the drawings are schematic. First, block diagrams of embodiments of a computer implementation of the methods of this disclosure for accelerating the startup process of a computer system and for accelerating the shutdown process of a computer system are given. Subsequently, other embodiments of a control system for accelerating the startup process of a computer system and the shutdown process of a computer system will be described.

[0054] Figure 1 A block diagram of a preferred embodiment of a computer-implemented method 100 for accelerating the startup process of a computer system is shown. The startup process includes the initialization of workloads, specifically, the commencement of execution of software programs. The computer system should operate in enhanced mode and normal mode. Enhanced mode includes adjustments (typically, increases) to pacing gates and group availability targets for executing workloads on the central execution complex (also called the processor) or on logical partitions (LPARs) of the central execution complex of the computing system. The method includes: after determining that enhanced mode is enabled during system startup of the computer system and after determining that pacing is operating in normal mode, dynamically increasing a pacing setting of 102 to increase the utilization of the computer system's processor by the workload, thereby starting more concurrent workloads compared to when the processor is operating in normal mode, for example, thereby completing the startup process earlier or faster.

[0055] Method 100 further includes: if the end of the enhanced mode is determined, resetting the pace setting 104 to normal mode. Therefore, all objects are reset to normal operating mode, as if the proposed enhanced resources were never used in the startup process.

[0056] If an equivalent method is applied to the shutdown process of a computer system, the reset step to normal mode may be optional, since the computer system is shut down in any way and does not necessarily need to be reset.

[0057] Figure 2 A block diagram 200 illustrates embodiments of components contributing to the proposed concept, as well as some new functionalities of known components. The underlying (hardware) system may be equipped with an operating system 202 capable of accessing computing resources, for example, in the form of partial processors 204, ..., 212. An Automated Operations (AO) Manager (AO-M) 214 or AO controller may control 237 the pacing settings 230 and / or grouping settings 232 guided by dedicated policies in the AO database 234.

[0058] An AO agent 216 (AO-A) can be commanded 224 to launch one or more applications 218 (execute command 222) and monitor the operation 226 of one or more applications 218. The agent 216 can also report the status (227) back to the automatic operation manager 214. A dedicated timer 236 can monitor whether the startup process has been completed.

[0059] Also considering the newly proposed concept, AO agent 216 can pass the query enhancement request 238 to operating system 202 (step 1). Pace options can be set via AO agent 216 (228) (step 2), and automatic operation manager 214 sets or adjusts 237 the pace (step 3), for example, using more processing power (e.g., a portion of the processor). Figure 3 In this context, we will discuss the next steps of this method.

[0060] Figure 3 It shows that according to Figure 2 Block diagram 300 of the next stage of the proposed method 100 of embodiment 200. Operating system 202 signals 302 a “IPL completion notification” (step 4) to AO agent 216 (AO-A) (e.g., a corresponding message). Then, AO agent 216 requests specific group settings from automation operation controller 214 (304; step 5). In response, automation operation manager 214 adjusts 306 (step 6) (e.g., typically increases) the pace setting and group size (e.g., increases group parallelism, e.g., the number of active members allowed in the group).

[0061] Using this setting, the computing system's startup process can undergo an accelerated startup (or boot process) because more computing resources can be used, which might otherwise be inaccessible (e.g., under normal operating conditions).

[0062] Figure 4 It shows that according to Figure 2 The block diagram 400 shows the next stage of the proposed method 100 in embodiment 200. The operating system 202 may send an enhanced end notification message 402 to the AO agent 216 (step 7), which then readjusts the required group setting options 404 (step 8) and pace setting options 406 (step 9).

[0063] Then, the AO controller restores the step setting 408 (step 10) to the normal operation mode and restores the group availability target 410 (step 11) to the normal operation mode.

[0064] Figure 5 A flowchart 500 (Flowchart A) showing a closer implementation of an embodiment of the proposed method is illustrated. LPAR (Logical Partition) activation 502 includes enabling the computing system to perform a boot process (e.g., IPL) for the operating system (e.g., z / OS) 506. Whether the hardware-triggered enhancement 504 is active can be explicitly indicated by configurable options or queried from the operating system 507. In either case, the AO controller is activated 508.

[0065] The regular system startup and extended system startup are predefined processes coordinated by the AO controller. The extended startup phase begins when the IPL complete notification is available (see above). Therefore, it is determined in step 510 whether the enhancement is active. If the enhancement is not active (case "N"), the regular system startup in step 512 and the extended system startup in step 514 are performed. As a result, the normal system IPL ends in step 516.

[0066] On the other side, if the enhancement is active (case "Y"), then the pace is processed 518 (contrast). Figure 6 In process B), the normal system startup is executed at 520. After receiving the IPL completion notification at 522, the dynamic packet is processed at 524 (compare). Figure 7 In process C), the extended system startup is executed (526). At its end, the system IPL also ends in this branch of the flowchart (516).

[0067] Figure 6 A flowchart (process B) 600 illustrates how the stepping is handled. The process begins at 602. If stepping is enabled (utilized in the customer database) and specified as dynamic (as specified for the selected or all stepping configurations), the settings are adjusted accordingly: First, the stepping options are evaluated 604. Then, it is determined whether the stepping needs to be changed 606. If not (case “N”), the stepping settings processing ends 608. In the case of “Y” (yes), the stepping settings are adjusted 610 (usually increased) until an enhanced end notification 612 is received, after which the stepping settings are restored to their original settings 614.

[0068] Therefore, the direct process (normal startup process) is completed at point 608, but later, when the enhancement period ends, the pacing settings will be asynchronously restored to their previous positions. The enhancement period end notification can be received from the operating system as a signal or it can be generated automatically by the AO controller. It should also be noted that the enhancement options can differ from the startup to the shutdown process.

[0069] Figure 7 A flowchart (flow C) 700 illustrates how grouping is handled. The flow begins at 702. If grouping is enabled (as in a customer-specific AO database) and is specified as dynamic (as for selected or all groups), the grouping settings are adjusted accordingly.

[0070] Group options are evaluated 704, and then it is determined whether the group size needs to be adjusted (usually increased) 706. If not (case "N"), the dynamic grouping process ends 708. If it is determined in determination 706 that the group size must be changed (case "Y"), the group settings are adjusted 710. After receiving the enhanced period end notification 712, the group settings are restored 714.

[0071] Typically, the direct flow of process C ends at 708 after the group settings are adjusted. However, later, when the enhanced period ends, the group settings will be asynchronously restored to their previous positions. Again, the enhanced period end notification can be in the form of a signal from the operating system, or it can be generated automatically by the AO controller.

[0072] Figure 8 A flowchart 800 illustrates how step and / or group options can be evaluated. The process begins at 802. A cascading decision tree is executed. It begins by determining at 804 whether a specific step option "P" exists. If it exists (case "Y"), process "P" is executed at 806, and the process ends at 816. If it is determined that 804 ends in the opposite direction (case "N"), then it is determined at 808 whether a default option "D" exists. If it exists (case "Y"), process "D" is executed at 810, and the process ends again at 816.

[0073] If this is chosen as the third option (determining case "N" in 808), then the general default "G" exists in 812, and procedure "G" in 816 is applied. If this is not determined (case "N"), no action is taken. In the last two options, the procedure ends in 816.

[0074] The different default values ​​are explained below. The goal is to provide maximum flexibility while requiring only the minimum configuration.

[0075] The options change is: ±n|N|±m|func|opt, where ±n = relative number, N = absolute number, ±m = multiplier, func = function of capacity, and opt = adaptive optimization function.

[0076] It should be noted that the start and stop options for the pace should be distinguished by specific tuples. The start option can be used only for group settings.

[0077] Here are some examples for different options: General default: G = (1.2; 1.2) means that any pace / group setting should be increased by 20%; Pace default: D = (+3; +2) means that the pace should be increased by 3 for starting the computing system and by 2 for stopping the computing system; and specific pace: P = (1.4; +2) means that the pace should be multiplied by 1.4 for starting and by 2 for stopping the process.

[0078] For reference Figure 9A and Figure 9B Flowchart 900 and diagram 924 are illustrated, with diagram 924 showing the IPL time 914 according to step 916. An adaptive self-regulating mechanism can also be provided instead of the defined option. Control loop A1 can be applied by “plotting” the IPL time 914 on step 916. A second control loop is then applied by “plotting” the throughput of the system on the group size. The mechanism then works as follows: applying one or more small changes to minimize the IPL time T using gradient descent, measuring the result (e.g., IPL time), and collecting new data points (922, 920, 918) as an attribute set T = F(a1, a2, ..., an). A local minimum 918 setting is found if the absolute value of the derivative f of F is less than a predefined threshold (f ~ 0).

[0079] The corresponding flowchart 900 begins with an attempt 902 of any kind of data change (pacing or grouping). The result is measured 904, and the new change is reapplied 906, and new data can also be loaded from a database of historical data 908. Then, it is determined whether a local minimum has been found 910. If not found (case "N"), the process loops back to the beginning. Otherwise (case "Y"), the optimal value is found, and the process ends 912.

[0080] Figure 10 A flowchart (Flowchart D) is shown for a system shutdown initiated by an operator (e.g., by software). Here, only the pace may be relevant, as the groups are focused on workloads that may have already been stopped or identified as being stopped as part of the system shutdown.

[0081] The flowchart begins with the shutdown command 1002. The AO-triggered enhancement setting 1004 is activated by initiating a procedure provided by the operating system (well-known in the context of mainframe computing). Users can do this manually (or better yet), by including this procedure in the shutdown process of the automated operation controller. Either way, this is considered an AO-triggered enhancement.

[0082] Next, shut down startup 1006. Determine 1008 whether the enhancement is active. If the enhancement is not active (case "N"), the normal system shutdown procedure is executed 1010. If the enhancement is active (case "Y"), proceed according to process B (compare). Figure 6 The process is handled in step 1012, and the process ends in a regular system shutdown step so that no dynamic group adapter will be active, 1014.

[0083] Whether an enhancement is active can be explicitly indicated by configurable options or obtained from the operating system. Thus, regular system shutdown is a predefined process arranged by the AO controller.

[0084] Figure 11 A block diagram of an inventive control system 1100 for accelerating the startup process of a computer system is shown. Also shown here, the startup process includes workload initialization, and the computer system can operate in enhanced mode and normal mode. Enhanced mode includes adjustments to the pacing gate and group availability targets for executing workloads on the central execution complex of the computing system. The control system includes determination and incrementing means, specifically, a determination and incrementing module 1102 adapted to: upon determining that enhanced mode is enabled during system startup of the computer system, and after determining that pacing is operating in normal mode, dynamically increment the pacing setting to achieve increased processor utilization of the computer system by the workload. Thus, more workloads are concurrently initiated compared to processor operation in normal mode.

[0085] The control system 1100 also includes a determination and reset device (specifically, a combination determination and reset module 1104), which is adapted to reset the pace setting to the normal mode after the determination enhancement mode ends. It should be noted that the combination determination and enhancement module 1102 is interconnected with the combination determination and reset module and is used to exchange control signals.

[0086] It can also be noted that the relevant control systems used to shut down the computer system can be controlled entirely by interconnected hardware modules.

[0087] Embodiments of this disclosure can be implemented with virtually any type of computer, regardless of whether the platform is suitable for storing and / or executing program code. Figure 12 An example of a computing system 1200 suitable for executing program code related to the proposed method is shown.

[0088] The computing system 1200 is merely one example of a suitable computer system and is not intended to impose any limitation on the scope or functionality of the embodiments of this disclosure described herein, regardless of whether the computer system 1200 is capable of implementing and / or performing any of the functions set forth above. In the computer system 1200, there are components that can operate with many other general-purpose or special-purpose computing system environments or configurations. Examples of well-known computing systems, environments, and / or configurations suitable for use with the computer system / server 1200 include, but are not limited to, personal computer systems, server computer systems, thin clients, fat clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments that include any of the above systems or devices. The computer system / server 1200 can be described in the general context of computer system executable instructions, such as program modules, that are executed by the computer system 1200. Generally, program modules may include routines, programs, objects, components, logic, data structures, etc., that perform a specific task or implement a specific abstract data type. The computer system / server 1200 can be implemented in a distributed cloud computing environment, where tasks are executed by remote processing devices linked via a communication network. In a distributed cloud computing environment, program modules can reside on local and remote computer system storage media (including memory storage devices).

[0089] As shown in the figure, the computer system / server 1200 is illustrated as a general-purpose computing device. Components of the computer system / server 1200 may include, but are not limited to: one or more processors or processing units 1202, system memory 1204, and a bus 1206 (or channel subsystem) coupling various system components, including system memory 1204, to the processor 1202. Bus 1206 represents one or more of several types of bus architectures, including memory buses or memory controllers, peripheral buses, accelerated graphics ports, and processor or local buses using any of a variety of bus architectures. By way of example and not limitation, such architectures include Industry Standard Architecture (ISA) buses, Micro Channel Architecture (MCA) buses, Enhanced ISA (EISA) buses, Video Electronics Standards Association (VESA) local buses, and Peripheral Component Interconnect (PCI) buses. The computer system / server 1200 typically includes various computer system readable media. Such media can be any available media accessible by the computer system / server 1200, and includes volatile and non-volatile media, removable and non-removable media.

[0090] System memory 1204 may include computer system readable media in the form of volatile memory, such as random access memory (RAM) 1208 and / or cache memory 1210. Computer system / server 1200 may also include other removable / non-removable, volatile / non-volatile computer system storage media. By way of example only, storage system 1212 may be provided for reading from and writing to non-removable non-volatile magnetic media (not shown, and generally referred to as 'hard disk drives'). Although not shown, disk drives for reading from and writing to removable, non-volatile disks (e.g., 'floppy disks') and optical disk drives for reading from or writing to removable, non-volatile optical disks such as CD-ROMs, DVD-ROMs, or other optical media may be provided. In this case, each may be connected to bus 1206 via one or more data media interfaces. As will be further described and illustrated below, memory 1204 may include at least one program product having a set (e.g., at least one) of program modules configured to perform the functions of embodiments of the present disclosure.

[0091] A program / utility having at least one set of program modules 1216, along with an operating system, one or more applications, other program modules, and program data, may be stored in memory 1204 in an exemplary, not limiting, manner. Each or some combination of the operating system, one or more applications, other program modules, and program data may include implementations of a network environment. Program modules 1216 typically perform the functions and / or methods of embodiments of this disclosure, as described herein.

[0092] The computer system / server 1200 can also communicate with one or more external devices 1218, such as a keyboard, pointing device, or display 1220; one or more devices that enable a user to interact with the computer system / server 1200; and / or any device that enables the computer system / server 1200 to communicate with one or more other computing devices (e.g., a network interface card, modem, etc.). Such communication can occur via input / output (I / O) interface 1214. Furthermore, the computer system / server 1200 can communicate with one or more networks, such as a local area network (LAN), a general wide area network (WAN), and / or a public network (e.g., the Internet), via network adapter 1222. As depicted, network adapter 1222 can communicate with other components of the computer system / server 1200 via bus 1206. It should be understood that, although not shown, other hardware and / or software components can be used in conjunction with the computer system / server 1200. Examples include, but are not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archiving storage systems.

[0093] In addition, a control system 1100 for accelerating the startup process and shutdown of the computer system can be attached to a bus system 1206.

[0094] Various embodiments of this disclosure have been described for illustrative purposes, but are not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein has been chosen to best explain the principles of the embodiments, their practical application, or technical improvements over those found in the market, or to enable others skilled in the art to understand the embodiments disclosed herein.

[0095] This disclosure may be embodied as a system, method, and / or computer program product. A computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions thereon for causing a processor to perform aspects of this disclosure.

[0096] The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system used for propagation. Examples of computer-readable media can include semiconductor or solid-state memory, magnetic tape, removable computer disks, random access memory (RAM), read-only memory (ROM), rigid disks, and optical discs. Current embodiments of optical discs include compact disc-read-only memory (CD-ROM), compact disc-read / write (CD-R / W), DVDs, and Blu-ray discs.

[0097] Computer-readable storage media can be tangible means for retaining and storing instructions for use by an instruction execution device. Computer-readable storage media can be, for example, but not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination of the foregoing. A non-exhaustive list of more specific embodiments of computer-readable storage media includes: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital universal disk (DVD), memory sticks, floppy disks, mechanical encoding devices such as punch cards or protrusions in slots having instructions recorded thereon, and any suitable combination of the foregoing. As used herein, computer-readable storage media should not be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses passing through fiber optic cables), or electrical signals transmitted through wires.

[0098] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a suitable computing / processing device via a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network), or to an external computer or external storage device. The network may include copper cables, optical fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards them to a computer-readable storage medium within the suitable computing / processing device.

[0099] Computer-readable program instructions used to perform the operations of this disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​(such as Smalltalk, C++, etc.) and conventional procedural programming languages ​​(such as the "C" programming language or similar programming languages). The computer-readable program instructions may execute entirely on the user's computer, partially on the user's computer as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network (including a local area network (LAN) or a wide area network (WAN)) or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs) may execute computer-readable program instructions by utilizing state information from the computer-readable program instructions to personalize the electronic circuitry in order to perform aspects of this disclosure.

[0100] This document describes aspects of the disclosure with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the disclosure. It should be understood that each block of the flowcharts and / or block diagrams, and combinations of blocks in the flowcharts and / or block diagrams, can be implemented by computer-readable program instructions.

[0101] These computer-readable program instructions may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / actions specified in one or more boxes of a flowchart and / or block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium that causes a computer, programmable data processing apparatus, and / or other device to operate in a particular manner, such that the computer-readable storage medium storing the instructions comprises an article of manufacture containing instructions that implement aspects of the functions / actions specified in one or more boxes of a flowchart and / or block diagram.

[0102] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other device to produce computer-implemented processing, such that the instructions executed on the computer, other programmable apparatus, or other device perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.

[0103] The flowcharts and / or block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to different embodiments of this disclosure. Each block in a flowchart or block diagram may represent a module, segment, or portion of instructions, including one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions marked in the blocks may occur in a different order than indicated in the figures. For example, depending on the functions involved, two consecutively shown blocks may actually execute substantially simultaneously, or these blocks may sometimes execute in reverse order. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or action or performs a combination of dedicated hardware and computer instructions.

[0104] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit this disclosure. As used herein, unless the context clearly indicates otherwise, the singular forms “a,” “an,” and “the” are intended to also include the plural forms. It should also be understood that when the terms “comprises” and / or “comprising” are used in this specification, they specify the presence of features, integrals, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integrals, steps, operations, elements, components, and / or combinations thereof.

[0105] All means or steps in the following claims, plus corresponding structures, materials, actions, and equivalents of the functional elements, are intended to include any structure, material, or action for performing the said function in conjunction with other claimed elements as specifically claimed. The description of this disclosure has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the forms disclosed. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of this disclosure. These embodiments were chosen and described in order to best explain the principles and practical application of this disclosure and to enable others skilled in the art to understand the different embodiments of this disclosure with different modifications, such as those suitable for the particular intended use.

[0106] In Nutshell, the inventive concept can be summarized in the following clauses:

[0107] A computer-implemented method for accelerating the startup process of a computer system, the startup process including: initializing a workload, the computer system being operable in an enhanced mode and a normal mode, wherein the enhanced mode includes adjustments to a pacing gate and group availability targets for executing the workload on the central execution complex of the computing system, the method comprising: dynamically increasing a pacing setting to increase processor utilization of the computer system for the workload after determining that enhanced mode is enabled during system startup of the computer system and after determining that pacing is operating in normal mode, thereby starting more concurrent workloads compared to processor operation in normal mode; and resetting the pacing setting to normal mode after determining that the enhanced mode has ended.

[0108] The methods presented above also include dynamically increasing the number of active members in a set of software components that can be executed in parallel after determining that the computer system's core system has been initialized, in order to increase processor utilization of the workload.

[0109] As presented in the method, after the core system has been initialized, the trigger signal for the end of the enhanced mode is set to a rule-based time point, and the number of active members in the group is reset to the relevant regular grouping mode.

[0110] The method according to any of the foregoing examples, wherein the processor comprises a plurality of sub-processors.

[0111] As presented in the above method, increasing the pace setting includes increasing the number of processor resources for parallel execution.

[0112] According to the method of any of the foregoing examples, the startup process is executed after the received failover signal.

[0113] The methods presented above also include: automatically optimizing the time required for the startup process by applying the gradient descent algorithm, by changing the pacing and grouping settings used for a single startup process, and selecting values ​​that make the function T have extrema and whose first derivative is sufficiently close to zero as the pacing and grouping settings, where the function T is a function of the pacing and grouping settings.

[0114] The method described in any of the preceding examples is hardware-triggered.

[0115] A computer-implemented method for accelerating the shutdown process of a computer system, the shutdown process including the shutdown of workloads, the computer system operating in an enhanced mode and a normal mode, wherein the enhanced mode includes adjusting the pacing of the processor of the computing system, the method comprising: after determining that the enhanced mode is enabled during the system shutdown of the computer system, and after determining that the pacing is operating in normal mode, dynamically adjusting the pacing settings of the processor of the computer system based on the workload, thereby simultaneously stopping more concurrent workloads.

[0116] As presented above, the shutdown process is software-triggered.

[0117] A control system for accelerating the startup process of a computer system, the startup process including the initialization of a workload, the computer system being capable of operating in an enhanced mode and a normal mode, wherein the enhanced mode includes adjustments to a pacing gate and a set availability target for executing the workload on the central execution complex of the computing system, the control system comprising: a determining and increasing means adapted to: dynamically increase a pacing setting to achieve increased processor utilization of the workload on the computer system after determining that the enhanced mode is enabled during system startup of the computer system and after determining that the pacing is operating in normal mode, thereby starting more concurrent workloads compared to processor operation in normal mode; and a determining and resetting means adapted to: reset the pacing setting to normal mode after determining that the enhanced mode has ended.

[0118] The control system presented above, wherein the determination and addition device is also adapted to dynamically increase the number of active members in a set of software components that can be executed in parallel after the core system of the computer system has been initialized, in order to achieve increased processor utilization for increased workload.

[0119] The control system described above also includes a triggering device adapted to set a rule-based time point for the trigger signal to the end of the enhanced mode after the core system has been initialized, wherein the number of active members in the group is reset to the relevant regular grouping mode.

[0120] The control system presented above includes a processor comprising multiple sub-processors.

[0121] The control system presented above includes increasing the number of parallel execution processor resources by adding a step setting.

[0122] The control system described above also includes an optimization device adapted to automatically optimize the time required for the startup procedure by applying a gradient descent algorithm by changing the pace setting and grouping setting for a single startup process, and adapted to select the pace setting and grouping setting as values ​​that give extrema to the function T and whose first derivative is sufficiently close to zero, where the function T is a function of the pace setting and grouping setting.

[0123] According to any of the foregoing examples, the control system wherein the startup process is hardware-triggered.

[0124] A control system for accelerating the shutdown process of a computer system, the shutdown process including the shutdown of workloads, the computer system operating in an enhanced mode and a normal mode, wherein the enhanced mode includes adjusting the pacing of the processor used by the computing system, the control system including determining and adjusting means adapted to: dynamically adjust the pacing setting based on the processor utilization of the computer system's workload after determining that the enhanced mode is enabled during the system shutdown of the computer system and after determining that the pacing is operating in normal mode, thereby simultaneously stopping more concurrent workloads.

[0125] A computer program product for accelerating the startup process of a computer system, the startup process including the initialization of a workload, the computer system being operable in an enhanced mode and a normal mode, wherein the enhanced mode includes adjustments to a pacing gate and group availability targets for executing workloads on the central execution complex of the computing system, the computer program product including a computer-readable storage medium having program instructions embodied therein, the program instructions being executable by one or more computing systems or controllers to dynamically increase a pacing setting to achieve increased processor utilization of the computer system's workloads after determining that the enhanced mode is enabled during system startup of the computer system and after determining that the pacing is operating in normal mode, thereby starting more concurrent workloads compared to processor operation in normal mode, and to reset the pacing setting to normal mode upon determining the end of the enhanced mode.

[0126] In addition, in some embodiments, this disclosure provides a method, computer program product, and system for accelerating the startup process of a computer system.

[0127] In some embodiments, a computer system may initialize one or more workloads. The computer system may operate in an enhanced mode and a normal mode. Enhanced mode may include adjustments to pacing settings and adjustments to group availability targets for executing one or more workloads. The computer system may recognize that enhanced mode is enabled during system startup. The computer system may recognize that pacing settings are operating in normal mode. The computing system may dynamically increase pacing settings. Increasing pacing settings enables increased processor utilization of the computer system for one or more workloads, the increased processor utilization generating concurrent processing of one or more workloads. The computer system may determine the end of enhanced mode. Determining the end of enhanced mode may include resetting the pacing settings to those in normal mode.

[0128] In some embodiments, the computer system may recognize that one of its core systems has been initialized. The computer system may dynamically increase the number of active members in a set of software components. This number of active members in the set executes in parallel, achieving increased processor utilization for one or more workloads.

[0129] In some embodiments, when the trigger signal for the end of the enhanced mode is set to a rule-based time point after the core system is initialized, the number of active members in the group is reset to the relevant regular grouping mode.

[0130] In some embodiments, when an additional processor of a computer system utilizes a user comprising one or more processors, each of the one or more processors comprises a plurality of partial processors.

[0131] In some embodiments, increasing the pace setting may include increasing the number of processor resources that execute in parallel.

[0132] In some embodiments, the startup process may be performed after a failover signal is received.

[0133] In some embodiments, the startup process may be hardware-triggered.

[0134] In some embodiments, the computer system can automatically optimize the time requirements of the startup process by applying the gradient descent algorithm. The gradient descent algorithm can be derived by changing the pacing and grouping settings used for a single startup process. The computer system can choose values ​​that make the function T have extrema and its first derivative zero as the pacing and grouping settings, where T is a function of the pacing and grouping settings.

[0135] Although the present disclosure has been illustrated and described above with reference to specific embodiments thereof, those skilled in the art will understand that various modifications in form and detail may be made to the present disclosure without departing from the spirit and scope of the present disclosure as defined by the appended claims.

Claims

1. A computer-implemented method for accelerating the boot process of a computer system, the method comprising: One or more workloads are initialized by the computer system, wherein the computer system operates in enhanced mode and normal mode, wherein the enhanced mode includes adjustments to the pacing settings and adjustments to group availability targets for executing one or more workloads; The enhanced mode was identified as being enabled during the computer system's startup. The pace setting is identified as operating in normal mode; The timing requirements of the startup process are automatically optimized by applying the gradient descent algorithm, wherein the gradient descent algorithm is derived by changing the pace setting and grouping setting of individual startup processes. The value that makes the function T have an extremum and its first derivative zero is selected as the setting for the step setting and the setting for the grouping setting, wherein the function T is the function for the step setting and the setting for the grouping setting; The pace setting is dynamically increased, wherein increasing the pace setting increases the processor utilization of the computer system for one or more workloads, and wherein the increased processor utilization generates concurrent processing of the one or more workloads; and Determining the end of the enhanced mode includes resetting the pace setting to the pace setting in the normal mode.

2. The method according to claim 1, further comprising: The kernel system that identifies this computer system has been initialized; as well as Dynamically increase the number of active members in a set of software components, wherein the number of active members in the set are executed in parallel, and thereby increase processor utilization of the one or more workloads.

3. The method according to claim 2, wherein, The trigger signal for the end of the enhanced mode is set to a rule-based time point after the core system is initialized, wherein the number of active members in the group is reset to the relevant regular grouping mode.

4. The method according to any one of claims 1 to 3, wherein, The computer system's additional processor utilization includes the use of one or more processors, wherein each of the one or more processors includes a plurality of sub-processors.

5. The method according to any one of claims 1 to 3, wherein, The increase in the pace setting includes increasing the number of processor resources for parallel execution.

6. The method according to any one of claims 1 to 3, wherein, The startup process is executed after receiving the failover signal.

7. The method according to any one of claims 1 to 3, wherein, The startup process is triggered by hardware.

8. A control system for accelerating the startup process of a computer system, the control system comprising: Memory; as well as A processor communicating with the memory executes instructions contained in the memory to perform operations including: Initialize one or more workloads, wherein the computer system operates in enhanced mode and normal mode, wherein the enhanced mode includes adjustments to the pacing settings and adjustments to group availability targets for executing one or more workloads; The enhanced mode was identified as being enabled during the computer system's startup. The pace setting is identified and operated in the normal mode; The timing requirements of the startup process are automatically optimized by applying the gradient descent algorithm, wherein the gradient descent algorithm is derived by changing the pace setting and grouping setting of a single startup process. The value that makes the function T have an extremum and its first derivative zero is selected as the setting for the step setting and the setting for the grouping setting, wherein the function T is the function for the step setting and the setting for the grouping setting; Dynamically increase the pace setting, wherein increasing the pace setting increases the processor utilization of the computer system for the one or more workloads, and wherein the increased processor utilization generates concurrent processing of the one or more workloads; and Determining the end of the enhanced mode includes resetting the pace setting to the pace setting in the normal mode.

9. The control system according to claim 8, wherein, The operation also includes: The kernel system of the computer system has been initialized; and Dynamically increase the number of active members in a set of software components, wherein the number of active members in the set are executed in parallel, and thereby increase processor utilization of the one or more workloads.

10. The control system according to claim 9, wherein, The trigger signal for the end of the enhanced mode is set to a rule-based time point after the core system is initialized, wherein the number of active members in the group is reset to the relevant regular grouping mode.

11. The control system according to any one of claims 8 to 10, wherein, The computer system's additional processor utilization includes the use of one or more processors, wherein each of the one or more processors includes a plurality of sub-processors.

12. The control system according to any one of claims 8 to 10, wherein, The increase in the pace setting includes increasing the number of processor resources for parallel execution.

13. The control system according to any one of claims 8 to 10, wherein, The startup process is executed after receiving the failover signal.

14. A computer program product for accelerating the startup process of a computer system, the computer program product comprising a computer-readable storage medium having program instructions embodied therein, the program instructions being executable by a processor to cause the processor to perform functions, the functions including: Initialize one or more workloads, wherein the computer system operates in an enhanced mode and a normal mode, wherein the enhanced mode includes adjustments to the pacing settings and adjustments to group availability targets for executing the one or more workloads; The enhanced mode was identified as being enabled during system startup of the computer system. The pace setting is identified and operated in the normal mode; The timing requirements of the startup process are automatically optimized by applying the gradient descent algorithm, wherein the gradient descent algorithm is derived by changing the pace setting and grouping setting of a single startup process. The value that makes the function T have an extremum and its first derivative zero is selected as the setting for the step setting and the setting for the grouping setting, wherein the function T is the function for the step setting and the setting for the grouping setting; Dynamically increase the pace setting, wherein increasing the pace setting increases the processor utilization of the computer system for the one or more workloads, and wherein the increased processor utilization generates concurrent processing of the one or more workloads; and Determining the end of the enhanced mode includes resetting the pace setting to the pace setting in the normal mode.

15. The computer program product according to claim 14, wherein, The functionality also includes: The kernel system of the computer system has been initialized; and Dynamically increase the number of active members in a set of software components, wherein the number of active members in the set are executed in parallel, and thereby increase processor utilization of the one or more workloads.

16. The computer program product according to claim 15, wherein, The trigger signal for the end of the enhanced mode is set to a rule-based time point after the core system is initialized, and the number of active members of the group is reset to the relevant regular grouping mode.

17. The computer program product according to any one of claims 14 to 16, wherein, The computer system's additional processor utilization includes the use of one or more processors, wherein each of the one or more processors includes a plurality of sub-processors.

18. The computer program product according to any one of claims 14 to 16, wherein, The increase in the pace setting includes increasing the number of processor resources for parallel execution.

19. The computer program product according to any one of claims 14 to 16, wherein, The startup process is executed after receiving the failover signal.