CN112214305A - Method for distributing I/O forwarding nodes for operation under I/O forwarding architecture - Google Patents

Method for distributing I/O forwarding nodes for operation under I/O forwarding architecture Download PDF

Info

Publication number
CN112214305A
CN112214305A CN201910624766.XA CN201910624766A CN112214305A CN 112214305 A CN112214305 A CN 112214305A CN 201910624766 A CN201910624766 A CN 201910624766A CN 112214305 A CN112214305 A CN 112214305A
Authority
CN
China
Prior art keywords
job
forwarding
default
forwarding node
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910624766.XA
Other languages
Chinese (zh)
Inventor
薛巍
季旭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN201910624766.XA priority Critical patent/CN112214305A/en
Publication of CN112214305A publication Critical patent/CN112214305A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals

Abstract

The invention provides a method for distributing I/O forwarding nodes for operation under an I/O forwarding architecture, which comprises the following steps: step 1) obtaining the number of default I/O forwarding nodes of a job and the threshold value of the number of I/O forwarding nodes of the job; the default I/O forwarding node of the job is an I/O forwarding node distributed for the job by a job scheduling device during job scheduling; step 2) comparing the number of the default I/O forwarding nodes of the job with the I/O forwarding node number threshold of the job to determine whether to allocate a standby I/O forwarding node as an actual I/O forwarding node of the job. The invention dynamically allocates the I/O forwarding nodes for the operation, effectively avoids the I/O performance interference of the operation granularity on the I/O forwarding nodes, and improves the utilization rate of the I/O forwarding nodes and the I/O performance of the operation.

Description

Method for distributing I/O forwarding nodes for operation under I/O forwarding architecture
Technical Field
The invention relates to the technical field of data processing and storage, in particular to a method for distributing I/O forwarding nodes for operation under an I/O forwarding architecture.
Background
With the development of high performance computing, there is an increasing demand for adaptive, application-aware parallel I/O services. Currently, an I/O Forwarding (I/O Forwarding) architecture that adds an additional Forwarding layer between a compute node and a storage node is widely applied to large-scale computing systems to solve the scalability problem in high-performance computing. Wherein the forwarding layer comprises a plurality of I/O forwarding nodes, each I/O forwarding node being responsible for forwarding I/O requests of the compute nodes to the storage nodes, thereby helping the compute nodes to decouple I/O operations. The I/O forwarding architecture reduces the performance gap between the CPU and the I/O components, makes the I/O resource configuration more flexible, improves the I/O performance which can be felt by the user, and reduces the data volume of the back end.
The I/O forwarding architecture is popular in high-performance computing technology because of its many advantages, including the application of the I/O forwarding architecture to nearly half of the current top-most supercomputers. However, currently, most of these supercomputers employ a static forwarding mechanism, i.e., forwarding of I/O requests is performed according to I/O forwarding nodes assigned by default by the job scheduling device. This static forwarding mechanism has the following problems: when default distributed I/O forwarding nodes meet the I/O requirements of the application programs, most of the I/O forwarding nodes in the forwarding layer are often insufficient in utilization rate; in addition, the I/O forwarding nodes are shared by jobs of different sizes, and jobs with conflicting I/O requirements may cause severe performance interference to each other, resulting in low I/O performance of the application.
Disclosure of Invention
To solve the above problems in the prior art, according to an embodiment of the present invention, a method for allocating I/O forwarding nodes for jobs under an I/O forwarding architecture is provided, including:
step 1) obtaining the number of default I/O forwarding nodes of a job and the threshold value of the number of I/O forwarding nodes of the job; the default I/O forwarding node of the job is an I/O forwarding node distributed for the job by a job scheduling device during job scheduling;
step 2) comparing the number of the default I/O forwarding nodes of the job with the I/O forwarding node number threshold of the job to determine whether to allocate a standby I/O forwarding node as an actual I/O forwarding node of the job.
In the above method, step 2) includes: comparing the number of default I/O forwarding nodes of the job with the I/O forwarding node number threshold of the job; if the number of the default I/O forwarding nodes of the operation is smaller than the threshold value of the number of the I/O forwarding nodes of the operation, allocating standby I/O forwarding nodes as actual I/O forwarding nodes of the operation; otherwise, judging whether the default I/O forwarding node of the operation has I/O performance interference of operation level, if so, allocating a standby I/O forwarding node as the actual I/O forwarding node of the operation, and if not, using the default I/O forwarding node of the operation as the actual I/O forwarding node of the operation.
In the above method, the I/O forwarding node number threshold of the job is calculated according to the following formula:
Figure BDA0002126722520000021
wherein i represents the ith job; TH _ nodeiAn I/O forwarding node number threshold value representing an ith job; NUM _ ioiRepresenting the number of I/O processes of the ith job executed last time; alpha represents an expansion coefficient which is the quotient of the peak I/O bandwidth of the I/O forwarding node and the peak I/O bandwidth of the compute node.
In the above method, in step 2), the determining whether the default I/O forwarding node of the job has I/O performance interference at a job level includes: for each I/O forwarding node in the default I/O forwarding nodes of the jobs, acquiring all jobs of which the default I/O forwarding nodes include the I/O forwarding node; if the average aggregation bandwidth of the last execution time of a job in all the obtained jobs is larger than a preset threshold value, the default I/O forwarding node of the job has I/O performance interference of the job level.
In the above method, in step 2), the determining whether the default I/O forwarding node of the job has I/O performance interference at a job level includes: for each I/O forwarding node in the default I/O forwarding nodes of the jobs, acquiring all jobs of which the default I/O forwarding nodes include the I/O forwarding node; if there is an average aggregate IOPS of all the obtained jobs for which a job was executed last time that is greater than a predetermined threshold, then the default I/O forwarding node for the job has job-level I/O performance interference.
In the above method, in step 2), the determining whether the default I/O forwarding node of the job has I/O performance interference at a job level includes: for each I/O forwarding node in the default I/O forwarding nodes of the jobs, acquiring all jobs of which the default I/O forwarding nodes include the I/O forwarding node; if the average metadata waiting queue length of a job executed last time is larger than a preset threshold value in all the obtained jobs, the default I/O forwarding node of the job has I/O performance interference of a job level.
In the above method, determining whether there is an I/O performance interference at a job level in the default I/O forwarding node of the job includes: for each I/O forwarding node in the default I/O forwarding nodes of the jobs, acquiring all jobs of which the default I/O forwarding nodes include the I/O forwarding node; and if one job exists in all the obtained jobs, the I/O mode of the job is the N-1 mode, and the default I/O forwarding node of the job has I/O performance interference of the job level.
In the above method, allocating a standby I/O forwarding node as the actual I/O forwarding node of the job includes: calculating a larger value M of the number of default I/O forwarding nodes of the job and the I/O forwarding node number threshold of the job; comparing the number of the standby I/O forwarding nodes in the standby I/O forwarding node pool with the larger value M; if the number of the standby I/O forwarding nodes in the standby I/O forwarding node pool is greater than or equal to the larger value M, allocating M standby I/O forwarding nodes from the standby I/O forwarding node pool to the job as actual I/O forwarding nodes of the job; otherwise, all the standby I/O forwarding nodes in the standby I/O forwarding node pool are allocated to the job to serve as the actual I/O forwarding nodes of the job.
In the above method, the standby I/O forwarding node is an exclusive I/O forwarding node.
The above method may further comprise: I/O information is obtained for the last time the job was executed.
There is also provided, in accordance with an embodiment of the present invention, an electronic device, including a processor and a memory, where the memory stores instructions that, when executed by the processor, cause the electronic device to implement a method of allocating I/O forwarding nodes for jobs under the above-described I/O forwarding architecture.
The embodiment of the invention has the following beneficial effects:
compared with the existing static forwarding mechanism, the invention realizes the dynamic allocation of the I/O forwarding nodes for the operation. If the number of default I/O forwarding nodes distributed for the job is less than the optimal usage amount of the I/O forwarding nodes calculated according to the historical I/O information of the job, distributing standby I/O forwarding nodes meeting the optimal usage amount of the I/O forwarding nodes for the job as much as possible; in addition, even if the number of the default I/O forwarding nodes of the job meets (i.e., is greater than or equal to) the optimal usage of the I/O forwarding nodes of the job, it is further determined whether I/O performance interference exists in the default I/O forwarding nodes of the job, and if so, a standby I/O forwarding node is allocated for the job. The invention can effectively avoid I/O performance interference of operation granularity on the I/O forwarding node, improve the utilization rate of the I/O forwarding node and improve the I/O performance of operation.
Drawings
Example embodiments will be described in detail below with reference to the attached drawings, which are intended to depict example embodiments and should not be construed as limiting the intended scope of the claims. The drawings are not to be considered as drawn to scale unless explicitly indicated.
FIG. 1 illustrates a flow diagram of a method for assigning I/O forwarding nodes for a job under an I/O forwarding architecture, according to one embodiment of the invention;
FIG. 2 illustrates a flow diagram of a method of calculating optimal usage of I/O forwarding nodes for a job, according to one embodiment of the invention;
fig. 3 shows a flow diagram of a method for determining whether an I/O forwarding node has job-level I/O performance interference, according to one embodiment of the invention.
Detailed Description
In order to make the objects, technical solutions and advantages of the present invention more apparent, the present invention will be further described in detail by embodiments with reference to the accompanying drawings. It should be understood that the specific embodiments described herein are merely illustrative of the invention and are not intended to limit the invention.
According to one embodiment of the invention, a method for allocating I/O forwarding nodes for jobs under an I/O forwarding architecture is provided, which can be used for dynamically allocating I/O forwarding resources according to job granularity in a supercomputer adopting the I/O forwarding architecture.
Fig. 1 schematically shows a flowchart of a method for allocating I/O forwarding nodes for a job under an I/O forwarding architecture according to an embodiment of the present invention, and hereinafter, referring to fig. 1, various steps of the method will be described as an example for allocating I/O forwarding nodes for job a:
s1, obtaining a default I/O forwarding node distributed for the job A during job scheduling.
As will be understood by those skilled in the art, the main function of job scheduling is to examine whether the system can meet the resource requirements of user jobs according to the information in the job control block, wherein, some jobs are selected from a backing queue stored outside according to a certain algorithm and are called into a memory, and processes are created for the jobs, and necessary resources are allocated; subsequently, the newly created process is inserted into the ready queue to be executed. In a super computer applying an I/O forwarding architecture, a job scheduling device allocates one or more I/O forwarding nodes for a job by using an algorithm when performing job scheduling, wherein the one or more I/O forwarding nodes are called as default I/O forwarding nodes of the job.
And S2, comparing the number of default I/O forwarding nodes of the job A with the optimal usage amount (or called the threshold value of the number of the I/O forwarding nodes) of the I/O forwarding nodes of the job A.
As can be seen from step S1, the number of default I/O forwarding nodes for job a, that is, the number of I/O forwarding nodes assigned to job a by the job scheduling device when performing job scheduling, is determined. The optimal usage of the I/O forwarding node of job a refers to: job a is the number of I/O forwarding nodes used in achieving the best I/O performance without interference. Generally speaking, if the number of actual I/O forwarding nodes allocated for job A is greater than or equal to the I/O forwarding node optimal usage for job A, then during execution of job A, its I/O performance is better. The optimal usage amount of the I/O forwarding node for each job may be different, and fig. 2 shows a flowchart of a method for calculating the optimal usage amount of the I/O forwarding node for a job according to an embodiment of the present invention, and referring to fig. 2, the method includes the following steps:
the method comprises the steps of obtaining I/O information of a job executed last time (in the super computer applying the I/O forwarding architecture).
Wherein the I/O information includes the number of I/O processes when the job was last executed. Those skilled in the art will appreciate that various existing I/O performance monitoring tools may be employed to monitor I/O information for job granularity in the supercomputer to which the I/O forwarding architecture is applied, including but not limited to: beacon, Darshan I/O performance monitoring tools, and the like.
And secondly, acquiring the peak I/O bandwidth of the I/O forwarding node and the peak I/O bandwidth of the computing node in the supercomputer (namely, the supercomputer applying the I/O forwarding architecture), and computing the expansion coefficient.
The expansion coefficient represents the maximum number of computing nodes which can be supported by one I/O forwarding node in the super computer to which the I/O forwarding architecture is applied. Specifically, the expansion coefficient is obtained by dividing the peak I/O bandwidth of the I/O forwarding node by the peak I/O bandwidth of the computing node, in other words, the expansion coefficient is a quotient of the peak I/O bandwidth of the I/O forwarding node and the peak I/O bandwidth of the computing node.
Thirdly, calculating the optimal usage amount of the I/O forwarding nodes of the operation according to the data obtained in the first step and the second step.
According to one embodiment of the invention, the calculation formula is as follows:
Figure BDA0002126722520000051
wherein i represents the ith job; TH _ nodeiThe optimal usage amount of the I/O forwarding node of the ith job is represented; NUM _ ioiRepresenting the number of I/O processes of the ith job executed in the super computer which applies the I/O forwarding architecture last time; α represents an expansion coefficient.
Step S3. if the number of the default I/O forwarding nodes of the job A is less than the optimal usage amount of the I/O forwarding nodes of the job A, executing step S5, otherwise executing step S4.
S4, judging whether the default I/O forwarding node of the job A has I/O performance interference of the job level (namely, whether one default I/O forwarding node of the job A has I/O performance interference of the job level); if so, performing step S5; if not, the default I/O forwarding node for job A is assigned to job A as the actual I/O forwarding node for job A, and the process of assigning I/O forwarding nodes for job A ends so far.
Wherein the existence of the I/O performance interference at the job level by one I/O forwarding node (e.g., a default I/O forwarding node of job A) means that the I/O performance interference exists among a plurality of jobs of which the default I/O forwarding node comprises the I/O forwarding node. In other words, when the job scheduling device performs job scheduling, the I/O forwarding node is allocated to some jobs as a default I/O forwarding node, and I/O performance interference exists between the jobs.
FIG. 3 is a flow chart of a method for determining whether I/O performance interference exists at a job level for an I/O forwarding Node according to an embodiment of the present inventioniFor example, the method comprises the following steps:
A. obtaining default I/O forwarding nodes includes NodeiAll of the operations of (1).
As described above, when the job scheduling device performs job scheduling, default I/O forwarding nodes are allocated to a plurality of jobs, and if one default I/O forwarding Node of a job is a NodeiIf yes, it indicates that the default I/O forwarding Node of the job includes Nodei
B. It is determined whether there is a high bandwidth job among all the jobs obtained in step a. If high bandwidth operation exists, the I/O forwarding NodeiI/O performance interference of an operation level exists, and the judgment process is ended; otherwise, executing step C.
Wherein, according to an embodiment of the present invention, determining whether a job is a high bandwidth job comprises:
get the average aggregated bandwidth of the last time the job was executed (in the supercomputer employing I/O forwarding architecture). For example, the average aggregate bandwidth of the last execution of the job is obtained by the I/O performance monitoring tool.
The aggregate bandwidth refers to the total amount of I/O operations performed by a job in a unit time at a certain time during the I/O operations (i.e., the amount of I/O operation data of all processes of the job), and the unit of the aggregate bandwidth is GB/S. The average aggregate bandwidth of a job refers to the average value of the aggregate bandwidth of the job during the I/O operation.
If the average aggregated bandwidth of the job is greater than a predetermined threshold, then the job is determined to be a high bandwidth job.
C. It is determined whether there is a high IOPS (i.e., read/write times per second) job among all jobs obtained in step a. If high IOPS operation exists, the I/O forwarding NodeiI/O performance interference of an operation level exists, and the judgment process is ended; otherwise, executing step D.
In one embodiment, determining whether a job is a high IOPS job includes:
get the average aggregate IOPS of the last time the job was executed (in the supercomputer employing I/O forwarding architecture). For example, the average aggregate IOPS for the last time the job was executed is obtained by the I/O performance monitoring tool.
② if the average aggregate IOPS for the job is greater than a predetermined threshold, then the job is determined to be a high IOPS job.
D. It is determined whether there is a metadata access-intensive job among all the jobs obtained in step a. If metadata access intensive operation exists, the I/O forwarding NodeiI/O performance interference of an operation level exists, and the judgment process is ended; otherwise, executing step E.
According to one embodiment of the invention, a metadata wait queue is used as a criterion to determine whether a job is a metadata access intensive job because metadata operations can occupy thread resources on the I/O forwarding nodes, thereby interfering with normal data operation requests.
As will be appreciated by those skilled in the art, a metadata wait queue generally refers to a queue dedicated to holding metadata operation requests, with each job having a corresponding metadata wait queue on the I/O forwarding node for which it is actually assigned. In some cases, there may be no queue on the I/O forwarding node dedicated to storing metadata operation requests, where the metadata wait queue refers to an I/O request queue (in which data operation requests and metadata operation requests are stored), and where the metadata wait queue length refers to the number of metadata operation requests in the I/O request queue.
In one embodiment, determining whether a job is a metadata access intensive job comprises:
obtaining the average metadata waiting queue length of the operation executed last time (in the super computer adopting the I/O forwarding architecture).
The method comprises the steps of firstly obtaining the length of a metadata waiting queue on all I/O forwarding nodes actually distributed for the job when the job is executed last time, and then taking the average value of the lengths of the metadata waiting queues as the average length of the metadata waiting queue of the job. According to one embodiment of the invention, the average metadata wait queue length of the last execution of the job may be obtained by the I/O performance monitoring tool.
If the average metadata wait queue length of the job is greater than a predetermined threshold, then the job is determined to be a metadata access intensive job.
E. It is judged whether or not there is a job whose I/O mode is the N-1 mode among all the jobs obtained in step a. If the operation with the I/O mode being the N-1 mode exists, the I/O forwarding NodeiThere is job-level I/O performance interference; otherwise, I/O forwarding NodeiThere is no job-level I/O performance interference; and finishing the judgment process.
Wherein the I/O mode of the job may be obtained by the I/O performance monitoring tool when the job was last executed. The I/O modes may include: an N-1 mode, namely N I/O processes read and write one file simultaneously in the operation; N-N mode, namely N I/O processes read and write N independent files in the operation; 1-1 mode, i.e. only one I/O process in a job reads and writes one file. If the I/O mode used by a job is N-1 mode, i.e., the job has N I/O processes operating on a file at the same time, the job may cause I/O performance interference.
And S5, distributing the standby I/O forwarding nodes from the standby I/O forwarding node pool as the actual I/O forwarding nodes of the operation A.
Those skilled in the art will appreciate that the default I/O forwarding node assigned by the job scheduling device for a job is typically a shared I/O forwarding node, i.e., multiple jobs may share the I/O forwarding node. According to one embodiment of the invention, the standby I/O forwarding node is an unused I/O forwarding node and is an exclusive forwarding node. In one embodiment, step S5 includes the following sub-steps:
s51, if the number of the default I/O forwarding nodes of the job A is less than the optimal using amount of the I/O forwarding nodes of the job A, executing the step S52; otherwise, step S53 is executed.
And S52, comparing the number of the standby I/O forwarding nodes in the standby I/O forwarding node pool with the optimal use amount S of the I/O forwarding nodes of the job A, if the number of the standby I/O forwarding nodes in the standby I/O forwarding node pool is greater than or equal to the optimal use amount S of the I/O forwarding nodes of the job A, allocating S standby I/O forwarding nodes from the standby I/O forwarding node pool to the job A as the actual I/O forwarding nodes of the job A, otherwise, allocating all the standby I/O forwarding nodes in the standby I/O forwarding node pool to the job A, and ending the process of allocating the I/O forwarding nodes to the job A.
S53, comparing the number of the standby I/O forwarding nodes in the standby I/O forwarding node pool with the number L of the default I/O forwarding nodes of the operation A; if the number of the standby I/O forwarding nodes in the standby I/O forwarding node pool is larger than or equal to the number L of the default I/O forwarding nodes of the job A, allocating L standby I/O forwarding nodes from the standby I/O forwarding node pool to the job A as the actual I/O forwarding nodes of the job A, otherwise allocating all the standby I/O forwarding nodes in the standby I/O forwarding node pool to the job A, and ending the process of allocating the I/O forwarding nodes to the job A.
In the above embodiments, dynamic assignment of I/O forwarding nodes for jobs is implemented. If the number of default I/O forwarding nodes distributed for the job is less than the optimal usage amount of the I/O forwarding nodes calculated according to the historical I/O information of the job, distributing standby I/O forwarding nodes meeting the optimal usage amount of the I/O forwarding nodes for the job as much as possible; in addition, even if the number of the default I/O forwarding nodes of the job meets (i.e., is greater than or equal to) the optimal usage of the I/O forwarding nodes of the job, it is further determined whether I/O performance interference exists in the default I/O forwarding nodes of the job, and if so, a standby I/O forwarding node is allocated for the job. The invention can effectively avoid I/O performance interference of operation granularity on the I/O forwarding node, improves the utilization rate of the I/O forwarding node and improves the I/O performance of operation.
In order to verify the effectiveness of the method provided by the invention, the inventor conducts experiments on the optical supercomputer of Shenwei Taihu lake, and the experimental result shows that the method provided by the invention can bring more than 20 times of I/O performance improvement for an application program.
In the above embodiment, the optimal usage amount of the I/O forwarding node of the job is calculated according to the number of I/O processes when the job is executed in the supercomputer (to which the I/O forwarding architecture is applied) last time; further, determining whether a job is a high bandwidth job, a high IOPS job, and a metadata intensive job all utilize I/O information on the last execution of the job. Those skilled in the art will appreciate that in other embodiments, the above calculations or determinations may be made using I/O information monitored over multiple executions of a job. For example, the number of I/O processes performed n times before the job (n is an integer equal to or greater than 2) is averaged or weighted, and the average or weighted average is used to calculate the optimal usage amount of I/O forwarding nodes for the job; further, the average aggregate bandwidth, average aggregate IOPS, and average metadata wait queue length for a job may be calculated in a similar manner.
In the above embodiment, the I/O performance monitoring tool is used to monitor and obtain the I/O information when the job is executed, and in a further embodiment, the I/O information of the job may be recorded after each job is executed, so as to facilitate subsequent searching and calculating data such as the optimal usage amount of the I/O forwarding node of the job. Those skilled in the art will appreciate that I/O information for a job includes, but is not limited to: the number of I/O processes for a job, the total amount of I/O data, the average metadata wait queue length for the I/O forwarding nodes for the job, the I/O mode for the job (including N-1 mode, N-N mode, and 1-1 mode), and so on.
In the above-described embodiment, to determine whether there is an I/O performance interference at the job level for one I/O forwarding node (in step S4), it is first determined whether there is a high bandwidth job among the jobs for which the default I/O forwarding node is the I/O forwarding node, and if there is no high bandwidth job, it is then sequentially determined whether there is a high IOPS job, whether there is a metadata access intensive job, and whether there is an N-1 mode job among the jobs. In other embodiments, other orders may be used to determine whether an I/O forwarding node has job-level I/O performance interference, e.g., first determine whether a high IOPS job exists in the job, etc. In further embodiments, one or some of the steps may also be skipped, e.g., only determining if there is a high bandwidth job in the job; or, whether a high bandwidth job exists in the job is judged first, and if the high bandwidth job does not exist, whether a metadata access intensive job exists in the job is judged.
Sub-steps S51-S53 of step S5 are shown in the above embodiment. In other embodiments, for step S5, the larger value M of the number of default I/O forwarding nodes of job a and the optimal usage of I/O forwarding nodes of job a may be calculated, then the number of standby I/O forwarding nodes in the standby I/O forwarding node pool is compared with the larger value M, and then the allocation of actual I/O forwarding nodes is performed according to the comparison result. In one embodiment, step S5 may include the following sub-steps:
step S51'. calculate the larger value M of the number of default I/O forwarding nodes of job a and the optimal amount of use of I/O forwarding nodes of job a.
Step S52'. compare the number of standby I/O forwarding nodes in the pool of standby I/O forwarding nodes with the larger value M.
And step S53', if the number of the standby I/O forwarding nodes in the standby I/O forwarding node pool is larger than or equal to the larger value M, M standby I/O forwarding nodes are allocated from the standby I/O forwarding node pool to the actual I/O forwarding node of the operation A, and otherwise, all the standby I/O forwarding nodes in the standby I/O forwarding node pool are allocated to the operation A as the actual I/O forwarding node.
It should be noted that some exemplary methods are depicted as flowcharts. Although a flowchart may describe the operations as being performed serially, it can be appreciated that many of the operations can be performed in parallel, concurrently, or with synchronization. In addition, the order of the operations may be rearranged. A process may terminate when an operation is completed, but may have additional steps not included in the figure or embodiment.
The above-described methods may be implemented by hardware, software, firmware, middleware, pseudocode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware, or pseudo code, the program code or code segments to perform the tasks may be stored in a computer readable medium such as a storage medium, and a processor may perform the tasks.
It should be appreciated that the software-implemented exemplary embodiment is typically encoded on some form of program storage medium or implemented over some type of transmission medium. The program storage medium may be any non-transitory storage medium such as a magnetic disk (e.g., a floppy disk or a hard drive) or an optical disk (e.g., a compact disk read only memory or "CD ROM"), and may be read only or random access. Similarly, the transmission medium may be twisted wire pairs, coaxial cable, optical fiber, or some other suitable transmission medium known to the art.
Although the present invention has been described by way of preferred embodiments, the present invention is not limited to the embodiments described herein, and various changes and modifications may be made without departing from the scope of the present invention.

Claims (11)

1. A method for allocating I/O forwarding nodes for jobs under an I/O forwarding architecture comprises the following steps:
step 1) obtaining the number of default I/O forwarding nodes of a job and the threshold value of the number of I/O forwarding nodes of the job; the default I/O forwarding node of the job is an I/O forwarding node distributed for the job by a job scheduling device during job scheduling;
step 2) comparing the number of the default I/O forwarding nodes of the job with the I/O forwarding node number threshold of the job to determine whether to allocate a standby I/O forwarding node as an actual I/O forwarding node of the job.
2. The method of claim 1, wherein step 2) comprises:
comparing the number of default I/O forwarding nodes of the job with the I/O forwarding node number threshold of the job;
if the number of the default I/O forwarding nodes of the operation is smaller than the threshold value of the number of the I/O forwarding nodes of the operation, allocating standby I/O forwarding nodes as actual I/O forwarding nodes of the operation; otherwise, judging whether the default I/O forwarding node of the operation has I/O performance interference of operation level, if so, allocating a standby I/O forwarding node as the actual I/O forwarding node of the operation, and if not, using the default I/O forwarding node of the operation as the actual I/O forwarding node of the operation.
3. The method of claim 1 or 2, wherein the I/O forwarding node number threshold for the job is calculated according to:
Figure FDA0002126722510000011
wherein i represents the ith job; TH _ nodeiAn I/O forwarding node number threshold value representing an ith job; NUM _ ioiRepresenting the number of I/O processes of the ith job executed last time; alpha represents an expansion coefficient which is the quotient of the peak I/O bandwidth of the I/O forwarding node and the peak I/O bandwidth of the compute node.
4. The method of claim 2, wherein in step 2), determining whether there is job-level I/O performance interference at the job's default I/O forwarding node comprises:
for each I/O forwarding node in the default I/O forwarding nodes of the jobs, acquiring all jobs of which the default I/O forwarding nodes include the I/O forwarding node;
if the average aggregation bandwidth of the last execution time of a job in all the obtained jobs is larger than a preset threshold value, the default I/O forwarding node of the job has I/O performance interference of the job level.
5. The method of claim 2, wherein in step 2), determining whether there is job-level I/O performance interference at the job's default I/O forwarding node comprises:
for each I/O forwarding node in the default I/O forwarding nodes of the jobs, acquiring all jobs of which the default I/O forwarding nodes include the I/O forwarding node;
if there is an average aggregate IOPS of all the obtained jobs for which a job was executed last time that is greater than a predetermined threshold, then the default I/O forwarding node for the job has job-level I/O performance interference.
6. The method of claim 2, wherein in step 2), determining whether there is job-level I/O performance interference at the job's default I/O forwarding node comprises:
for each I/O forwarding node in the default I/O forwarding nodes of the jobs, acquiring all jobs of which the default I/O forwarding nodes include the I/O forwarding node;
if the average metadata waiting queue length of a job executed last time is larger than a preset threshold value in all the obtained jobs, the default I/O forwarding node of the job has I/O performance interference of a job level.
7. The method of claim 2, wherein in step 2), determining whether there is job-level I/O performance interference at the job's default I/O forwarding node comprises:
for each I/O forwarding node in the default I/O forwarding nodes of the jobs, acquiring all jobs of which the default I/O forwarding nodes include the I/O forwarding node;
and if one job exists in all the obtained jobs, the I/O mode of the job is the N-1 mode, and the default I/O forwarding node of the job has I/O performance interference of the job level.
8. The method of claim 2, wherein allocating a standby I/O forwarding node as an actual I/O forwarding node for the job comprises:
calculating a larger value M of the number of default I/O forwarding nodes of the job and the I/O forwarding node number threshold of the job;
comparing the number of the standby I/O forwarding nodes in the standby I/O forwarding node pool with the larger value M;
if the number of the standby I/O forwarding nodes in the standby I/O forwarding node pool is greater than or equal to the larger value M, allocating M standby I/O forwarding nodes from the standby I/O forwarding node pool to the job as actual I/O forwarding nodes of the job; otherwise, all the standby I/O forwarding nodes in the standby I/O forwarding node pool are allocated to the job to serve as the actual I/O forwarding nodes of the job.
9. The method of claim 1 or 2, wherein the standby I/O forwarding node is an exclusive I/O forwarding node.
10. The method of claim 1 or 2, further comprising:
I/O information is obtained for the last time the job was executed.
11. An electronic device comprising a processor and a memory, the memory storing instructions that, when executed by the processor, cause the electronic device to implement the method of any of claims 1-10.
CN201910624766.XA 2019-07-11 2019-07-11 Method for distributing I/O forwarding nodes for operation under I/O forwarding architecture Pending CN112214305A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910624766.XA CN112214305A (en) 2019-07-11 2019-07-11 Method for distributing I/O forwarding nodes for operation under I/O forwarding architecture

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910624766.XA CN112214305A (en) 2019-07-11 2019-07-11 Method for distributing I/O forwarding nodes for operation under I/O forwarding architecture

Publications (1)

Publication Number Publication Date
CN112214305A true CN112214305A (en) 2021-01-12

Family

ID=74047346

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910624766.XA Pending CN112214305A (en) 2019-07-11 2019-07-11 Method for distributing I/O forwarding nodes for operation under I/O forwarding architecture

Country Status (1)

Country Link
CN (1) CN112214305A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113381940A (en) * 2021-04-25 2021-09-10 中国空气动力研究与发展中心计算空气动力研究所 Design method and device of two-dimensional fat tree network topology

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113381940A (en) * 2021-04-25 2021-09-10 中国空气动力研究与发展中心计算空气动力研究所 Design method and device of two-dimensional fat tree network topology
CN113381940B (en) * 2021-04-25 2022-12-27 中国空气动力研究与发展中心计算空气动力研究所 Design method and device of two-dimensional fat tree network topology

Similar Documents

Publication Publication Date Title
US10185592B2 (en) Network storage device using dynamic weights based on resource utilization
JP5073673B2 (en) Prioritizing performance on multithreaded processors
KR101553649B1 (en) Multicore apparatus and job scheduling method thereof
JP5853624B2 (en) Methods, programs, and systems for generating, analyzing, and using workload metadata
US8190795B2 (en) Memory buffer allocation device and computer readable medium having stored thereon memory buffer allocation program
US8707300B2 (en) Workload interference estimation and performance optimization
TWI260543B (en) Performance scheduling method and system, and computer readable medium
JP5245722B2 (en) Scheduler, processor system, program generation device, and program generation program
US8479205B2 (en) Schedule control program and schedule control method
US20110161978A1 (en) Job allocation method and apparatus for a multi-core system
US8677362B2 (en) Apparatus for reconfiguring, mapping method and scheduling method in reconfigurable multi-processor system
US20110161965A1 (en) Job allocation method and apparatus for a multi-core processor
JP2009528610A (en) Method and apparatus for dynamically resizing cache partition based on task execution phase
KR102110812B1 (en) Multicore system and job scheduling method thereof
KR20130011491A (en) Apparatus or task assignment, method for task assignment and a computer-readable storage medium
KR101140914B1 (en) Technique for controlling computing resources
KR101695013B1 (en) Method for allocating and managing of adaptive resource
US9471387B2 (en) Scheduling in job execution
JP5849794B2 (en) Storage control device, storage control method, and storage control program
CN111625339A (en) Cluster resource scheduling method, device, medium and computing equipment
US10877790B2 (en) Information processing apparatus, control method and storage medium
CN112214305A (en) Method for distributing I/O forwarding nodes for operation under I/O forwarding architecture
US20160139959A1 (en) Information processing system, method and medium
CN110209350B (en) Dynamic scheduling method for application I/O (input/output) request in HPC (high performance computing) system of hybrid storage architecture
WO2020076394A1 (en) Resource allocation using restore credits

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination