DECISION SUPPORT METHOD AND DEVICE FOR ALLOCATION OF ACCOUNTING FUNDS TO A HIGH-PERFORMANCE ACCOUNTING INFRASTRUCTURE
Patent Information
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- BULL SA
- Filing Date
- 2019-12-30
- Publication Date
- 2026-05-20
AI Technical Summary
The increasing complexity of high-performance computing (HPC) infrastructures and the lack of IT expertise among users make it difficult to quickly identify and allocate the necessary computing resources, especially with the growing size and diversity of clusters, leading to manual and inefficient resource allocation processes.
A decision support method and device for allocating computing resources on HPC infrastructure, utilizing a communication module, data processing module, and reservation management module to identify and manage instances meeting specific resource requirements, including graphical representation and alternative solutions.
Facilitates rapid identification and allocation of computing resources, optimizes instance utilization, and avoids allocation errors by centralizing management and providing decision support for HPC operators.
Description
[0001] The invention relates to the field of high-performance computing, and more particularly to the allocation of computing resources, which can be used in various applications such as aeronautics, energy, climatology, and life sciences. The invention relates to a method for aiding the allocation of computing resources, a computer program capable of implementing said method, a device for aiding the allocation of computing resources, and a high-performance computing system incorporating such a device. [Previous art]
[0002] High-performance computing (HPC) is developing for both academic research and industry, particularly in technical fields such as aeronautics, energy, climatology, and life sciences. These calculations are generally implemented using clusters. The goal of these clusters is to overcome the limitations of existing hardware by pooling resources to enable the parallel execution of instructions and the aggregation of memory and disk capacity. A cluster is a set of computing resources (also called nodes) interconnected by a network that can perform common operations.
[0003] High-performance computing (HPC) is being adopted by a growing number of scientists to help them solve complex problems. In particular, with the world's most powerful computer increasing by more than 50% between 2017 and 2018, the computing power of supercomputers continues to increase. Furthermore, there is a growing number of computing centers (local, regional, national, and international) equipped with petaflop-class systems.
[0004] Beyond computing power, scientific users want access to portals that provide quick and exclusive access to a set of high-performance computing resources tailored to their needs. Thus, alongside the steady increase in cluster size, new multi-location HPC infrastructure features have emerged, enabling secure and exclusive access to specific computing resources or nodes.
[0005] Thus, the HPC field is facing an increase in the size of infrastructures and the number of computing resources on the one hand, and an increase in the number of users seeking exclusive access to a set of computing resources capable of meeting their resource needs on the other. However, while all these end users possess in-depth scientific knowledge in their respective fields, they are not necessarily experts in HPC. Given the increasing size of clusters and the lack of user specialization, it has become increasingly difficult to quickly identify and allocate the computing resources needed to meet a given requirement.
[0006] There are planners or schedulers that, within a set of reserved resources, distribute computing tasks among computing resources and order them. However, these processes and devices only come into play after the computing resources have been allocated and do not allow an operator to quickly identify the nodes to be allocated.
[0007] In the field of virtualization, there are also processes and devices for allocating resources such as storage space and CPU power. However, these processes or devices, while suitable for segmenting computing resources among multiple users, are not suitable for allocating multiple computing resources within an HPC system, where the lack of resource segmentation and the diversity of the computing resources involved make automating allocation difficult.
[0008] Therefore, on most HPC platforms, resource allocation is still done manually and is becoming increasingly complex with the increase in the number and diversity of aggregate computing resources.
[0009] Thus, there is a need for new processes and devices capable of assisting HPC IT infrastructure operators in planning and allocating computing resources. [Technical problem]
[0010] The invention therefore aims to overcome the drawbacks of the prior art. In particular, the invention aims to provide a method for allocating computing resources that allows for managing the quantity and diversity of computing resources comprising an HPC infrastructure. The method takes into account the lack of IT expertise among users and the much higher level of granularity compared to virtual machines, where portions of computing resources are allocated rather than multiple machines of different categories. Furthermore, the invention aims to provide a computing resource allocation assistance device that can be positioned at the interface between users, operators, and the HPC system without complicating its operation. [Brief description of the invention]
[0011] To this end, the invention relates to a decision support method for allocating computing resources on a high-performance computing infrastructure, enabling the identification of a set of instances meeting a resource requirement. This method is implemented by a computer system comprising a communication module, a data processing module, a reservation management module, and a storage module configured to store a resource class repository, a reservation repository, and a keyword repository. This method comprises the following steps: Receipt, by the communication module, of a request message containing data relating to a resource requirement for a given duration; Identification, by the data processing module, in the request message of: ∘ an order duration, ∘ one or more keywords referenced in the keyword repository, and ∘ one or more order values, each of said order values corresponding to a numeric value associated with an identified referenced keyword; Calculation, from the order values, by the data processing module, of one or more required instance values, each corresponding to a numeric value associated with a resource class referenced in the resource class repository, said numeric value corresponding to a quantity of computing resources required to meet the resource requirement;and Comparison, from the reservation repository, by the reservation management module, of one or more calculated required instance values to available instance values over a period at least equal to the order duration, in order to identify a set of instances per resource class meeting the resource requirement and an availability period.
[0012] This process facilitates the management of resource allocations or reservations on an HPC platform and enables the sharing of this information within a team of operators responsible for managing and administering these resources (e.g., administrators, sales representatives, or pre-sales resources). Specifically, this process allows for the analysis of a request message and its comparison with resource data, enabling the rapid identification of which resources could meet a user's needs and when. This makes it easy to determine if, and when, the requested resources are likely to be available.This approach addresses the technical challenges encountered in resource and capacity management within high-performance computing (HPC), resolves the combinatorial problems associated with allocating computing resources, facilitates decision-making, and generally ensures the effective management of the IT environment. This is particularly advantageous for a high-performance computing infrastructure, which, unlike general-purpose infrastructures that assume overcapacity, comprises a limited number of computing resources. Furthermore, instances are advantageously federated into clusters and pre-installed with applications utilizing high-performance computing. These applications are preferably scientific parallel applications ready to be used without prior knowledge of high-performance computing.
[0013] Depending on other optional characteristics of the process : Each instance can be associated with a unique identifier. The process may further include a step of generating a pre-reservation message containing the unique identifiers of the instances identified as meeting the resource requirement. This advantageously allows for the identification of specific instances that can meet the received resource requirement. The process may also advantageously include a step of generating a graphical representation of one or more required instance values, each associated with a time-dependent resource class. Generating such a graphical representation can advantageously provide an operator with a wealth of information to facilitate decision-making regarding the allocation of instances to a client for a specific duration and use.The request message may include data relating to a time period corresponding to the resource requirement, and the identification step involves identifying in the message a time period corresponding to the time period during which the resource requirement is requested. This facilitates information management, particularly the allocation of instances by an operator. The process may include a step where a reservation management module modifies the reservation repository after the communication module receives a reservation confirmation message for the set of suitable instances. This facilitates the management of the reservation repository by systematically updating the data relating to each instance.The reservation confirmation message can include an availability index associated with each instance, this availability index taking a value selected from at least three values, preferably three. This improves the management of information relating to each instance in the reservation management repository. The reservation management module can advantageously be configured to generate an alert when the reservation repository contains two different availability index values for the same instance. This helps prevent operators from making allocation errors related to the availability of each instance.The process may include, when the comparison step fails to identify a set of instances meeting the resource requirement, a step to identify alternative instances. This step involves selecting one or more combinations of alternative resource classes and reservation durations that provide a service equivalent to the resource requirement, followed by a step comparing the alternative resource classes and their required alternative instance values to the resource classes of the available instances in the reservation repository. Thus, even if the most suitable instances are not available, the process can still identify instances that could constitute an alternative solution to meet the resource requirement.
[0014] According to another aspect, the invention relates to a computer-based decision support device for allocating computing resources on a high-performance computing infrastructure, said computer-based device further comprising a storage module configured to store a resource class repository, a reservation repository and a keyword repository, a communication module, a data processing module, a reservation management module, and: the communication module being configurable to receive a request message containing data relating to a resource requirement for a given duration; the data processing module being advantageously configured to identify in the request message: an order duration, one or more keywords referenced in the keyword repository, and one or more order values, each of said order values corresponding to a numeric value associated with an identified referenced keyword; the data processing module being advantageously configured to calculate, from the order values, one or more required instance values, each corresponding to a numeric value associated with a resource class referenced in the resource class repository, said numeric value corresponding to a quantity of computing resources required to meet the resource requirement;and the reservation management module can be configured to compare, from the reservation repository, one or more calculated required instance values with available instance values over a period at least equal to the order duration, so as to identify a set of instances per resource class that meet the resource requirement and availability period.
[0015] A computer system according to the invention facilitates the management of multiple computing resources (i.e., instances) of different resource classes, based on a client's resource requirements for a given period and the availability of said resources for that period. Furthermore, such a computer system has the advantage of centralizing the management of instances within an HPC infrastructure and providing an operator with data that facilitates decision-making regarding instance allocation within the HPC infrastructure. Thus, thanks to a computer system conforming to the invention, an operator can more easily manage the allocation of multiple instances of different resource classes over a given period, notably by optimizing instance utilization based on resource needs and avoiding any allocation errors related to said instances.
[0016] According to another aspect, the invention relates to a system comprising a high-performance computing infrastructure and a computer device according to the invention, for decision support for the allocation of computing resources on said high-performance computing infrastructure.
[0017] According to another aspect, the invention further relates to a computer program product comprising one or more instructions interpretable or executable by a data processing module of a computer device according to the invention, the interpretation or execution of said instructions by said data processing module causing the implementation of a process according to the invention.
[0018] According to another aspect, the invention further relates to a tangible recording medium, readable by a computer, on which a computer program product according to the invention is recorded in a non-transient manner.
[0019] Other advantages and features of the invention will become apparent from the following description, given by way of illustrative and non-limiting example, with reference to the attached Figures: [ Fig 1 [ ] represents a diagram of a high-performance computing system comprising a computer device, a plurality of instances per resource class, and a human-machine interface. Fig 2 [ ] represents a diagram of a computer device according to the invention. The figures 3A, 3B, and 3C represent respectively a keyword repository, a resource class repository, and a reservation repository. Fig 4 [ ] represents a diagram of a decision support method for allocating computing resources on a high-performance computing infrastructure according to the invention. The steps outlined by dotted lines are optional. Fig 5 [ ] represents a diagram of an embodiment of a process according to the invention. ] Fig 6 [ ] represents a diagram of an example of a graphical representation of one or more required instance values per resource class as a function of time. The brackets represent an order period.
[0020] Aspects of the present invention are described with reference to flowcharts and / or functional diagrams of processes, devices (systems) and computer program products according to embodiments of the invention.
[0021] In the figures, flowcharts and functional diagrams illustrate the architecture, functionality, and operation of possible implementations of computer program systems, processes, and products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams can represent a system, device, module, or code, which comprises one or more executable instructions for implementing the specified logical function(s). In some implementations, the functions associated with the blocks may appear in a different order than that shown in the figures. For example, two blocks shown successively may, in fact, be executed substantially simultaneously, or the blocks may sometimes be executed in reverse order, depending on the functionality involved.Each block in the schematic diagrams and / or flowchart, and combinations of blocks in the schematic diagrams and / or flowchart, can be implemented by special hardware systems that perform the specified functions or actions or carry out combinations of special hardware and computer instructions. [Description of the invention]
[0022] In the following description, "high-performance computing infrastructure" or "HPC infrastructure" refers to a set of computing resources (i.e., hardware and software resources) that enable the execution of computing tasks or the storage of digital data. These resources include, but are not limited to: fast computing electronic components (e.g., multi-core processors or the latest generation of graphics cards dedicated to scientific computing), RAM, and mass storage equipment (or secondary storage), particularly large quantities of hard drives. From a functional perspective, an HPC is a machine that aggregates the above equipment / resources to form a computing cluster.For the purposes of this invention, the high-performance computing infrastructure may also include computing resources enabling artificial intelligence processes such as deep learning or quantum computing. All this equipment is generally associated with an operating system (OS). The operating system is, for example, Windows (registered trademark), or more frequently UNIX (registered trademark) or one of its variants such as Linux (registered trademark). Software running on this OS can manage the overall hardware resources, leveraging their performance potential, particularly by exploiting parallelism and making resource distribution transparent.
[0023] For the purposes of this invention, "computer device" means any device capable of operating one or more processes. From a structural point of view, a computer device may include a computing means such as a processor, a storage means, a printed circuit board, and communication buses configured to allow communication between components of the computer device.
[0024] For the purposes of this invention, the term "instance" or "computing means" refers to any computing device capable of running one or more processes, such as a compute node in a high-performance computer, a graphics node providing visual feedback to an operator via a human-machine interface, or a storage node. Structurally, an instance can be represented by a blade (i.e., a printed circuit board). All or most instances may, by way of example, be compute blades or data storage media. Data storage media include data storage disks that constitute a physical storage system, on which a file system (FS) is mounted, such as GPFS (General Parallel File System), which allows for the distributed storage of files across a large number of physical media, potentially exceeding a thousand.
[0025] The term "availability of an instance" means any unallocated N1, Ni instance, that is to say, one which has an availability index in a field R of the data structure of a reservation repository, reflecting the state of an N1, Ni instance.
[0026] The term "resource class" means one or more N1, Ni instances of a given type, such as, but not limited to, graphics, computing, or storage types.
[0027] A "reference system" is defined as a set of static data stored in a data memory of a computer system. This data may be structured as a reference table, matrix, or database. Reference systems are configured to be accessible for reading and / or writing, depending on user permissions, particularly for updating the data associated with each reference system.
[0028] The expression "order duration" corresponds, in the sense of the invention, to the duration (in time units) during which the resources will be needed and will therefore be monopolized by a user.
[0029] The term "order period" refers, in the context of this invention, to a time interval, preferably but not exclusively expressed in the format "start day / month / year - end day / month / year," during which resources may be monopolized for the required order duration. For example, an order period corresponds to the time available to the user for accessing these resources. Resources available outside this order period would therefore be of no use to the user. The order period is a duration greater than or equal to the order duration.
[0030] The term "availability period" refers, in the context of this invention, to a time interval, preferably but not exclusively expressed in the format "start day / month / year - end day / month / year", during which adequate resources (in quantity and quality) are available. Thus, the availability period corresponds to a duration greater than or equal to the order duration.
[0031] The terms "process," "calculate," "determine," "display," "identify," and "compare" refer to any operation executable by a device or processor, unless the context indicates otherwise. In this context, operations relate to actions and / or processes of a data processing module, such as a computer system or electronic computing device, or a computing device, such as a remote server, that manipulates and transforms data represented as physical (electronic) quantities in the memories of the computer system or other information storage, transmission, or display devices. These operations may be based on applications or software.
[0032] The terms or expressions "application," "software," "program code," and "executable code" mean any expression, code, or notation of a set of instructions designed to cause data processing to perform a particular function, either directly or indirectly (e.g., after a conversion operation to another code). Examples of program code may include, but are not limited to, a subroutine, a function, an executable application, source code, object code, a library, and / or any other sequence of instructions designed for execution on a computer system.
[0033] For the purposes of this invention, a "processor" is defined as at least one hardware circuit configured to execute operations according to instructions contained in code. The hardware circuit may be an integrated circuit. Examples of a processor include, but are not limited to, a central processing unit, a graphics processing unit, an application-specific integrated circuit (ASIC), and a programmable logic device.
[0034] For the purposes of this invention, "coupled" means connected, directly or indirectly, to one or more intermediate elements. Two elements may be coupled mechanically, electrically, or linked by a communication channel.
[0035] The term "human-machine interface" as used in this invention refers to any element enabling a human being to communicate with a computer, including, but not limited to, a keyboard and means for displaying information and, optionally, selecting elements displayed on the screen using a mouse or touchpad. Another example is a touchscreen that allows the user to directly select elements touched by a finger or object, and may also display a virtual keyboard.
[0036] Throughout the rest of the description, the same references are used to refer to the same elements.
[0037] The computing power of high-performance computers is constantly increasing, and this increase is accompanied by the emergence of a growing number of data centers equipped with petaflop-class systems. These systems are increasingly used in academia and industry on a daily basis in numerous technical fields such as aeronautics, energy, climatology, and life sciences. Thus, the democratization of such computers necessitates facilitating access to these high-performance machines through portals that provide quick and exclusive access to a set of high-performance computing resources based on specific needs. However, it has become increasingly difficult to quickly identify a user's needs and then to identify and allocate the computing resources required to meet those needs.Also, in conjunction with the allocation issues mentioned previously, the number and diversity of resources available over time represent a real technical challenge for the management and allocation of resources by an operator.
[0038] Thus, the inventors have developed a new decision support process for the allocation of computing resources on a high-performance computing infrastructure that can be implemented by a computer device, within a high-performance computing system comprising a plurality of instances that can be organized by resource class and a human-machine interface.
[0039] There figure 1 schematically illustrates a high-performance computing system according to the invention. The invention thus relates to all high-performance computing systemcomprising a plurality of instances N1, Ni constituting a high-performance computing infrastructure 2 and a computer decision support device 1 for the allocation of computing resources on said high-performance computing infrastructure 2 according to the invention.
[0040] More specifically, the high-performance computing system may include various computing devices configured to communicate with the device 1 according to the invention. Such computing devices may host clients communicating with the device 1 according to the invention and the high-performance computing infrastructure 2. The system according to the invention may, for example, include a computing device 3 available to a user and comprising a client configured to exchange with the device 1 in order to reserve computing resources N1, Ni, and to exchange with the high-performance computing infrastructure 2 in order to submit computing tasks to it.The system according to the invention may also include a computer device 4 available to an operator and comprising a client configured to exchange with the device 1 in order to reserve computing resources N1, Ni and to display a graphical representation G1 of all said instances N1, Ni meeting a resource requirement.
[0041] From another perspective, the invention relates to a Decision support system 1 for the allocation of computing resources on an HPC-type infrastructure. An example of a computer device 1 conforming to the invention is described in particular in connection with la figure 2 . As mentioned previously, a computer device 1 according to the invention may consist of a server. More specifically, the computer device 1 comprises a storage module 11, a communication module 12, a data processing module 13, and a reservation management module 14. The different modules or repositories are distinct on the figure 2However, the invention may provide for various types of arrangement, such as a single module combining all the functions described herein. Similarly, these means may be divided into several electronic boards or assembled on a single electronic board.
[0042] A computer device 1 conforming to the invention may advantageously include a memory module 11 configured to store a plurality of repositories facilitating resource management and allocation. Such repositories are advantageously configurable, meaning they can be accessed for writing, for example to add, delete and / or modify data specific to a given repository, by an operator for example through a human-machine interface 15.
[0043] Advantageously, but not exhaustively, a first reference frame may consist of a keyword repository.Indeed, in order for the device 1 according to the invention to be able to identify and extract relevant information about a user's resource needs, the device may include a repository containing a plurality of keywords. Preferably, each keyword may consist of an alphanumeric value, such as a single word or phrase, describing a hardware or software characteristic of a computer device and, more particularly, of an instance N1, Ni. Thus, the keyword repository, as presented in connection with the figure 3AIt can advantageously include a first KW field containing an alphanumeric value constituting a keyword, such as the keywords: GB, GHz, TB; respectively associated with RAM, processor speed, or hard drive storage capacity, the description of which can be specified in a second "Description" field. Furthermore, the keyword repository can allow the creation of sets of keywords relating to the same object.
[0044] In a particular but non-limiting embodiment, a keyword repository may include one or more alphanumeric values associated with a resource class C1, C2, C3, C4, such as the keywords "B505 Westmere", "B510 Sandybridge", "GPFS storage" respectively associated with Class 1: B505 Westmere type graphics node, Class 2: B510 Sandybridge type compute node and Class 3: GPFS type storage node.
[0045] Advantageously, but not exclusively, a second reference framework could consist of a resource class repository. The resources of an HPC infrastructure can advantageously consist of a plurality of instances, as defined previously, of different hardware and software components. Such a repository facilitates the management of available resources within an HPC infrastructure. For example, an instance might consist of: a so-called "graphics" node, of type "B505 Westmere, 2.67 Gigahertz with 24 Gigabytes of RAM, 128 Gigabytes of local SSD disk (for "solid-state drive", according to Anglo-Saxon terminology) and two nVidia M2070-Q cards"; a so-called "computing" node, of type "B510 SandyBridge, 2.60 Gigahertz with 64 Gigabytes of RAM and 256 Gigabytes of local SSD disk" (for "solid-state drive", according to Anglo-Saxon terminology); a so-called "storage" node, of type "high-performance storage system GPFS" (for "general parallel file system" according to Anglo-Saxon terminology) attached to an EMC VNX5500 storage array.
[0046] The resources of an HPC infrastructure can thus include several hundred instances. To facilitate the management and allocation of such instances, particularly according to a user's needs, the instances can be grouped by resource class: C1, C2, C3, C4. Thus, as illustrated in the figure 3B , The resource class repository advantageously comprises a plurality of resource classes identified by a unique ID-Classes identifier and characterized by associated numerical values of resource descriptions, said resource descriptions being preferably selected from the keywords of the keyword repository.
[0047] As illustrated in the figure 3B It is understandable that, depending on the HPC architecture considered, two classes C1 and C2 may correspond to different "computing" type instances, with the N1 and Ni instances of these two classes potentially differing in hardware characteristics, such as the processor and / or RAM. Similarly, a class C3 may correspond to a visualization node, while a class C4 may correspond to a storage node.
[0048] Grouping instances into resource classes C1, C2, C3, C4 also allows for factoring the description of a large number of identical computing resources, particularly N1, Ni instances with identical hardware and / or software characteristics and in fine facilitates the management of said resources by an operator. Each instance N1, Ni can advantageously belong to only one resource class C1, C2, C3, C4.
[0049] Preferably, but not exclusively, fields in the resource class repository can be associated with a numerical value. For example, such a numerical value could be associated with the speed of a processor, the memory capacity of a hard drive, or more generally, any hardware and / or software characteristic of an N1, Ni, or, more broadly, a resource class instance. Thus, a "graphics" node of type "B505 Westmere, 2.67 GHz with 24 GB of RAM, 128 GB of local SSD (solid-state drive), and two nVidia M2070-Q cards" could be registered in a reservation repository as follows: 2.67 GHz, 24 GB, 128 GB, 2 M2070Q.
[0050] The memory module 11 can advantageously be configured to store a third repository consisting of a reservation repository.The reservation repository allows, in particular, the determination of which instances are available over time (e.g., by time periods). Thus, it includes, specifically, an availability index for each instance and for each time period. Such an availability index can consist of any alphanumeric value, such as, but not limited to, the values "PRERES", "RES", and "DISP", describing respectively a pre-reserved instance, a reserved instance, and an available instance. As an example, such a reservation repository, described in connection with the figure 3C , may advantageously include a plurality of fields, including: an ID C field describing the identifier of a user; an ID field relating to the identification of an instance N1, Ni; a C field describing a resource class C1, C2, C3, C4 of an instance N1, Ni; one or more DT1, DT2, DT3, DT4, DT5 fields describing the PRES, RES or DISP state of each instance by time interval; the time interval being configurable.
[0051] In a particular embodiment, a storage module 11 can advantageously be configured to store a fourth reference consisting of a access repository, to facilitate resource allocation planning.
[0052] Like the repositories described previously, such an access repository can include several fields. The first field advantageously encodes a user identifier, and the second field encodes data relating to the user's description, such as, but not limited to, a name associated with the user identifier or the contact details of the headquarters of the institution to which the resources are allocated. The access repository can also include a field containing a priority index for each user. This priority index is assigned to users in order to manage resource allocation conflicts.
[0053] As illustrated in the figure 2 A computer device 1 may include a communication module 12.The communication module 12 also allows data to be transmitted over at least one communication network and can include wired or wireless communication. Specifically, the communication module 12 allows, for example, the receiving and transmission of information to remote systems such as tablets, phones, computers, or servers. These data exchanges can take the form of sending and receiving files.
[0054] In particular, the communication module 12 enables communication between the computing device 1 and third-party computing devices such as a computing device 3 usable by a user of the high-performance computing infrastructure 2 and a computing device 4 usable by an operator of the high-performance computing infrastructure 2. Thus, the communication module 12 is advantageously configured to receive a request message (RM). The request message can be issued by an email client, a web client (e.g., using HTTP), or any other client allowing a user or operator to send a request message containing data on an HPC resource requirement. As will be discussed later, the communication module 12 can also be configured to issue an acknowledgment message (CM). The client is generally any hardware and / or software capable of accessing the device 1 according to the invention.
[0055] In a particular but not limiting embodiment, a computer device 1 may also include a data processing module 13, configured to identify one or more data points in the MR request message. Thanks to this, it can identify, in a formatted or unformatted request message, and extract information necessary to characterize a resource requirement.
[0056] Data processing module 13 is thus configured to extract all or part of the data present in the MR request message. It is advantageously configured to identify an order duration D within the MR request message. This order duration D corresponds to the reservation duration that a user deems necessary to meet their resource needs.
[0057] Furthermore, the data processing module 13 is advantageously configured to identify in the MR query message one or more keywords corresponding to keywords KW1, KWn referenced in a keyword repository. The data processing module 13 is further configured to, when a keyword referenced KW1, KWn has been identified, identify one or more command values, each of said command values corresponding to a numeric value associated with a referenced keyword identified KW1, KWn.
[0058] In addition, the data processing module 13 can be configured to calculate, from the order values and from the C1, C2, C3, C4 class data of the resource referenced in the resource class repository, at least one required VI instance value n corresponding to a numeric value associated with a referenced resource class and reflecting an amount of computing resources required to meet the resource requirement.
[0059] The computer system 1 may also include a Reservation management module 14, configured to identify a set of instances per resource class that meet the resource requirement. In particular, it can be configured to compare one or more required VI n instance values to available N1, Ni instance values for a duration at least equal to the order duration D. As discussed, the available N1, Ni instance values are taken from the reservation repository.
[0060] Such a computer system is advantageously arranged to communicate via a human-machine interface (HMI) through which a user or operator can interact, such as, for example, via a wired communication network or a wireless network. Thus, the HMI can implement a client application, such as a web browser like Firefox®, Fennec®, Opera®, Opera Mobile®, Internet Explorer®, or Google Chrome®, or an FTP browser like FileZilla®, allowing the sending of instructions, for example, via a confirmation message (CM), and / or the reception of all types of messages, particularly resource reservation messages, such as, for example, a pre-confirmation message (PCM), a confirmation message (MCC), or a request message (RM).
[0061] From another perspective,the invention relates to a 100% decision support process for allocating computing resources on a high-performance computing infrastructure enabling the identification of a set of N1, Ni instances meeting a resource need.
[0062] As presented in la figure 4 , A decision support method according to the invention includes a optional step 110 of setting up a resource class repository, a reservation repository and / or a keyword repository of a computer device 1 according to the invention. This step can be performed by an operator through a human-machine interface 15.
[0063] This configuration step can allow a computer device 1 to adapt said process to the diversity of instances N1, Ni and / or resource classes C1, C2, C3, C4 by allowing the recording and / or modification of said repositories directly in the storage module 11 of a computer device 1.
[0064] As presented in figure 4 , such a process includes a reception stage 120of an MR request message containing data relating to a resource requirement over a given period. This step can advantageously be implemented by a communication module 12 as described previously.
[0065] Advantageously, an MR request message can be issued by a remote third-party entity 3 to the computer device 1, in particular through a web interface dedicated to a computer device 1, or by sending an MR request message in any format readable by said computer device 1, such as, by way of non-limiting examples, http, SSH or FTP format.
[0066] As presented in figure 4 A 100% decision support method for allocating computing resources on an HPC infrastructure according to the invention allows the analysis of an MR request message through, in particular of an identification step 130in said MR request message of order duration D, one or more keywords referenced KW1, KWn in a keyword repository, and one or more order values. This identification step 130 can advantageously be implemented by a data processing module 13 as described above.
[0067] Order values correspond to a numerical value associated with an identified referenced keyword and advantageously allow for the formal quantification of resource requirements. This step thus enables the retrieval of a resource requirement previously formulated through a request message (RM). Indeed, the analysis of this RM allows for the identification of the order duration (D) related to the requirement. Furthermore, the identification of keywords (KW1, KWn) referenced in the keyword repository and a numerical value associated with each of these identified keywords allows for the quantification of resource requirements in the form of order values. The identification of these order values can advantageously consist of implementing a text analysis algorithm of the "parsing" type (according to Anglo-Saxon terminology), or any other algorithm that allows for the identification of a referenced keyword associated with a corresponding numerical value.
[0068] A decision support method for allocating computing resources on an HPC infrastructure according to the invention further comprises a calculation step 140 of one or more required VI n instance values. This calculation step 140 relies in particular on the previously calculated order values and the reservation reference system. This step can advantageously be implemented by a data processing module 13 as described above.
[0069] During this calculation step 140, the data processing module 13 can produce one or more VI instance values n, each instance value corresponding to a numeric value associated with a resource class referenced in the resource class repository. This initially allows the identification of one or more resource classes C1, C2, C3, C4 that meet the resource requirement previously identified in the MR request message. Indeed, as detailed earlier, a resource requirement can be computational and / or graphical in nature, thus calling upon entirely different resource classes C1, C2, C3, C4. This allows in fine to optimize resource allocation by an operator, in particular by allowing them to directly identify one or more resource classes C1, C2, C3, C4 that meet a resource need, as well as the quantities of associated instances.
[0070] In addition, this step makes it possible to obtain one or more numerical values corresponding to a quantity of computing resources required to meet the resource need, each of said numerical values being associated with a class of resources referenced in the resource class repository.
[0071] A decision support method for allocating computing resources on an HPC infrastructure according to the invention further comprises a comparison step 150This allows for the identification of a set of instances per resource class (C1, C2, C3, C4) that meet the resource requirement. Furthermore, it allows for the identification of an availability period. This step notably involves comparing one or more previously calculated required instance values (VI n) with available instance values, according to the reservation repository, over a period at least equal to the order duration (D). This comparison step (150) can advantageously be implemented by a reservation management module (14) as described previously.
[0072] This step advantageously allows, starting from one or more previously calculated required instance values (VI n), the identification of all available N1, Ni instances of a given resource class (C1, C2, C3, C4) capable of meeting a resource requirement for a duration at least equal to the previously identified order duration (D). Thus, the process identifies a set of instances belonging to a resource class that meets the requirement. Furthermore, it can generate a plurality of N1, Ni instance identifiers that meet the resource requirement. Therefore, the process determines whether the high-performance computing infrastructure is capable of meeting the requirement and, if so, with which resource class and in what quantity.
[0073] A decision support method for allocating computing resources on an HPC infrastructure according to the invention may also include an identification step of 160 alternative instances.This step can lead to the identification of a set of instances that do not correspond to the required instance values as identified from the MR request message, but which consist of instance proposals that provide an equivalent solution, or offer equivalent counter-proposals to the user's initial request, and that will allow them to complete the calculation campaign within the allotted time. To this end, this alternative instance identification step (160) may, for example, involve selecting one or more combinations of alternative resource classes (C1, C2, C3, C4) and alternative command durations that provide a service equivalent to the resource requirement.
[0074] Indeed, as detailed previously, two resource classes, C1 and C2, in an HPC infrastructure can differ in hardware characteristics, such as the processor or RAM, defining the computing power of each of these two resource classes. The unavailability of one of the two resource classes, C1, for a given period does not necessarily mean that none of the potentially available resources can be mobilized to meet the previously identified resource requirement. This allows in fine to optimize resource allocation by an operator, in particular by allowing them to select an alternative C2 resource class to meet a resource need. In the case of an alternative solution, the alternative order duration may differ from the identified order duration.
[0075] The identification step is generally followed by a step comparing alternative resource classes and their required alternative instance values to the resource classes of available instances in the reservation repository.
[0076] There figure 5 represents a particular embodiment of a method 100 according to the invention, intended to provide decision support for the allocation of computing resources on an HPC infrastructure to an operator.
[0077] Thus, a method 100 according to the invention includes a step 120 of receiving a request message MR issued by a remote third party entity 3 to a communication module 12 of a computer device 1.
[0078] The MR request message can be an unformatted message generated by a user, containing, for example, the following text: "Hello [...] We would like to have 10 SandyBridge B510 compute nodes, those with 64 GB of RAM [...] we expect to need to use them for about 15 days between June 1st and July 15th"Alternatively, the message can also consist of a structured message generated by a user or operator via a graphical booking interface, containing, for example, the following text: <duration> 15 < / duration> ; <periodb>01 / 06 / 2018< / periodB> ; <periode> 15 / 07 / 2018 < / periode> ;<ClassA_type> B510< / ClassA_type > ;<ClassA_num> 10< / ClassA_num >
[0079] Thus, these examples of query message content illustrate the presence in the query message of keywords: B510, SandyBridge, GB, RAM, days, order duration: 15 and order values: 10.
[0080] Upon receipt 120 of such an MR request message, an identification step 130 is implemented to identify one or more data points contained within the MR request message, such as the identification 131 of an order duration D and the identification 132 of one or more keywords KW n, thus defining a resource requirement for a specific duration. A value associated with each of the identified keywords KW n is retrieved during the identification step 132; each value associated with each keyword constitutes an order value associated with the previously received MR request message.
[0081] The identification step 130 is followed by a calculation step 140 by the data processing module of a computer device 1, in order to produce one or more instance values VI n, each of said instance values describing a numerical value associated with a resource class C1, C2, C3, C4 referenced in the resource class repository, thus indicating a number of instances N1, Ni for each resource class C1, C2, C3, C4 required to meet the resource need previously identified in the request message MR. The instance values VI n thus calculated are then stored in a memory module 11 of a computer device 1 during a storage step 141. In addition, the process may include, during this step, associating a command duration D with each of the instance values, as shown in Table 1 below. [Tables 1] ID-Classes VI D C1 10 15
[0082] Each of the instance values VI n is then compared, in a comparison step 150, from the reservation repository, to the available instance values. If the reservation management module 13 identifies (OK) one or more available instances for each resource class C1, C2, C3, C4 that meet the resource requirement, these available instance values for a resource class C1, C2, C3, C4 are delivered together with the required instance values VI n in a step 170 through a graphical representation G1. If no instance N1, Ni by resource class C1, C2, C3, C4 is identified (NOK) as being available to meet the resource requirement during comparison step 150, said required instance values VI n are delivered jointly with said unavailable instance values for a resource class C1, C2, C3, C4 during a step 170 through a graphical representation G1.
[0083] In the event that no instance N1, Ni by resource class C1, C2, C3, C4 is identified (NOK) as being available to meet the resource requirement during comparison step 150, process 100 includes an identification step 160 of alternative instances VI n'.
[0084] This step 160 consists in particular of selecting 161 one or more instances N1, Ni of an alternative resource class C1, C2, C3, C4, that is to say, different from the one previously identified 130 and calculated 140, and of one or more durations at least equivalent to the previously identified order duration D, and comparing 162 the said value(s) of alternative instance VI n' to the resource classes of the instances available in the reservation repository. The identification step 160 of alternative instances may, for example, include matrix calculations based on order values and order durations against the values in the resource class repository. Thus, it is possible to determine combinations of resource classes that meet the need.Preferably, the possible matrix definitions are compared with the potential order period to eliminate definitions resulting in an alternative order duration longer than the order period. In other words, definitions resulting in an availability period not entirely included within the order period are eliminated. The possible matrix definitions are then compared with the reservation repository, and the reservation management module eliminates incompatible definitions. During this step, the alternative instance values are compared to the available instance values for the relevant resource classes. If a sufficient number of instances are available, the definition is stored. Otherwise, another definition is randomly pre-selected from the remaining definitions, and the reservation management module repeats the process.
[0085] If no alternative instance is identified (NOK), an alert 163 is issued to the operator to inform them of the unavailability of the requested resources.
[0086] In the case where the comparison step 162 of the alternative instance values VI n' allows (OK) to identify one or more alternative resource classes C1, C2, C3, C4 available, for one or more durations at least equivalent to the previously identified order duration D, meeting the previously identified resource requirement, said alternative instance values VI n' are delivered jointly with the alternative resource classes C1, C2, C3, C4 during a step 170 through a graphical representation G1.
[0087] An example of a graphical representation G1 produced at the end of step 170 is described in connection with the figure 6 . In the example shown, a request message was processed and resulted in the identification of a required VI 1 instance value corresponding to the number of instances belonging to resource class C1 needed to meet the resource requirement. However, as shown in the figure 6 There are not enough instances available to meet the need. figure 6 This also illustrates a value of 2 required instances, corresponding to the number of instances belonging to resource class C2 needed to meet the resource requirement. We can thus see that instances are available to meet the resource requirement related to resource class C2 for a command duration D. Conversely, no instances appear to be available to meet the resource requirement related to resource class C1 for a command duration D. Indeed, resource availability for each resource class C1 and C2 is indicated by the area covered by the dotted line. This allows an operator to directly see which resource classes C1 and C2 are unavailable. Let's assume that resource classes C1 and C2 represent two "computing" type resource classes whose instances have different hardware characteristics.The operator thus has additional information indicating that one or more instances of resource class C2 are available for the required command duration D. The operator can directly see that the alternative resource class C2, with an alternative instance value VI 2, is offered in place of the unavailable resource class 1 to meet the resource requirement. The representation quickly shows the operator that instances of class C2 could meet the resource requirements of the request message.
[0088] The operator can thus choose which resources to allocate to meet the resource requirement after visualizing the available resources. The process includes a step 180 of generating an MPC pre-booking message containing an identifier for each instance N1, Ni identified as meeting the resource requirement and previously allocated by the operator. This pre-booking message is then sent to the IT device 1. In a particular embodiment, the operator can, depending on the resource requirement and especially after displaying a graphical representation G1, enter in a dedicated field of the MPC pre-booking message whether the booking is certain, which corresponds to an availability index "RES" entered in a field of the booking repository, or whether the booking is uncertain, which corresponds to an availability index "PRERES" entered in a field of the booking repository.
[0089] Following step 180 of generating an MPC pre-booking message, process 100 includes a step 190 of modifying the booking repository after receiving 191 of said MPC pre-booking message from the computer system. Step 190 consists of entering an availability index for the N1, Ni instances identified in the pre-booking message into the corresponding field of the booking repository. This modification is followed by a step 192 of comparing the availability index of the N1, Ni instances thus modified in the booking repository.If for an order duration D, one or more instances N1, Ni had (NOK) in the corresponding field an availability index reflecting a reservation or a pre-reservation, that is to say that these instances have already been allocated by the operator, then the comparison step 192 is followed by a generation and an emission 193 of an alert message to the operator indicating that an error in the allocation of resource instances C1, C2, C3, C4 has been committed. On the other hand, if the comparison step 192 indicates that the instance(s) N1, Ni do not have (OK), in the corresponding field, an availability index reflecting a reservation or a pre-reservation, that is to say that these instances have not been allocated by the operator and are therefore available, then the comparison step 192 is followed by a generation and an emission 194 of a confirmation message indicating that the instances N1, Ni have been allocated.< / periodb>
Claims
1. Method (100) for aiding decision-making for allocating computing means in a high-performance computing infrastructure (2), allowing a set of instances (N1, Ni) meeting a resource requirement to be identified, said method being implemented by a computer device (1) comprising a communication module (12), a data processing module (13), a reservation management module (14) and a storage module (11) configured to store a resource-class repository, a reservation repository and a keyword repository, said method comprising the following steps: - Receiving (120), by means of the communication module (12), a request message (MR) containing data relating to a resource requirement for a given duration; - Identifying (130), by means of the data processing module (13), in the request message (MR): • an order duration (D), • one or more keywords (KW1,KWn) referenced in the keyword repository, and • one or more order values, each of said order values corresponding to a numerical value associated with an identified referenced keyword (KW1,KWn); - Computing (140), from the order values, by means of the data processing module (13), one or more required instance values (VIn), each corresponding to a numerical value associated with a class (C1, C2, C3, C4) of resources referenced in the resource-class repository, said numerical value corresponding to a quantity of computing means required to meet the resource requirement; and - Comparing (150), from the reservation repository, by means of the reservation management module (14), one or more computed required instance values (VIn) with instance values available over a duration that is at least equal to the order duration (D), so as to identify a set of instances per resource class (C1, C2, C3, C4) that meets the resource requirement, and an availability period; and - Indicating to an operator the resource availability for each resource class that meets the resource requirement; and - Generating a pre-reservation message containing an identifier for each instance identified as meeting the resource requirement previously allocated by the operator.
2. Method according to claim 1, characterized in that each instance (N1, Ni) is associated with a unique identifier and in that the method further comprises a step of generating (180) a pre-reservation message (MPC) containing the unique identifiers of the instances identified as meeting the resource requirement.
3. Method according to one of claims 1 or 2, characterized in that it comprises a step of generating (170) a graphical representation (G1) of one or more required instance values (VIn), each associated with a class (C1, C2, C3, C4) of resources as a function of time (T).
4. Method according to any one of the preceding claims, characterized in that the request message (MR) contains data relating to a period of time relative to the resource requirement, and in that the identification step comprises identifying in the message an order time period corresponding to the period of time during which the resource requirement is requested.
5. Method according to any one of the preceding claims, characterized in that it comprises a step of modifying (190), by means of a reservation management module (14), the reservation repository following the reception (191), by means of the communication module (12), of a reservation confirmation message (MC) for the set of suitable instances (N1, Ni).
6. Method according to claim 5, characterized in that the reservation confirmation message (MC) contains an availability index associated with each of the instances (N1, Ni), said availability index taking a value selected from at least three values, preferably from three values.
7. Method according to any one of the preceding claims, characterized in that the reservation management module (14) is configured to generate (193) an alert (MA) when the reservation repository contains two availability index values for the same instance (N1, Ni) over the same period.
8. Method according to any one of the preceding claims, characterized in that it further comprises, when the comparison step (150) does not make it possible to identify a set of instances (N1, Ni) that meets the resource requirement, a step of identifying (160) alternative instances (VIn'), said step (160) comprising selecting (161) one or more combinations of classes (C1, C2, C3, C4) of alternative resources and reservation durations that allow a service to be provided that is equivalent to the resource requirement, followed by a step of comparing (162) alternative resource classes (C1, C2, C3, C4) and their required alternative instance values (VIn') with the resource classes (C1, C2, C3, C4) of the available instances (N1, Ni) of the reservation repository.
9. Computer device (1) for aiding decision-making for allocating computing means in a high-performance computing infrastructure (2), said computer device comprising a storage module (11) configured to store a resource-class repository, a reservation repository and a keyword repository, a communication module (12), a data processing module (13), a reservation management module (14) and a human-machine interface module (15), and characterized in that: - the communication module (12) is configured to receive a request message (MR) containing data relating to a resource requirement for a given duration; - the data processing module (13) is configured to identify in the request message (MR): an order duration (D), one or more keywords (KW1,KWn) referenced in the keyword repository, and one or more order values, each of said order values corresponding to a numerical value associated with an identified referenced keyword (KW1,KWn); - the data processing module (13) is further configured to compute, from the order values, one or more required instance values (VIn), each corresponding to a numerical value associated with a resource class (C1, C2, C3, C4) referenced in the resource-class repository, said numerical value corresponding to a quantity of computing means required to meet the resource requirement; and - the reservation management module (14) is configured to compare, from the reservation repository, the one or more calculated required instance values (VIn) with instance values available over a duration that is at least equal to the order duration (D), so as to identify a set of instances per resource class (C1, C2, C3, C4) that meets the resource requirement; and - the human-machine interface module is configured to indicate the resource availability for each resource class that meets the resource requirement; and - the human-machine interface module is also configured to generate a pre-reservation message containing an identifier for each instance identified as meeting the resource requirement previously allocated by the operator.
10. High-performance computing system comprising a high-performance computing infrastructure (2) and a computer device (1) according to claim 9, for aiding decision-making for allocating computing resources in said high-performance computing infrastructure (2).
11. Computer program product comprising one or more instructions which can be interpreted or executed by a data processing module (13) of a computer device (1) according to claim 9, characterized in that the interpretation or execution of said instructions by said data processing module (13) causes the implementation of a method (100) according to any one of claims 1 to 8.