Hierarchical Aggregation Method for MPI Aggregate I / O
By optimizing MPI aggregate I/O through a hierarchical aggregation method, optimizing the location and number of aggregators in combination with the physical network topology, and utilizing asynchronous I/O pipeline optimization, the problem of high communication cost in large-scale MPI aggregate I/O is solved, and data aggregation performance and scalability are improved.
Patent Information
- Application Number
- CN202411500651.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-25
- Publication Date
- 2025-09-09
- Estimated Expiration
- 2044-10-25
AI Technical Summary
Traditional MPI aggregate I/O methods have high communication costs and severe network communication competition in large-scale parallel computing. They cannot be effectively expanded to large-scale non-continuous I/O scenarios and fail to optimize the communication topology relationship between nodes.
A hierarchical aggregation method is adopted, including intra-node, intra-group and global aggregation. The number and location of aggregators are optimized in combination with the physical network communication topology, and the time overhead of the communication stage is reduced through asynchronous I/O pipeline optimization.
It effectively reduces the network communication overhead between large-scale I/O processes, improves the MPI aggregation I/O performance, can be expanded to larger-scale scenarios, reduces network communication competition, and improves data aggregation performance.
Smart Images

Figure CN119484293B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of message passing interface, and in particular to a hierarchical aggregation method oriented to MPI aggregate I / O. Background Art
[0002] The Message Passing Interface (MPI) standard defines a set of programming interfaces for parallel shared file access, commonly referred to as MPI-I / O. MPI-I / O leverages MPI's message passing mechanism, based on POSIX semantics, to implement parallel data read and write access. Scientific computing applications employ MPI-I / O directly or indirectly through parallel I / O libraries to improve program I / O performance. To address the issue of degraded I / O performance in parallel applications caused by large, discontinuous I / O requests, MPI Collective I / O was proposed. The core of Collective I / O is a two-phase I / O strategy, conceptually consisting of a communication phase and an I / O phase. In the communication phase, a subset of MPI processes (defined as I / O aggregators) is selected to act as I / O agents for the remaining processes. Files read and written by parallel applications are partitioned into non-overlapping regions, called file domains, between aggregators. All processes send I / O requests to the I / O aggregator based on their assigned file domains. In the I / O phase, the I / O aggregator uses the POSIX interface to access the parallel file system to read and write files. In traditional MPI aggregated I / O, only the I / O aggregator is responsible for I / O interaction with the file system, and the other processes are only responsible for network communication with the I / O aggregator. The two-phase I / O process is as follows: Figure 1As shown in the figure, circles represent processes, darker colors represent I / O aggregator processes, and small squares represent compute nodes. MPI aggregated I / O essentially trades reduced network communication overhead for reduced I / O time. As HPC systems scale, the number of nodes, processors, and cores continues to increase, ushering in the exascale era. The communication cost of MPI aggregated I / O, a method for redistributing I / O requests, is becoming increasingly high in large-scale parallel programs, gradually outweighing the performance gains offered by aggregated I / O. In large-scale, non-contiguous I / O scenarios, the communication frequency and cost of traditional MPI aggregated I / O increase significantly. While some research has attempted to reduce network communication frequency through intra-node aggregation, these approaches are limited to intra-node optimizations, leveraging only node locality and failing to consider inter-node and network locality. In large-scale, non-contiguous I / O scenarios, network contention between aggregators and the large number of aggregators requesting I / O from the parallel file system can impact overall file read and write performance. Therefore, traditional MPI aggregated I / O methods and related optimization methods are not scalable to large-scale parallel scenarios. Aggregators in traditional MPI aggregated I / O must not only collect data from other processes over the network but also access the file system for data reading and writing. The number and placement of aggregators are closely related not only to the physical network communication architecture but also to the underlying parallel file system. Therefore, traditional MPI aggregated I / O methods struggle to find the optimal number and placement of aggregators for optimal network communication and I / O performance.
[0003] The above information disclosed in this Background section is only for enhancement of understanding of the background of the invention and therefore it may contain information that does not form the prior art that is already known to a person of ordinary skill in the art. Summary of the Invention
[0004] The present invention provides a hierarchical aggregation method for MPI aggregation I / O, which reduces network communication competition in the data aggregation process and improves data aggregation performance.
[0005] A hierarchical aggregation method for MPI aggregated I / O includes:
[0006] Step 1: Intra-node aggregation. A process is selected on each computing node in the supercomputing cluster as a local aggregator. The local aggregator collects and merges I / O requests from other processes on the computing node and merges the I / O requests into larger continuous requests.
[0007] Step 2: Intra-group aggregation. Based on the physical network communication topology, a group of physically close computing nodes with good communication quality is divided into a group. A local aggregator is selected within the group as the intra-group aggregator. The intra-group aggregator collects the I / O requests of all local aggregators in the group and merges the I / O requests into larger continuous requests.
[0008] Step 3: Global aggregation. Select some of the in-group aggregators from all in-group aggregators as global aggregators. The global aggregator collects I / O requests from the in-group aggregators and merges the I / O requests into larger continuous requests.
[0009] Step 4: Optimize the asynchronous I / O pipeline. The global aggregator allocates two aggregation buffers of the same size, replaces the original blocking I / O calls with non-blocking I / O calls, and alternately executes the communication operations and I / O operations in the two-phase I / O in the two buffers, overlapping the I / O phase of the current round with the communication phase of the next round.
[0010] In step 5, the global aggregator interacts with the storage through the parallel file system interface to complete the file read and write request.
[0011] In the hierarchical aggregation method for MPI aggregated I / O, in step 1, no network communication occurs between computing nodes in intra-node aggregation, and all communications are intra-node communications.
[0012] In the hierarchical aggregation method for MPI aggregated I / O, in step 2, network communication in intra-group aggregation only occurs between processes in the same group, and no network communication occurs between processes in different groups.
[0013] In the hierarchical aggregation method for MPI aggregated I / O, in step 3, the number and position of global aggregators are determined based on the parallel file system stripe size, the number of stripes, and the number of OSTs.
[0014] In the hierarchical aggregation method for MPI aggregated I / O, files read and written by parallel applications are divided into non-overlapping areas between aggregators as file domains.
[0015] In the hierarchical aggregation method for MPI aggregated I / O, the global aggregator uses a POSIX interface to access the parallel file system to read and write files.
[0016] In the hierarchical aggregation method for MPI aggregated I / O, the MPI aggregated I / O utilizes the message passing mechanism of MPI and implements parallel data read and write access based on POSIX semantics.
[0017] In the hierarchical aggregation method for MPI aggregated I / O, the communication phase and the I / O phase constitute two-stage I / O.
[0018] In the hierarchical aggregation method for MPI aggregated I / O, the number and location of group aggregators are determined according to the physical network communication topology, thereby reducing the time overhead of network communication.
[0019] In addition, the present invention also discloses a hierarchical aggregation system for MPI aggregation I / O, which is characterized by comprising:
[0020] The node aggregation unit is used to select a process on each computing node in the supercomputing cluster as a local aggregator. The local aggregator collects and merges I / O requests from other processes on the computing node and merges the I / O requests into larger continuous requests.
[0021] The intra-group aggregation unit is used to divide a group of physically close computing nodes, that is, nodes with good communication quality, into a group based on the physical network communication topology. A local aggregator is selected within the group as the intra-group aggregator. The intra-group aggregator collects I / O requests from all local aggregators in the group and merges the I / O requests into larger continuous requests.
[0022] A global aggregation unit is used to select some of the in-group aggregators from all in-group aggregators as global aggregators. The global aggregator collects I / O requests from the in-group aggregators and merges the I / O requests into larger continuous requests.
[0023] The asynchronous I / O pipeline optimization unit enables the global aggregator to apply for two aggregation buffers of the same size, replaces the original blocking I / O calls with non-blocking I / O calls, and alternately executes the communication operations and I / O operations in the two-phase I / O in the two buffers, overlapping the I / O phase of the current round with the communication phase of the next round.
[0024] The read and write unit is used by the global aggregator to interact with the storage through the parallel file system interface to complete file read and write requests.
[0025] In addition, the present invention also discloses a computer storage medium, wherein the storage medium includes computer instructions, which, when executed on a computer, enable the computer to execute any of the methods described above.
[0026] In addition, the present invention also discloses an electronic device, wherein the electronic device includes:
[0027] A memory, a processor, and a computer program stored in the memory and executable on the processor, wherein:
[0028] When the processor executes the program, any of the methods described above is implemented.
[0029] Compared with the existing technology, the present invention has the following advantages: The present invention optimizes the problem of high total communication cost in the two-stage I / O aggregation process, and effectively reduces the network communication between nodes by increasing intra-node aggregation. Traditional MPI aggregation I / O does not consider the communication topology relationship between computing nodes in the communication stage, which leads to network contention problems in the data aggregation process. Researchers calculate the communication cost based on the network communication topology, and then optimize the number and location of I / O aggregators in a targeted manner, reduce network communication competition in the data aggregation process, and improve data aggregation performance. The present invention adds an intra-node aggregation layer and an intra-group aggregation layer. In large-scale discontinuous I / O scenarios, it can effectively reduce the network communication overhead between large-scale I / O processes in the MPI aggregation I / O process, thereby improving the MPI aggregation I / O performance. BRIEF DESCRIPTION OF THE DRAWINGS
[0030] Various other advantages and benefits of the present invention will become apparent to those skilled in the art upon reading the detailed description of the preferred embodiments below. The accompanying drawings are intended only to illustrate preferred embodiments and are not to be construed as limiting the present invention. It should be understood that the drawings described below are merely examples of the present invention, and that those skilled in the art will be able to derive other drawings from these drawings without inventive effort. Throughout the drawings, identical reference numerals are used to denote identical components.
[0031] In the attached figure:
[0032] Figure 1 It is a schematic diagram of the two-stage I / O process of the prior art;
[0033] Figure 2 This is a schematic diagram of the hierarchical aggregation process of MPI aggregation IO in this method.
[0034] The present invention will be further explained below with reference to the accompanying drawings and embodiments. DETAILED DESCRIPTION
[0035] The following will refer to the attached Figures 1 to 2 Specific embodiments of the present invention will now be described in greater detail. Although specific embodiments of the present invention are shown in the accompanying drawings, it should be understood that the present invention may be implemented in various forms and should not be limited by the embodiments set forth herein. Rather, these embodiments are provided to facilitate a more thorough understanding of the present invention and to fully convey the scope of the present invention to those skilled in the art.
[0036] It should be noted that certain words are used in the specification and claims to refer to specific components. Those skilled in the art should understand that technicians may use different nouns to refer to the same component. This specification and claims do not use the difference in nouns as a way to distinguish components, but use the difference in the functions of the components as the criterion for distinction. As mentioned throughout the specification and claims, "including" or "comprising" is an open term, so it should be interpreted as "including but not limited to". The subsequent description of the specification is a preferred embodiment of the present invention, but the description is based on the general principles of the specification and is not intended to limit the scope of the invention. The scope of protection of the present invention shall be as defined in the attached claims.
[0037] To facilitate understanding of the embodiments of the present invention, further explanation will be given below using specific embodiments as examples in conjunction with the accompanying drawings, and the accompanying drawings do not constitute a limitation on the embodiments of the present invention.
[0038] like Figure 2 As shown in FIG, the hierarchical aggregation method for MPI aggregate I / O includes the following steps:
[0039] Step 1: Aggregation within independent physical server compute nodes in the supercomputing cluster. A process is selected on each compute node in the supercomputing cluster as a local aggregator. The local aggregator collects and merges I / O requests from other processes on the compute node and merges the I / O requests into larger continuous requests.
[0040] Step 2: Intra-group aggregation. Based on the physical network communication topology, a group of physically close computing nodes with good communication quality is divided into a group. A local aggregator is selected within the group as the intra-group aggregator. The intra-group aggregator collects the I / O requests of all local aggregators in the group and merges the I / O requests into larger continuous requests.
[0041] Step 3: Global aggregation. Select some of the in-group aggregators from all in-group aggregators as global aggregators. The global aggregator collects I / O requests from the in-group aggregators and merges the I / O requests into larger continuous requests.
[0042] Step 4: Optimize the asynchronous I / O pipeline. The global aggregator allocates two aggregation buffers of the same size, replaces the original blocking I / O calls with non-blocking I / O calls, and alternately executes the communication operations and I / O operations in the two-phase I / O in the two buffers, overlapping the I / O phase of the current round with the communication phase of the next round.
[0043] In step 5, the global aggregator interacts with the storage through the parallel file system interface to complete the file read and write request.
[0044] In a preferred embodiment of the hierarchical aggregation method for MPI aggregated I / O, in step 1, no network communication occurs between computing nodes in the intra-node aggregation, and all communications are intra-node communications.
[0045] In a preferred embodiment of the hierarchical aggregation method for MPI aggregated I / O, in step 2, network communication in intra-group aggregation only occurs between processes in the same group, and no network communication occurs between processes in different groups.
[0046] In a preferred embodiment of the hierarchical aggregation method for MPI aggregated I / O, in step 2, the number and location of group aggregators are determined according to the physical network communication topology to reduce the time overhead of network communication.
[0047] In a preferred embodiment of the hierarchical aggregation method for MPI aggregated I / O, in step 3, the number and position of global aggregators are determined based on the parallel file system stripe size, the number of stripes, and the number of OSTs.
[0048] In a preferred embodiment of the hierarchical aggregation method for MPI aggregated I / O, files read and written by parallel applications are divided into non-overlapping areas between aggregators as file domains.
[0049] In a preferred embodiment of the hierarchical aggregation method for MPI aggregated I / O, the global aggregator overlaps the communication and I / O phases in multiple rounds based on the pipeline optimization mechanism of asynchronous I / O.
[0050] In a preferred embodiment of the hierarchical aggregation method for MPI aggregated I / O, the global aggregator uses a POSIX interface to access the parallel file system to read and write files.
[0051] In a preferred embodiment of the hierarchical aggregation method for MPI aggregated I / O, the MPI aggregated I / O utilizes the message passing mechanism of MPI to implement parallel data read and write access based on POSIX semantics.
[0052] In a preferred embodiment of the hierarchical aggregation method for MPI aggregated I / O, the communication phase and the I / O phase constitute a two-phase I / O.
[0053] In one embodiment, a hierarchical aggregation method for MPI aggregated I / O includes the following steps:
[0054] Step 1: On each compute node, a process is selected as the aggregator, called the local aggregator. The local aggregator collects and consolidates I / O requests from other processes on the node, combining them into larger, continuous requests. This step is called intra-node aggregation. During this step, no network communication occurs between compute nodes; all communication is intra-node.
[0055] Step 2: Based on the physical network communication topology, physically close compute nodes (those with good communication quality) are grouped together. A local aggregator is selected within the group as the intra-group aggregator. The intra-group aggregator collects I / O requests from all local aggregators within the group and merges the requests into larger, continuous requests, known as intra-group aggregation. During this step, network communication occurs only between processes within the same group; processes in different groups do not communicate with each other.
[0056] Step 3: From all the aggregators within the group, some of them are selected as global aggregators. The global aggregator collects the I / O requests on the aggregators within the group and merges the requests into larger continuous requests, which is called global aggregation.
[0057] Step 4: Asynchronous I / O pipeline optimization: The global aggregator allocates two aggregation buffers of the same size, replaces the original blocking I / O calls with non-blocking I / O calls, and alternately executes the communication operations and I / O operations in the two-phase I / O in the two buffers, overlapping the I / O phase of the current round with the communication phase of the next round.
[0058] Step 5: The global aggregator interacts with the storage through the parallel file system interface to complete the final file read and write request.
[0059] In addition, the present invention also discloses a hierarchical aggregation system for MPI aggregation I / O, which is characterized by comprising:
[0060] The node aggregation unit is used to select a process on each computing node in the supercomputing cluster as a local aggregator. The local aggregator collects and merges I / O requests from other processes on the computing node and merges the I / O requests into larger continuous requests.
[0061] The intra-group aggregation unit is used to divide a group of physically close computing nodes, that is, nodes with good communication quality, into a group based on the physical network communication topology. A local aggregator is selected within the group as the intra-group aggregator. The intra-group aggregator collects I / O requests from all local aggregators in the group and merges the I / O requests into larger continuous requests.
[0062] A global aggregation unit is used to select some of the in-group aggregators from all in-group aggregators as global aggregators. The global aggregator collects I / O requests from the in-group aggregators and merges the I / O requests into larger continuous requests.
[0063] The asynchronous I / O pipeline optimization unit enables the global aggregator to apply for two aggregation buffers of the same size, replaces the original blocking I / O calls with non-blocking I / O calls, and alternately executes the communication operations and I / O operations in the two-phase I / O in the two buffers, overlapping the I / O phase of the current round with the communication phase of the next round.
[0064] The read and write unit is used by the global aggregator to interact with the storage through the parallel file system interface to complete file read and write requests.
[0065] In addition, the present invention also discloses a computer storage medium, wherein the storage medium includes computer instructions, which, when executed on a computer, enable the computer to execute any of the methods described above.
[0066] In addition, the present invention also discloses an electronic device, wherein the electronic device includes:
[0067] A memory, a processor, and a computer program stored in the memory and executable on the processor, wherein:
[0068] When the processor executes the program, any of the methods described above is implemented.
[0069] The hierarchical aggregation method of the present invention adds intra-node aggregation and intra-group aggregation layers, which can effectively reduce the number of communications between nodes and groups. Since the communication overhead between nodes and groups is greater than the communication overhead within nodes and groups, the hierarchical aggregation method can significantly reduce the communication overhead in the MPI aggregate I / O process, effectively solving the communication contention problem during large-scale non-continuous I / O requests, and can expand MPI aggregate I / O to larger-scale scenarios. The hierarchical aggregation method decouples network communication requests and I / O requests in the MPI aggregate I / O process by adding intra-node aggregation and intra-group aggregation layers. In the hierarchical aggregation method, the intra-group aggregator only collects data from other processes through the network and sends it to the global aggregator. The appropriate number and location of intra-group aggregators can be selected based on the network topology. The global aggregator is responsible for the actual file I / O operations. The appropriate number and location of global aggregators can be selected based on the parallel file system stripe size, number of stripes, and number of OSTs. Therefore, the hierarchical aggregation method can optimize network communication performance and I / O performance for specific network system architectures and file system architectures respectively, without affecting each other. At the same time, for multiple rounds of two-stage I / O, a pipeline optimization mechanism based on asynchronous I / O is used to overlap the communication and I / O stages in multiple rounds to reduce the impact of the communication stage time overhead on the overall aggregate I / O.
[0070] Although the embodiments of the present invention have been described above with reference to the accompanying drawings, the present invention is not limited to the above-mentioned specific embodiments and application fields. The above-mentioned specific embodiments are merely illustrative and instructive, and are not restrictive. A person skilled in the art, guided by this specification and without departing from the scope of protection of the claims of the present invention, may also devise various forms, all of which fall within the scope of protection of the present invention.
Claims
1. A hierarchical aggregation method for MPI aggregate I / O, characterized in that: The steps include: Step 1: Intra-node aggregation. A process is selected on each computing node in the supercomputing cluster as a local aggregator. The local aggregator collects and merges I / O requests from other processes on the computing node and merges the I / O requests into larger continuous requests. Step 2: Intra-group aggregation. Based on the physical network communication topology, a group of physically close computing nodes with good communication quality is divided into a group. A local aggregator is selected within the group as the intra-group aggregator. The intra-group aggregator collects the I / O requests of all local aggregators in the group and merges the I / O requests into larger continuous requests. Step 3: Global aggregation. Select some of the in-group aggregators from all in-group aggregators as global aggregators. The global aggregator collects I / O requests from the in-group aggregators and merges the I / O requests into larger continuous requests. Step 4: Optimize the asynchronous I / O pipeline. The global aggregator allocates two aggregation buffers of the same size, replaces the original blocking I / O calls with non-blocking I / O calls, and alternately executes the communication operations and I / O operations in the two-phase I / O in the two buffers, overlapping the I / O phase of the current round with the communication phase of the next round. In step 5, the global aggregator interacts with the storage through the parallel file system interface to complete the file read and write request.
2. The hierarchical aggregation method for MPI aggregate I / O according to claim 1, characterized in that: Preferably, in step 1, no network communication occurs between computing nodes in the intra-node aggregation, and all communications are intra-node communications.
3. The hierarchical aggregation method for MPI aggregation I / O according to claim 1, characterized in that: Files read and written by parallel applications are divided into non-overlapping areas between aggregators as file domains.
4. The hierarchical aggregation method for MPI aggregated I / O according to claim 1, characterized in that: The global aggregator uses the POSIX interface to access the parallel file system for reading and writing files.
5. The hierarchical aggregation method for MPI aggregated I / O according to claim 1, characterized in that: MPI-oriented aggregate I / O uses MPI's message passing mechanism to implement parallel data read and write access based on POSIX semantics.
6. The hierarchical aggregation method for MPI aggregate I / O according to claim 1, characterized in that: The communication phase and the I / O phase constitute two-phase I / O.
7. The hierarchical aggregation method for MPI aggregated I / O according to claim 1, characterized in that: The number and location of group aggregators are determined based on the physical network communication topology to reduce the time overhead of network communication.
8. A hierarchical aggregation system for MPI aggregation I / O, characterized in that: include: The node aggregation unit is used to select a process on each computing node in the supercomputing cluster as a local aggregator. The local aggregator collects and merges I / O requests from other processes on the computing node and merges the I / O requests into larger continuous requests. The intra-group aggregation unit is used to divide a group of physically close computing nodes, that is, nodes with good communication quality, into a group based on the physical network communication topology. A local aggregator is selected within the group as the intra-group aggregator. The intra-group aggregator collects I / O requests from all local aggregators in the group and merges the I / O requests into larger continuous requests. A global aggregation unit is used to select some of the in-group aggregators from all in-group aggregators as global aggregators. The global aggregator collects I / O requests from the in-group aggregators and merges the I / O requests into larger continuous requests. The asynchronous I / O pipeline optimization unit enables the global aggregator to apply for two aggregation buffers of the same size, replaces the original blocking I / O calls with non-blocking I / O calls, and alternately executes the communication operations and I / O operations in the two-phase I / O in the two buffers, overlapping the I / O phase of the current round with the communication phase of the next round. The read and write unit is used by the global aggregator to interact with the storage through the parallel file system interface to complete file read and write requests.
9. A computer storage medium, wherein: The storage medium includes computer instructions, which, when executed on a computer, enable the computer to execute the method according to any one of claims 1 to 7.
10. An electronic device, wherein: The electronic device comprises: A memory, a processor, and a computer program stored in the memory and executable on the processor, wherein: When the processor executes the program, the method according to any one of claims 1 to 7 is implemented.
Citation Information
Patent Citations
System and method for providing high performance scalable file I / O
CN101187906A
IO service quality control method, apparatus and device, and storage medium
CN108762687A