WO2023237115A1 - 数据处理方法、装置、设备和系统 - Google Patents

数据处理方法、装置、设备和系统 Download PDF

Info

Publication number
WO2023237115A1
WO2023237115A1 PCT/CN2023/099530 CN2023099530W WO2023237115A1 WO 2023237115 A1 WO2023237115 A1 WO 2023237115A1 CN 2023099530 W CN2023099530 W CN 2023099530W WO 2023237115 A1 WO2023237115 A1 WO 2023237115A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
nodes
super
super node
data
Prior art date
Application number
PCT/CN2023/099530
Other languages
English (en)
French (fr)
Inventor
孙宏伟
李光成
李秀桥
高贵锦
乐永年
丁肇辉
刘华伟
Original Assignee
华为技术有限公司
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
Priority claimed from CN202211001039.6A external-priority patent/CN117251259A/zh
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2023237115A1 publication Critical patent/WO2023237115A1/zh

Links

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/48Program initiating; Program switching, e.g. by interrupt

Definitions

  • the present application relates to the field of data processing, and in particular, to a data processing method, device, equipment and system.
  • This application provides data processing methods, devices, equipment and systems, thereby shortening data processing time and reducing system energy consumption.
  • the global memory pool is a resource shared by nodes within the supernode that is composed of the storage media of the nodes within the supernode through unified addressing.
  • Nodes connected through high-speed interconnection technology within the supernode share access to the global memory pool to process pending jobs, thereby avoiding communication between nodes within the supernode based on the Message Passing Interface (MPI) and simplifying the node
  • MPI Message Passing Interface
  • the programming model of running applications effectively reduces I/O communication between nodes and gives full play to the performance of super nodes. This effectively shortens the data processing time, reduces system energy consumption, and improves system performance.
  • the high-speed interconnection technology includes at least one of Compute Express Link (CXL) and infinite bandwidth technology (infiniband, IB).
  • CXL Compute Express Link
  • IB infinite bandwidth technology
  • the delay between nodes is less than 1 microsecond, and the bandwidth can reach hundreds of gigabytes per second (Gigabyte second, GB/S).
  • processing pending jobs based on the global memory pool of the super node includes: multiple nodes in the super node run distributed applications written based on the single-node programming model to process pending jobs based on the global memory pool.
  • multiple nodes in the super node run distributed applications written based on the single-node programming model and process jobs based on the global memory pool, including: multiple nodes in the super node run distributed applications written based on the single-node programming model, based on memory synchronization access.
  • Technology accesses the global memory pool to handle pending jobs.
  • controlling at least one super node to process pending jobs based on the global memory pool of the super node includes: controlling more than two super nodes to process pending jobs based on the global memory pool of the super node, and more than two Supernodes communicate based on the information passing interface. Thus, to facilitate communication between super nodes.
  • resource requirements are used to indicate the number of processes and supernodes required to process pending jobs. Therefore, it is convenient for the scheduler to determine the number of super nodes based on the number of processes required to process the pending jobs, and schedule the jobs to one super node as much as possible.
  • the nodes in the super node perform distributed processing of the jobs, shortening data processing. time and reduce system energy consumption and improve system performance.
  • the scheduler determines the supernode to process the pending job based on the number of supernodes.
  • resources include computing resources and storage resources.
  • resources include computing resources and storage resources.
  • the storage medium of the global memory pool includes dynamic random access memory (Dynamic Random Access Memory, DRAM) and storage-class-memory (storage-class-memory, SCM).
  • DRAM Dynamic Random Access Memory
  • SCM storage-class-memory
  • the method also includes: the computing node in the super node prefetches the data from the storage node in the super node according to the prefetch policy, and stores the data in the local storage space of the computing node of the super node. Therefore, the computing node can quickly obtain data and shorten the data processing time.
  • the method also includes: the computing node in the super node performs memory operations on data between the remote storage space and the local storage space according to the hot and cold characteristics of the data.
  • Cold data refers to data that is accessed less frequently. Move cold data from local storage space to remote storage space, free up local storage space, improve data reading and writing speed, and improve the utilization of local storage space.
  • Hot data refers to data that is accessed more frequently. Moving hot data from remote storage space to local storage space enables computing nodes to obtain the required data as quickly as possible, shortens the data processing time, and reduces the computing resources occupied by frequent reading and writing of data.
  • Local storage space and remote storage space can be storage space in the global memory pool.
  • a second aspect provides a scheduling device, which includes various modules for executing the method executed by the scheduler in the first aspect or any possible design of the first aspect.
  • a data processing device which device includes various modules for executing the method executed by a node in a super node in the first aspect or any possible design of the first aspect.
  • a scheduler in a fourth aspect, includes at least one processor and a memory, and the memory is used to store a set of computer instructions; when the processor serves as the scheduler in the first aspect or any possible implementation of the first aspect, When the processor executes the set of computer instructions, the operational steps of the data processing method in the first aspect or any possible implementation of the first aspect are executed.
  • a computing device in a fifth aspect, includes nodes connected through high-speed interconnection technology and a scheduler as described in the fourth aspect.
  • the scheduler is used to execute the first aspect or any one of the first aspects. Operational steps of the data processing method in possible implementations.
  • a system in a sixth aspect, includes multiple super nodes and a scheduler.
  • the scheduler is used to control at least one super node according to the resource requirements of the jobs to be processed.
  • the global memory pool based on the super node processes the jobs to be processed.
  • the global memory The pool is a resource shared by the nodes in the super node, which is composed of the storage media of the nodes in the super node through unified addressing.
  • the nodes in the super node are connected through high-speed interconnection technology, and the jobs to be processed are processing requests related to distributed applications; Multiple nodes in the super node are used to run distributed applications written based on the single-node programming model and process pending jobs based on the global memory pool; two or more super nodes are used to communicate based on the information transfer interface.
  • a computer-readable storage medium including: computer software instructions; when the computer software instructions are run in a computing device, the computing device is caused to execute the first aspect or any possible implementation of the first aspect. The steps of the method.
  • a computer program product is provided.
  • the computer program product When the computer program product is run on a computer, it causes the computing device to perform the operation steps of the method described in the first aspect or any possible implementation of the first aspect.
  • Figure 1 is a schematic architectural diagram of a data processing system provided by an embodiment of the present application.
  • Figure 2 is a schematic diagram of a macro cabinet interconnection provided by an embodiment of the present application.
  • Figure 3 is a schematic diagram of a deployment scenario of a global memory pool provided by an embodiment of the present application.
  • Figure 4 is a schematic diagram of a three-layer structure storage system provided by an embodiment of the present application.
  • Figure 5 is a schematic process diagram of a data processing method provided by an embodiment of the present application.
  • Figure 6 is a schematic process diagram of another data processing method provided by an embodiment of the present application.
  • Figure 7 is a schematic diagram of a data processing process provided by an embodiment of the present application.
  • Figure 8 is a schematic structural diagram of a scheduling device provided by an embodiment of the present application.
  • Figure 9 is a schematic structural diagram of a data processing device provided by an embodiment of the present application.
  • FIG. 10 is a schematic structural diagram of a computing device provided by an embodiment of the present application.
  • Super Node refers to interconnecting multiple nodes into a high-performance cluster through high-bandwidth, low-latency inter-chip interconnect buses and switches.
  • the scale of the supernode is larger than the node scale under the Cache-Coherent Non-Uniform Memory Access (CC-NUMA) architecture, and the interconnection bandwidth of the nodes within the supernode is larger than the Ethernet interconnection bandwidth.
  • CC-NUMA Cache-Coherent Non-Uniform Memory Access
  • Programming Model refers to the architecture for programming applications.
  • the shared storage parallel programming Open Multi-Processing, OpenMP
  • MPI model in the HPC field.
  • High Performance Computing (HPC) cluster refers to a computer cluster system.
  • HPC clusters contain multiple computers connected together using various interconnect technologies.
  • the interconnection technology can be, for example, infinite bandwidth technology (IB), aggregation-based Remote Direct Memory Access over Converged Ethernet (RoCE) or Transmission Control Protocol (TCP) over Converged Ethernet.
  • IB infinite bandwidth technology
  • RoCE Remote Direct Memory Access over Converged Ethernet
  • TCP Transmission Control Protocol
  • HPC provides ultra-high floating-point computing capabilities and can be used to solve the computing needs of computing-intensive and massive data processing services.
  • the combined computing power of multiple computers connected together can handle large computing problems.
  • industries such as scientific research, weather forecasting, finance, simulation experiments, biopharmaceuticals, gene sequencing, and image processing involve the use of HPC clusters to solve large-scale computing problems and computing needs.
  • Using HPC clusters to handle large-scale computing problems can effectively shorten the computing time for processing data and improve computing accuracy.
  • Aggregation scheduling refers to the scheduler scheduling jobs to as few and close nodes as possible to achieve the purpose of aggregating computing resources for jobs.
  • Memory operation instructions can be called memory semantics or memory operation functions.
  • Memory operation instructions include at least one of memory allocation (malloc), memory set (memset), memory copy (memcpy), memory move (memmove), memory release (memory release) and memory comparison (memcmp).
  • Memory settings are used to set the data mode of the global memory pool, such as initialization.
  • Memory movement is used to copy the data stored in the storage space indicated by the source address (source) to the storage space indicated by the destination address (destination), and delete the data stored in the storage space indicated by the source address (source).
  • Memory comparison is used to compare whether the data stored in two storage spaces are equal.
  • this application provides a global system based on super nodes.
  • the data processing method of the memory pool is to form a global memory pool by uniformly addressing the storage media of the supernode.
  • the nodes in the supernode share access to the global memory pool to process jobs, thereby avoiding communication between nodes in the supernode based on MPI. , simplifying the programming model of applications run by nodes, effectively reducing I/O communication between nodes, and giving full play to the performance of super nodes.
  • the super node 110 includes a plurality of nodes 111.
  • Node 111 may be a processor, a server, a desktop computer, a controller and memory of a storage array, etc.
  • the processor can be a central processing unit (CPU), a graphics processing unit (GPU), a data processing unit (DPU), a neural processing unit (NPU), and an embedded processor.
  • super node 110 may include computing nodes and storage nodes.
  • the scheduler 130 tries to schedule jobs to be completed within a single macro cabinet or super node based on the aggregation policy. Try to avoid MPI-based communication between super nodes, simplify the programming model of applications running on nodes, effectively reduce I/O communication between nodes, and give full play to the performance of super nodes.
  • the scheduler and computing node can be independent physical devices, and the scheduler can also be called a control node, control device, or named node. Compute nodes may be called computing devices or data nodes.
  • the scheduler 130 may receive a processing request sent by a user operating client, and schedule the job indicated by the processing request.
  • the client can refer to a computer or a workstation.
  • the global memory pool includes local storage media within the computing node, extended storage media connected to the computing node, local storage media within the storage node, and extended storage media connected to the storage node.
  • Memory is a memory device used to store programs and various data. The larger the memory capacity, the slower the access speed. On the contrary, the smaller the memory capacity, the faster the access speed. Access speed refers to the data transfer speed when writing data or reading data to the memory. Access speed can also be called read and write speed. Memory can be divided into different levels based on storage capacity and access speed.
  • FIG. 4 is a schematic diagram of a three-layer structure storage system provided by an embodiment of the present application. From the first layer to the third layer, the storage capacity increases step by step, the access speed decreases step by step, and the cost decreases step by step.
  • the first level includes a register 411, a level 1 cache 412, a level 2 cache 413 and a level 3 cache 414 located in a central processing unit (CPU).
  • the second level contains memory that can serve as the main memory of the computer system.
  • dynamic random access memory Dynamic Random Access Memory, DRAM) 421, double data rate synchronous dynamic random access memory (double data rate SDRAM, DDR SDRAM) 422, storage-class-memory (SCM) 423.
  • DRAM Dynamic Random Access Memory
  • DDR SDRAM double data rate SDRAM
  • SCM storage-class-memory
  • FIG. 5 is a schematic flowchart of a data processing method provided by an embodiment of the present application.
  • the scheduler 130 and the super node 110 are used as examples for explanation.
  • the method includes the following steps.
  • Step 510 The scheduler 130 obtains the jobs to be processed.
  • the client sends a job processing the request related to the distributed application to the scheduler 130 .
  • Scheduler 130 may receive jobs sent by clients through data center network 120 . Jobs can include job IDs and business data. The job ID uniquely identifies a job.
  • Business data may be data for distributed data processing by computing nodes or identification data indicating data to be processed.
  • User operations may refer to operations in which a user operates a user interface to submit distributed application services.
  • the user operation may refer to an operation in which the user operates the big data user interface to submit the big data service.
  • Big data business includes data analysis business, data query business and data modification business, etc.
  • big data business refers to analyzing customers' personal data and purchasing behavior data to describe user portraits and classify customers, so that targeted products or preferential products can be recommended to specific customers, improve customer satisfaction, stabilize customer relationships, etc.
  • big data business refers to analyzing the historical sales volume of a product to predict future sales volume, discovering the reasons for the decline in sales volume or the reasons for the increase in sales volume, and recommending constructive suggestions to increase sales volume.
  • resource requirements indicate the number of processes required to process a job.
  • the scheduler 130 determines a super node that satisfies the number of processes from a plurality of super nodes. If the number of available processes on a super node in the system meets the required number of processes, the job is scheduled to the super node. If the number of available processes on one supernode in the system does not meet the required number of processes, and the number of available processes on two supernodes meets the required number of processes, the job will be scheduled to the two supernodes.
  • resource requirements may also indicate the number of supernodes.
  • the scheduler 130 determines at least one super node from the system according to the number of super nodes indicated by the resource requirements. In addition, if the number of available processes of the at least one super node meets the required number of processes, the job is scheduled to the at least one super node.
  • Aggregation strategies include recommended strategies and mandatory strategies.
  • the recommended strategy means that if the scheduler cannot determine a supernode that meets resource requirements, it will automatically find other supernodes.
  • the mandatory policy means that if the scheduler cannot determine a supernode that meets resource requirements, it will indicate scheduling failure. Different applications can be configured with different policies.
  • the global memory pool composed of high-speed interconnected nodes within the super node can provide a high-performance distributed application running environment and achieve a simplified programming model through a single-node programming model. Therefore, in the process of job scheduling, the scheduler senses and aggregates policies through resource topology. This strategy is to schedule jobs to run inside the supernode as much as possible, making full use of the performance and simplified programming model inside the supernode. If the resources within the supernode cannot meet the requirements, the resources are scheduled to run on multiple supernodes, and messages are exchanged between the supernodes through MPI.
  • Step 530 The scheduler 130 controls at least one super node to process the pending job based on the global memory pool of the super node.
  • the scheduler 130 sends an execution instruction to at least one super node 110, instructing the at least one super node 110 to process the job based on the global memory pool of the super node.
  • Multiple nodes in the super node run distributed applications written based on the single-node programming model and process jobs based on the global memory pool.
  • Each of the two or more super nodes processes jobs based on the global memory pool, and the super nodes communicate based on the information transfer interface.
  • the super node 110 can receive the processing request job related to the distributed application sent by the scheduler 130, and convert the processing request into processing request data that complies with the operation rules of the memory operation instruction, so that the node 111 in the super node 110 can process the processing request according to the memory operation instruction.
  • the global memory pool performs memory operations that process requested data.
  • Step 550 Node 111 in super node 110 processes the job based on the global memory pool.
  • nodes in the super node run distributed applications written based on the single-node programming model, and access the global memory pool to process pending jobs based on memory synchronization access technology.
  • node 111 accesses the global memory pool through the load/store command, and can access the remote storage space in the global memory pool relative to the node processing the job or the local storage space of the node processing the job.
  • the distributed application running on the node does not know whether the node accesses remote storage space or local storage space.
  • Step 551 The node 111 reads the data to be processed and the application data.
  • To-be-processed data and application data can be stored in storage spaces such as global memory pools, storage media of storage nodes, or storage media of computing nodes.
  • the node 111 may read the data to be processed and the application data from the global memory pool, the storage medium of the storage node, or the storage medium of the computing node. For example, node 111 reads application data from local memory and reads pending data from the global memory pool.
  • the data to be processed may be objects that need to be processed according to instructions from the processing request data.
  • Application data includes application programs and application configuration data.
  • the processing request data is used to indicate the historical sales volume of the analyzed product to predict future sales volume.
  • the node 111 starts the big data application according to the big data application data, obtains the data to be processed, and processes the data to be processed.
  • the node 111 may start the application program based on the application data before obtaining the processing request data, or may start the application program based on the application data after obtaining the processing request data.
  • node 111 is configured with storage media characteristics for multiple types of storage media.
  • the user requirement indicates an access speed range or a specific access speed
  • the node 111 determines the storage medium that meets the user requirement from the global memory pool.
  • user requirements indicate the memory access speed.
  • Node 111 selects a storage medium that meets the memory access speed from the global memory pool, such as at least one of DRAM and SCM.
  • Example 1 Node 111 determines, based on user requirements and storage medium characteristics, to write the processed data into the storage space of the computing node indicated by the first address in the global memory pool.
  • the storage space of the computing node indicated by the first address meets the storage space indicated by the user requirement. Take speed. This will store the processed data to the entire
  • the local memory on the computing side in the local memory pool is used for local memory access, which effectively shortens the data processing time and improves the data transmission speed.
  • the node 111 is configured with priorities of multiple types of storage media determined based on characteristics of the storage media, and determines the storage media used to store the processed data based on the priorities of multiple types of storage media indicated by the storage policy. .
  • the priorities of multiple types of storage media may be determined based on the access speed of the storage media. For example, the access speed of memory is higher than the access speed of hard disk, and the access speed of hard disk is higher than the access speed of extended storage media.
  • the priority of multiple types of storage media can be determined based on the priority of the deployment mode. For example, the priority of local storage media is higher than that of extended storage media.
  • the priorities of multiple types of storage media may be comprehensively determined based on the characteristics of multiple types of storage media.
  • the priority of multiple types of storage media is determined based on the priority of the deployment mode (such as local storage media and extended storage media).
  • the priority of storage media in the same deployment mode can be determined based on the access speed of the storage media.
  • the storage policy and configuration information of multiple types of storage media may be pre-configured.
  • the storage strategy provided by the embodiment of the present application can be applied to at least one application supported by the above-mentioned data processing system 100, namely big data, database, high-performance computing, artificial intelligence, distributed storage, and cloud native.
  • the node 111 may use the storage strategy when selecting a storage medium for storing intermediate data when processing big data services or processing tasks in a big data service or processing system global tasks.
  • Step 610 Node 111 reads data from the global memory pool according to the first address and processes the data.
  • the computing node can read relevant data from the global memory pool. For example, the node 111 obtains the first address from the scheduler 130 and reads the required processed data from the global memory pool according to the first address.
  • Step 620 Node 111 reads data from the global memory pool according to the first address and writes the data to the storage node.
  • the data stored in the global memory pool needs to be persisted, that is, when the data stored in the global memory pool is moved to the storage node, the computing node can read the relevant data from the global memory pool and write it to the storage node.
  • the storage node writes the processed data to the storage medium of the storage node according to the memory operation instructions.
  • the computing node can also save data written to the storage node.
  • the computing node may also perform step 630, that is, prefetching data from the storage node according to the memory operation instruction and storing the data to the computing node, for example, storing the prefetched data into a local storage space in the global memory pool. Therefore, the computing nodes can obtain the data as quickly as possible and shorten the end-to-end data processing time.
  • the computing node can also perform step 640, that is, perform memory operations on data between the remote storage space and the local storage space based on the memory operation instructions according to the hot and cold characteristics of the data.
  • the remote storage space and the local storage space can be the storage space in the global memory pool or the storage space in the storage node.
  • Hot data refers to data that is accessed more frequently. Such as online data. Cold data refers to data that is accessed less frequently. Such as enterprise backup data, business and operation log data, call records and statistical data. Hot data has high access frequency requirements and high efficiency requirements, so cold data has low access frequency and slow efficiency requirements for nearby calculation and deployment, and can be deployed in a centralized manner.
  • the system and method provided by the embodiments of this application based on the simplified programming model and aggregation scheduling of super-node unified memory give full play to the super-node capabilities formed by the high-speed network of the super-node.
  • a single-node programming model is built on the global memory pool of the node, which simplifies the previous single-node programming model within the node and the programming model of MPI message communication between nodes.
  • most jobs are completed within the super-node based on a simplified programming model, maximizing the high efficiency of memory semantic data exchange. For very large applications, it is compatible with MPI message communication across super-nodes. This not only solves the simplified programming and performance advantages within the super node, but also solves the problem of large clusters coping with extremely large applications after the network scale is increased.
  • the super node can reach 100P level, that is, the super node includes 100 processor P levels, and each P has 100 level CPU cores. Therefore, jobs within 10,000 level threads can basically be run in the macro cabinet based on the super node.
  • the global memory pool is completed with the OpenMP programming model, and jobs within 10,000 levels often occupy more than 90% of the supercomputing center, so more than 90% of the jobs can be completed using this simplified programming model based on the global memory pool of the super node, which greatly It simplifies the programming complexity, coupled with the aggregation strategy, reduces the IO communication of the system and improves the efficiency of the entire machine.
  • the following example illustrates the data processing process based on the above data processing system.
  • Figure 7 taking the supercomputing OpenMP programming model and aggregation scheduling as an example, the OpenMP programming model of the global memory pool based on the supernode and the schematic diagram of the system full life cycle process of the aggregation strategy are illustrated.
  • Job submission stage 1 The user submits job 1 through the job submission node, and the job submission node sends the job submission request to the scheduler.
  • Job submission requests include resource requirements. For example, the resource requirements for Job 1 indicate that 512 threads are required to execute Job 1.
  • the scheduler will schedule job 1 to super node 1 according to the resource requirements of job 1 and start 512 threads. For example, the scheduler determines that there are 4 nodes in the super node, each node can provide 4 processors, each processor includes 32 processor cores, then the 4 nodes can provide 4nodes*4P*32cores, then the job will be allocated to the 4 nodes.
  • 3 Super node 1 builds a global memory pool.
  • the 4 nodes in super node 1 run application processing job 1 written based on the OpenMP programming model.
  • the 4 nodes exchange data based on the global memory pool to avoid data crossing nodes. Segmentation alleviates long-tail problems caused by unevenness between nodes and avoids MPI message communication.
  • Job submission requests include resource requirements.
  • the resource requirements for job 2 indicate that 16384 threads are required to execute job 2.
  • the scheduler schedules job 2 to super node 2 and super node 3 according to the resource requirements of job 2, and starts 16384 threads.
  • 6 Messages are exchanged between super node 2 and super node 3 based on MPI.
  • the node in super node 2 runs the application processing job 2 written based on the OpenMP programming model
  • the node in super node 3 runs the application processing job written based on the OpenMP programming model. 2.
  • the scheduler includes corresponding hardware structures and/or software modules for executing each function.
  • the units and method steps of each example described in conjunction with the embodiments disclosed in this application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a certain function is executed by hardware or computer software driving the hardware depends on the specific application scenarios and design constraints of the technical solution.
  • Figure 8 is a schematic structural diagram of a possible scheduling device provided by this embodiment. These scheduling devices can be used to implement the functions of the scheduler in the above method embodiments, and therefore can also achieve the beneficial effects of the above method embodiments.
  • the scheduling device may be the scheduler 130 as shown in Figure 5, or may be a module (such as a chip) applied to the server.
  • the scheduling device 800 includes a communication module 810 , a scheduling module 820 and a storage module 830 .
  • the scheduling device 800 is used to implement the functions of the scheduler 130 in the method embodiment shown in FIG. 5 .
  • the communication module 810 is used to obtain pending jobs, which are processing requests related to distributed applications. For example, the communication module 810 is used to perform step 510 in FIG. 5 .
  • the scheduling module 820 is configured to control at least one super node according to the resource requirements of the job to be processed, and process the job to be processed based on the global memory pool of the super node.
  • the global memory pool is composed of nodes within the super node.
  • the storage medium is composed of a unified addressing system Resources shared by nodes within a node. For example, the scheduling module 820 is used to execute step 520 and step 530 in FIG. 5 .
  • the storage module 830 is used to store the aggregation policy, so that the scheduling module 820 determines at least one super node to process the job.
  • the scheduling module 820 is specifically configured to determine at least one super node to process the pending job based on the aggregation policy, system resources and the resource requirements.
  • Figure 9 is a schematic structural diagram of a possible data processing device provided by this embodiment. These data processing devices can be used to implement the functions of the nodes in the super nodes in the above method embodiments, and therefore can also achieve the beneficial effects of the above method embodiments.
  • the data processing device may be the node 111 in the super node 110 as shown in Figure 5, or may be a module (such as a chip) applied to the server.
  • the data processing device 900 includes a communication module 910 , a data processing module 920 and a storage module 930 .
  • the data processing device 900 is used to implement the functions of the node 111 in the super node 110 in the method embodiment shown in FIG. 5 .
  • the communication module 910 is used to obtain pending jobs sent by the scheduler. For example, the communication module 910 is used to perform step 540 in FIG. 5 .
  • the data processing module 920 is used to run a distributed application written based on a single-node programming model to process the pending jobs based on the global memory pool. For example, the data processing module 920 is used to perform step 550 in FIG. 5 .
  • the storage module 930 is used to store policies so that the data processing module 920 determines the storage location to store data.
  • the data processing module 920 is specifically configured to access the global memory pool to process the pending jobs based on memory synchronization access technology.
  • the data processing module 920 is also configured to prefetch data from the storage node from the super node according to the prefetch policy, and store the data to the computing node of the super node.
  • the data processing module 920 is also used to perform data memory operations between the remote storage space and the local storage space according to the hot and cold characteristics of the data.
  • the scheduling device 800 and the data processing device 900 in the embodiment of the present application can be implemented by an application-specific integrated circuit (ASIC) or a programmable logic device (PLD).
  • ASIC application-specific integrated circuit
  • PLD programmable logic device
  • the above-mentioned PLD It can be a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a general array logic (GAL) or any combination thereof.
  • CPLD complex programmable logical device
  • FPGA field-programmable gate array
  • GAL general array logic
  • the respective modules thereof can also be software modules.
  • the scheduling device 800 and the data processing device 900 and their respective modules can also be software modules.
  • the scheduling device 800 and the data processing device 900 may correspond to performing the method described in the embodiment of the present application, and the above and other operations and/or functions of each unit in the scheduling device 800 and the data processing device 900 are respectively In order to implement the corresponding processes of each method in Figure 5 or Figure 6, for the sake of simplicity, they will not be described again here.
  • FIG. 10 is a schematic structural diagram of a computing device 1000 provided in this embodiment.
  • computing device 1000 includes a processor 1010, a bus 1020, a memory 1030, a communication interface 1040, and a memory unit 1050 (which may also be referred to as a main memory unit).
  • the processor 1010, the memory 1030, the memory unit 1050 and the communication interface 1040 are connected through the bus 1020.
  • the processor 1010 can be a CPU, and the processor 1010 can also be other general-purpose processors, digital signal processors (digital signal processing, DSP), ASICs, FPGAs or other programmable logic devices, Discrete gate or transistor logic devices, discrete hardware components, etc.
  • DSP digital signal processor
  • a general-purpose processor can be a microprocessor or any conventional processor, etc.
  • the processor can also be a graphics processing unit (GPU), a neural network processing unit (NPU), a microprocessor, an ASIC, or one or more integrations used to control the execution of the program of this application. circuit.
  • GPU graphics processing unit
  • NPU neural network processing unit
  • ASIC application specific integrated circuit
  • FIG. 10 only takes the computing device 1000 including a processor 1010 and a memory 1030 as an example.
  • the processor 1010 and the memory 1030 are respectively used to indicate a type of device or device.
  • the quantity of each type of device or equipment can be determined based on business needs.
  • the computing device 1000 may correspond to the scheduling device 800 and the data processing device 900 in this embodiment, and may correspond to the corresponding subject executing any method according to Figure 5 or Figure 6, and schedule
  • the above and other operations and/or functions of each module in the device 800 and the data processing device 900 are respectively intended to implement the corresponding processes of each method in Figure 5 or Figure 6. For the sake of simplicity, they will not be described again here.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

公开了数据处理方法、装置、设备和系统,涉及数据处理领域。方法包括调度器获取到待处理作业,根据待处理作业的资源需求控制至少一个超节点,基于超节点的全局内存池处理待处理作业。其中,待处理作业为与分布式应用相关的处理请求。如此,由于全局内存池为由超节点内节点的存储介质经过统一编址构成的超节点内节点共享的资源。超节点内通过高速互连技术进行连接的节点共享访问该全局内存池,对待处理作业进行处理,从而避免超节点内的节点间基于MPI进行通信,简化了节点运行的应用的编程模型,有效地减少了节点间的I/O通信,充分发挥超节点的性能。从而有效地缩短了数据处理时长以及降低系统能耗,提升系统性能。

Description

数据处理方法、装置、设备和系统
本申请要求于2022年06月10日提交中国专利局、申请号为202210655939.6、发明名称为“一种秘钥处理方法、装置和安全系统”的中国专利申请的优先权,以及于2022年8月19日提交的申请号为202211001039.6、发明名称为“数据处理方法、装置、设备和系统”的中国专利申请的优先权,前述两件专利申请的全部内容通过引用结合在本申请中。
技术领域
本申请涉及数据处理领域,尤其涉及一种数据处理方法、装置、设备和系统。
背景技术
目前,将分布式应用(如:大数据、数据库)的作业划分为多个任务,由多个计算节点进行通信执行多个任务。随着分布式集群中计算节点的数量大量增加,计算节点间会产生大量的输入/输出(Input/Output,I/O)通信,导致数据处理时长较长以及系统能耗较高,系统性能成为了瓶颈。
发明内容
本申请提供了数据处理方法、装置、设备和系统,由此缩短数据处理时长,降低系统能耗。
第一方面,提供了一种数据处理方法。方法包括:调度器获取到待处理作业,根据待处理作业的资源需求控制至少一个超节点,基于超节点的全局内存池处理待处理作业。其中,待处理作业为与分布式应用相关的处理请求。
如此,由于全局内存池为由超节点内节点的存储介质经过统一编址构成的超节点内节点共享的资源。超节点内通过高速互连技术进行连接的节点共享访问该全局内存池,对待处理作业进行处理,从而避免超节点内的节点间基于信息传递接口(Message Passing Interface,MPI)进行通信,简化了节点运行的应用的编程模型,有效地减少了节点间的I/O通信,充分发挥超节点的性能。从而有效地缩短了数据处理时长以及降低系统能耗,提升系统性能。
其中,高速互连技术包括计算快速链接(Compute Express Link,CXL)和无限带宽技术(infiniband,IB)中至少一种。节点间的时延小于1微秒,带宽可达几百每秒吉字节(Gigabyte second,GB/S)。
在一种可能的实现方式中,基于超节点的全局内存池处理待处理作业,包括:超节点中多个节点运行基于单节点编程模型编写的分布式应用基于全局内存池处理待处理作业。
例如,超节点中多个节点运行基于单节点编程模型编写的分布式应用基于全局内存池处理作业,包括:超节点中多个节点运行基于单节点编程模型编写的分布式应用,基于内存同步访问技术访问全局内存池处理待处理作业。
在另一种可能的实现方式中,控制至少一个超节点基于超节点的全局内存池处理待处理作业,包括:控制两个以上超节点基于超节点的全局内存池处理待处理作业,两个以上超节点基于信息传递接口进行通信。从而,以便于超节点之间进行通信。
在另一种可能的实现方式中,调度器根据待处理作业的资源需求控制至少一个超节点,包括:基于聚合策略、系统资源和资源需求确定处理待处理作业的至少一个超节点。调度器尽可能将作业调度到一个超节点内,由超节点内节点对作业进行分布式处理。避免了超节点内的节点基于MPI通信进行跨节点的数据切分,数据切分不均匀导致数据处理时长延迟的问题。从而缩短了数据处理时长以及降低系统能耗,提升系统性能。
在另一种可能的实现方式中,资源需求用于指示处理待处理作业所需的进程数和超节点数量。从而,以便于调度器根据处理待处理作业的所需的进程数确定超节点的数量,尽可能将作业调度到一个超节点内,由超节点内节点对作业进行分布式处理,缩短了数据处理时长以及降低系统能耗,提升系统性能。以及调度器根据超节点数量确定处理待处理作业的超节点。
其中,资源包括计算资源和存储资源。以便于超节点内节点基于计算资源处理待处理作业,基于存储资源存储处理待处理作业过程中的数据。
在另一种可能的实现方式中,全局内存池的存储介质包括动态随机存取存储器(Dynamic Random Access Memory,DRAM)和存储级内存(storage-class-memory,SCM)。如此,在系统中引入包含多种存储介质的全局内存池,使得存储数据的存储介质具有更多的可能性,选择匹配的存储介质存储数据,实现 能够快速地对系统进行读写操作,提升了数据传输速度,缩短了数据处理时长。
在另一种可能的实现方式中,方法还包括:超节点中计算节点根据预取策略从超节点中存储节点预取数据,存储到超节点的计算节点的本地存储空间。从而,以便于计算节点能够快速地获取到数据,缩短了数据处理时长。
在另一种可能的实现方式中,方法还包括:超节点中计算节点根据数据冷热特性,在远端存储空间与本地存储空间之间进行数据的内存操作。冷数据是指访问频次较低的数据。将冷数据从本地存储空间搬移到远端存储空间,释放本地存储空间,提升数据的读写速率,以及本地存储空间的利用率。热数据是指访问频次较高的数据。将热数据从远端存储空间搬移到本地存储空间,使计算节点尽快地获取到所需的数据,缩短了数据处理时长,减少频繁读写数据所占用的计算资源。本地存储空间和远端存储空间可以是全局内存池中的存储空间。
第二方面,提供了一种调度装置,所述装置包括用于执行第一方面或第一方面任一种可能设计中的调度器执行的方法的各个模块。
第三方面,提供了一种数据处理装置,所述装置包括用于执行第一方面或第一方面任一种可能设计中的超节点中节点执行的方法的各个模块。
第四方面,提供一种调度器,该调度器包括至少一个处理器和存储器,存储器用于存储一组计算机指令;当处理器作为第一方面或第一方面任一种可能实现方式中的调度器执行所述一组计算机指令时,执行第一方面或第一方面任一种可能实现方式中的数据处理方法的操作步骤。
第五方面,提供一种计算设备,该计算设备包括通过高速互连技术进行连接的节点和如第四方面所述的调度器,所述调度器用于执行第一方面或第一方面任一种可能实现方式中的数据处理方法的操作步骤。
第六方面,提供一种系统,该系统包括多个超节点和调度器,调度器用于根据待处理作业的资源需求控制至少一个超节点,基于超节点的全局内存池处理待处理作业,全局内存池为由超节点内节点的存储介质经过统一编址构成的超节点内节点共享的资源,超节点内的节点通过高速互连技术进行连接,待处理作业为与分布式应用相关的处理请求;超节点中多个节点用于运行基于单节点编程模型编写的分布式应用基于全局内存池处理待处理作业;两个以上超节点用于基于信息传递接口进行通信。
第七方面,提供一种计算机可读存储介质,包括:计算机软件指令;当计算机软件指令在计算设备中运行时,使得计算设备执行如第一方面或第一方面任意一种可能的实现方式中所述方法的操作步骤。
第八方面,提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算设备执行如第一方面或第一方面任意一种可能的实现方式中所述方法的操作步骤。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1为本申请实施例提供的一种数据处理系统的架构示意图;
图2为本申请实施例提供的一种宏机柜互连的示意图;
图3为本申请实施例提供的一种全局内存池的部署场景示意图;
图4为本申请实施例提供的一种三层结构的存储系统示意图;
图5为本申请实施例提供的一种数据处理方法的过程示意图;
图6为本申请实施例提供的另一种数据处理方法的过程示意图;
图7为本申请实施例提供的一种数据处理的过程示意图;
图8为本申请实施例提供的一种调度装置的结构示意图;
图9为本申请实施例提供的一种数据处理装置的结构示意图;
图10为本申请实施例提供的一种计算设备的结构示意图。
具体实施方式
为了便于描述,首先对本申请涉及的术语进行简单介绍。
超节点(Super Node),指通过高带宽、低时延的片间互连总线和交换机将多个节点互连成一个高性能集群。超节点的规模大于缓存一致非统一内存寻址(Cache-Coherent Non Uniform Memory Access,CC-NUMA)架构下的节点规模,超节点内节点的互连带宽大于以太网络互连带宽。
编程模型(Programming Model),指对应用进行程序设计的架构。比如,HPC领域的共享存储并行编程(Open Multi-Processing,OpenMP)+MPI模型。
高性能计算(High Performance Computing,HPC)集群,指一个计算机集群系统。HPC集群包含利用各种互联技术连接在一起的多个计算机。互联技术例如可以是无限带宽技术(infiniband,IB)、基于聚 合以太网的远程直接内存访问(Remote Direct Memory Access over Converged Ethernet,RoCE)或传输控制协议(Transmission Control Protocol,TCP)。HPC提供了超高浮点计算能力,可用于解决计算密集型和海量数据处理等业务的计算需求。连接在一起的多个计算机的综合计算能力可以来处理大型计算问题。例如,科学研究、气象预报、金融、仿真实验、生物制药、基因测序和图像处理等行业涉及的利用HPC集群来解决的大型计算问题和计算需求。利用HPC集群处理大型计算问题可以有效地缩短处理数据的计算时间,以及提高计算精度。
聚合调度(Affinity Scheduling),指调度器将作业尽量调度到较少且距离较近的节点,实现作业获得计算资源聚合的目的。
信息传递接口(Message Passing Interface,MPI),指集群中计算节点间通信常用的并行通信协议。可理解的,计算节点的进程间利用MPI进行数据交换。
内存操作指令,可以称为内存语义或内存操作函数。内存操作指令包括内存分配(malloc)、内存设置(memset)、内存复制(memcpy)、内存移动(memmove)、内存释放(memory release)和内存比较(memcmp)中至少一种。
内存分配用于支持应用程序运行分配一段内存。
内存设置用于设置全局内存池的数据模式,例如初始化。
内存复制用于将源地址(source)指示的存储空间存储的数据复制到目的地址(destination)指示的存储空间。
内存移动用于将源地址(source)指示的存储空间存储的数据复制到目的地址(destination)指示的存储空间,并删除源地址(source)指示的存储空间存储的数据。
内存比较用于比较两个存储空间存储的数据是否相等。
内存释放用于释放内存中存储的数据,以提高系统内存资源的利用率,进而提升系统性能。
为了解决超节点中节点处理作业的方式产生大量的I/O通信,无法充分发挥超节点的性能,导致数据处理时长较长以及系统能耗较高的问题,本申请提供一种基于超节点全局内存池的数据处理方法,即对超节点的存储介质经过统一编址构成全局内存池,超节点内节点共享访问该全局内存池对作业进行处理,从而避免超节点内的节点间基于MPI进行通信,简化了节点运行的应用的编程模型,有效地减少了节点间的I/O通信,充分发挥超节点的性能。另外,避免了超节点内的节点基于MPI通信进行跨节点的数据切分,数据切分不均匀导致数据处理时长延迟的问题。而且,调度器尽可能将作业调度到一个超节点内,由超节点内节点对作业进行分布式处理。从而,有效地缩短了数据处理时长以及降低系统能耗,提升系统性能。
图1为本申请实施例提供的一种数据处理系统的架构示意图。如图1所示,数据处理系统100是一种提供高性能计算的实体。数据处理系统100包括多个超节点110。
超节点110包括多个节点111。节点111可以是处理器、服务器、台式计算机、存储阵列的控制器和存储器等。处理器可以是中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、数据处理单元(data processing unit,DPU)、神经处理单元(neural processing unit,NPU)和嵌入式神经网络处理器(neural-network processing unit,NPU)等用于数据处理的XPU。例如,超节点110可以包括计算节点和存储节点。
超节点110中多个节点111基于具有高带宽、低时延的高速互连技术连接。示例地,如图1所示,节点111基于高速互连技术通过交换机112进行连接。节点111之间的带宽可达900吉字节/秒(Gigabyte/second,GB/S)或1太字节/秒(Terabyte/second,TB/S)。时延为1微秒(microsecond,μs)。
多个超节点110通过数据中心网络120进行连接。数据中心网络120包括多个核心交换机121和多个汇聚交换机122。数据中心网络120可以组成一个规模域。多个超节点110可以组成一个性能域。
两个以上超节点110可以组成宏机柜。数据处理系统100包括的多个超节点110可以组成多个宏机柜。宏机柜之间也可以基于数据中心网络120连接。示例地,如图2所示,计算机柜A和计算机柜B包括多个超节点,计算机柜A和计算机柜B之间通过网卡互联。计算机柜A和计算机柜B之间基于控制面网络进行控制面数据传输。计算机柜A和计算机柜B之间基于数据面网络进行数据面数据传输。计算机柜A和计算机柜B之间的控制面传输速率可以为56G*8,计算机柜A和计算机柜B之间的数据面传输速率可以为56G*32。
另外,上述超节点内节点的高速互连也作为控制面之外用于传输数据的网络平面,基于该网络平面可以构建全局内存池,实现跨超节点内节点(简称:跨节点)的内存语义访问。
如图1所示,数据处理系统100还包括调度器130。调度器130用于根据作业的资源需求控制至少一 个超节点110,指示至少一个超节点110基于超节点110的全局内存池113处理作业。
超节点110内节点111运行基于单节点编程模型编写的分布式应用基于全局内存池113处理作业。例如,在HPC领域,超节点110内节点111运行基于OpenMP模型114编写的分布式应用基于全局内存池113处理业务请求。超节点110之间基于MPI进行通信。
在一些实施例中,调度器130基于聚合策略尽量将作业调度到单一宏机柜或者超节点内部完成。尽量避免超节点间基于MPI进行通信,简化节点运行的应用的编程模型,有效地减少了节点间的I/O通信,充分发挥超节点的性能。调度器和计算节点可以是独立的物理设备,则调度器也可称为控制节点、控制设备或命名节点。计算节点可以称为计算设备或数据节点。
在另一些实施例中,调度器130可以接收用户操作客户端发送的处理请求,对处理请求指示的作业进行调度。客户端可以是指计算机,也可称为工作站(workstation)。
该数据处理系统100支持运行大数据、数据库、高性能计算、人工智能、分布式存储和云原生等应用。本申请实施例中业务数据包括大数据、数据库、高性能计算、人工智能(Artificial Intelligence,AI)、分布式存储和云原生等应用的数据。
本申请提供的全局内存池可以包括超节点中计算节点的存储介质和存储节点的存储介质。计算节点的存储介质包括计算节点内的本地存储介质和计算节点连接的扩展存储介质中至少一种。存储节点的存储介质包括存储节点内的本地存储介质和存储节点连接的扩展存储介质中至少一种。
例如,全局内存池包括计算节点内的本地存储介质和存储节点内的本地存储介质。
又如,全局内存池包括计算节点内的本地存储介质、计算节点连接的扩展存储介质,以及存储节点内的本地存储介质和存储节点连接的扩展存储介质中任意一种。
又如,全局内存池包括计算节点内的本地存储介质、计算节点连接的扩展存储介质、存储节点内的本地存储介质和存储节点连接的扩展存储介质。
示例地,如图3所示,为本申请实施例提供的一种全局内存池的部署场景示意图。全局内存池300包括N个计算节点中每个计算节点内的存储介质310、N个计算节点中每个计算节点连接的扩展存储介质320、M个存储节点中每个存储节点内的存储介质330和M个存储节点中每个存储节点连接的扩展存储介质340。
应理解,全局内存池的存储容量可以包括计算节点的存储介质中的部分存储容量和存储节点的存储介质中的部分存储容量。全局内存池是经过统一编址的超节点内计算节点和存储节点均可以访问的存储介质。全局内存池的存储容量可以通过大内存、分布式数据结构、数据缓存、元数据等内存接口供计算节点或存储节点使用。计算节点运行应用程序可以使用这些内存接口对全局内存池进行内存操作。如此,基于超节点内高速互连的节点构建的经过统一编址构成全局内存池,超节点内节点共享访问该全局内存池对作业进行处理,从而避免超节点中的节点间基于MPI进行通信,简化了节点运行的应用的编程模型,有效地减少了节点间的I/O通信,充分发挥超节点的性能。另外,避免了节点间基于MPI通信进行跨节点的数据切分,数据切分不均匀导致数据处理时长延迟的问题。
上述是以计算节点内的存储介质和存储节点内的存储介质构建全局内存池为例进行说明。全局内存池的部署方式可以灵活多变,本申请实施例不予限定。例如,全局内存池由存储节点的存储介质构建。又如,全局内存池由计算节点的存储介质构建。使用单独的存储节点的存储介质或计算节点的存储介质构建全局内存池可以减少存储侧的存储资源的占用,以及提供更灵活的扩展方案。
存储器是用于存储程序和各种数据的记忆器件。存储器的容量越大,存取速度越慢。反之,存储器的容量越小,存取速度越快。存取速度是指对存储器写入数据或读取数据时的数据传输速度。存取速度也可以称为读写速度。依据存储容量和存取速度可以将存储器划分为不同层级。
示例地,图4为本申请实施例提供的一种三层结构的存储系统示意图。从第一层至第三层,存储容量逐级增加,存取速度逐级降低,成本逐级减少。如图4所示,第一层级包含位于中央处理器(central processing unit,CPU)内的寄存器411、一级缓存412、二级缓存413和三级缓存414。第二层级包含的存储器可以作为计算机系统的主存储器。例如,动态随机存取存储器(Dynamic Random Access Memory,DRAM)421,双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)422,存储级内存(storage-class-memory,SCM)423。主存储器可以简称为主存或内存,即与CPU交换信息的存储器。第三层级包含的存储器可以作为计算机系统的辅助存储器。例如,网络存储器431,固态驱动器(Solid State Disk或Solid State Drive,SSD)432,硬盘驱动器(Hard Disk Drive,HDD)433。辅助存储器可以简称为辅存或外存。相对主存,外存的存储容量大,存取速度慢。可见,距离CPU越近的存储器,容量越小、 存取速度越快、带宽越大、延迟越低。因此,第三层级包含的存储器存储CPU不经常访问的数据,提高数据的可靠性。第二层级包含的存储器可以作为缓存设备,用于存储CPU经常访问的数据,显著地改善系统的访问性能。
依据存储介质的类型划分,本申请实施例提供的全局内存池的存储介质包括DRAM、SSD和SCM。
在一些实施例中,可以根据存储介质的类型设置全局内存池,即利用一种类型的存储介质构建一种内存池,不同类型的存储介质构建不同类型的全局内存池,使全局内存池应用于不同的场景,计算节点根据应用的访问特征选择存储介质,增强了用户对系统控制权限,提升了用户的系统体验又扩展了系统适用的应用场景。例如,将计算节点中的DRAM和存储节点中的DRAM进行统一编址构成DRAM内存池。DRAM内存池用于对访问性能要求高,数据容量适中,无数据持久化诉求的应用场景。又如,将计算节点中的SCM和存储节点中的SCM进行统一编址构成SCM内存池。SCM内存池则用于对访问性能不敏感,数据容量大,对数据持久化有诉求的应用场景。
不同的存储介质具有不同的存储介质特征。存储介质特征包括写时延、读时延、总存储容量、可用存储容量、存取速度、CPU消耗、能耗比和可靠性中至少一个。写时延是指节点将数据写入存储介质的时延。读时延是指节点从存储介质读取数据的时延。存储容量是指存储介质的可存储数据的总存储容量。可用存储容量是指总存储容量减去已使用的存储容量的剩余存储容量。存取速度是指节点对存储介质进行读写操作的速度。CPU消耗是指节点向存储介质写入数据或从存储介质读取数据使用节点的CPU的占用率。能耗比是指单位时间内所消耗的能量(如电能)。可靠性是指存储介质存储数据的持久程度。
接下来,结合附图对本申请实施例提供的数据处理方法的实施方式进行详细描述。
图5为本申请实施例提供的一种数据处理方法的流程示意图。在这里以调度器130和超节点110为例进行说明。如图5所示,该方法包括以下步骤。
步骤510、调度器130获取待处理的作业。
客户端响应用户操作,向调度器130发送与分布式应用相关的处理请求的作业。调度器130可以通过数据中心网络120接收客户端发送的作业。作业可以包括作业标识和业务数据。作业标识用于唯一指示一个作业。业务数据可以是计算节点进行数据分布式处理的数据或指示待处理数据的标识数据。
用户操作可以是指用户操作用户界面提交分布式应用业务的操作。例如,用户操作可以是指用户操作大数据用户界面提交大数据业务的操作。大数据业务包括数据分析业务、数据查询业务和数据修改业务等。例如,大数据业务是指分析客户的个人数据和购买行为数据来描绘用户画像对客户进行分类,使得可以向特定客户推荐针对性的产品或优惠产品,提升客户满意度,稳固客户关系等。又如,大数据业务是指分析产品的历史销售量预测未来的销售量,发现销售量下降原因或销售量上升原因,推荐提升销售量的建设性建议。
步骤520、调度器130确定系统中的资源满足待处理的作业的资源需求。
调度器130可以监控系统中超节点的资源,资源包括计算资源和存储资源,以便于调度器130基于系统资源调度作业。系统中超节点可以周期性地向调度器130上报可用资源。
用户提交的作业还指示资源需求。调度器130基于聚合策略、资源需求和系统资源确定处理作业的至少一个超节点。如果系统中一个超节点的资源满足资源需求,将作业调度到该一个超节点上。如果系统中一个超节点的资源不满足资源需求,将作业调度到两个超节点上。如果系统中的超节点的资源均不满足资源需求,则导致用户提交的作业失败,调度器130可以向客户端发送提交失败响应。
示例地,资源需求指示了处理作业所需的进程数。调度器130从多个超节点中确定满足进程数的超节点。如果系统中一个超节点的可用进程数满足所需的进程数,将作业调度到该一个超节点上。如果系统中一个超节点的可用进程数不满足所需的进程数,两个超节点的可用进程数满足所需的进程数,将作业调度到两个超节点上。
在一些实施例中,资源需求还可以指示超节点数量。调度器130根据资源需求指示的超节点数量从系统中确定至少一个超节点。另外,该至少一个超节点的可用进程数满足所需的进程数,将作业调度到该至少一个超节点。
聚合策略包括推荐策略和强制策略。推荐策略指如果调度器无法确定到满足资源需求的超节点,则自动寻找其他超节点。强制策略指如果调度器无法确定到满足资源需求的超节点,则指示调度失败。不同的应用可以配置不同的策略。
如此,由超节点内高速互连的节点构成的全局内存池化,可提供高性能的分布式应用运行环境,并可通过单节点编程模型实现简化的编程模型。因此在作业调度的过程中,调度器通过资源拓扑感知和聚合策 略,将作业尽可能地调度到超节点内部运行,充分利用超节点内部的性能和简化的编程模型。如果超节点内部的资源无法满足要求时,将资源调度到多个超节点运行,超节点间通过MPI实现消息交换。
步骤530、调度器130控制至少一个超节点基于超节点的全局内存池处理待处理的作业。
调度器130向至少一个超节点110发送执行指示,指示至少一个超节点110基于超节点的全局内存池处理作业。超节点中多个节点运行基于单节点编程模型编写的分布式应用基于全局内存池处理作业。两个以上超节点中每个超节点基于全局内存池处理作业,超节点之间基于信息传递接口进行通信。
步骤540、超节点110获取处理请求数据。
超节点110可以接收调度器130发送的与分布式应用相关的处理请求的作业,将处理请求转换为符合内存操作指令操作规则的处理请求数据,以便于超节点110中节点111根据内存操作指令对全局内存池进行处理请求数据的内存操作。
步骤550、超节点110中节点111基于全局内存池对作业进行处理。
超节点中多个节点运行基于单节点编程模型编写的分布式应用,基于内存同步访问技术访问全局内存池处理待处理的作业。例如,节点111通过load/store命令访问全局内存池,可以访问全局内存池中相对处理作业的节点的远端存储空间或者处理作业的节点的本地存储空间。节点运行的分布式应用不感知节点访问的是远端存储空间还是本地存储空间。
在一些实施例中,超节点110中节点111根据内存操作指令对全局内存池进行处理请求数据的内存操作。
处理请求数据用于指示对待处理数据进行的操作。例如,处理请求数据指示获取产品A的第一季度销售量。待处理数据可以包括全年销售量。步骤550所包括的具体操作过程如下步骤551至步骤553的阐述。
步骤551、节点111读取待处理数据和应用数据。
待处理数据和应用数据可以存储在全局内存池、存储节点的存储介质或计算节点的存储介质等存储空间中。节点111可以从全局内存池、存储节点的存储介质或计算节点的存储介质读取待处理数据和应用数据。例如,节点111从本地内存中读取应用数据,从全局内存池中读取待处理数据。待处理数据可以是根据处理请求数据的指示需要处理的对象。应用数据包括应用程序和应用配置数据。
步骤552、节点111根据应用数据启动应用程序,根据处理请求数据使用内存操作指令对待处理数据进行处理得到处理后数据。
例如,假设应用数据包括大数据应用程序,处理请求数据用于指示分析产品的历史销售量预测未来的销售量。节点111根据大数据应用数据启动大数据应用,获取待处理数据并对待处理数据进行处理。
节点111可以在获取处理请求数据之前,根据应用数据启动应用程序,也可以在获取处理请求数据之后,根据应用数据启动应用程序。
如此,超节点内部的全局内存池提供了统一的内存地址空间,可用于单节点编程模型,使用单节点编程模型实现利用超节点内部的资源进行多线程的应用并行编程与运行,由于超节点可以提供万级的处理器,因此绝大部分的并行应用可以在超节点内部完成编程和运行。基于内存操作指令的数据处理可以应用于数据处理的全生命周期,使用内存操作指令进行数据处理,基于全局内存池进行数据交换,有效地减少了节点间的I/O通信,充分发挥超节点的性能。从而有效地缩短了数据处理时长以及降低系统能耗,提升系统性能。
步骤553、节点111将处理后数据写入全局内存池中第一地址指示的存储空间。
节点111根据存储策略自动地从全局内存池中选择用于存储处理后数据的存储介质。存储策略包括应用的访问特征和全局内存池中存储介质特征等。第一地址指示的存储空间包括全局内存池的存储空间,例如计算节点的存储介质提供的存储空间和存储节点的存储介质提供的存储空间中一个。
在一些实施例中,节点111根据用户需求和存储介质特征确定将处理后数据写入全局内存池中第一地址指示的存储空间。用户需求用于指示与存储介质特征相关的需求。处理请求数据包括用户需求。存储介质特征包括写时延、读时延、总存储容量、可用存储容量、存取速度、CPU消耗、能耗比和可靠性中至少一个。
例如,节点111配置有多种类型存储介质的存储介质特征。用户需求指示存取速度范围或者一个具体的存取速度,节点111从全局内存池中确定满足用户需求的存储介质。比如用户需求指示内存的存取速度。节点111从全局内存池中选取符合内存的存取速度的存储介质,比如DRAM和SCM中至少一种。示例一,节点111根据用户需求和存储介质特征确定将处理后数据写入全局内存池中第一地址指示的计算节点的存储空间,第一地址指示的计算节点的存储空间满足用户需求指示的存取速度。从而将处理后数据存储到全 局内存池中计算侧的本地内存,以便进行本地内存访问,有效地缩短了数据处理时长,提升了数据传输速度。
又如,节点111配置有存储介质和客户等级的关联关系。用户需求指示第一客户等级。节点111根据第一客户等级从关联关系中确定与第一客户等级关联的存储介质,确定与第一客户等级关联的存储介质用于存储处理后数据。示例二,节点111根据用户需求和存储介质特征确定将处理后数据写入全局内存池中第一地址指示的存储节点的存储空间,第一地址指示的计算节点的存储空间满足用户需求指示的第一客户等级。
如此,节点111从全局内存池中选择存储处理后数据的存储介质时,基于用户对存取速度或可靠性等存储介质特征的用户需求,动态地选取满足用户需求的存储介质,确保数据处理的性能和可靠性的场景需求。
在另一些实施例中,节点111配置有依据存储介质特征确定的多种类型存储介质的优先级,根据存储策略指示的多种类型存储介质的优先级,确定用于存储处理后数据的存储介质。其中,多种类型存储介质的优先级可以是依据存储介质的存取速度确定的。比如内存的存取速度高于硬盘的存取速度,硬盘的存取速度高于扩展存储介质的存取速度。多种类型存储介质的优先级可以是依据部署模式的优先级确定的。比如本地存储介质的优先级高于扩展存储介质的优先级。多种类型存储介质的优先级可以是依据多种类型存储介质特征综合确定的。多种类型存储介质的优先级是依据部署模式(如:本地存储介质和扩展存储介质)的优先级确定的。对于同一种部署模式下的存储介质的优先级可以依据存储介质的存取速度确定的。
可选地,节点111还可以从满足用户需求的多种类型存储介质中选取可用存储容量大于阈值的存储介质作为存储处理后数据的存储介质。
节点111根据多种类型存储介质的优先级,从最高优先级的存储介质开始,判断最高优先级的存储介质的可用存储容量是否大于阈值,若最高优先级的存储介质的可用存储容量大于阈值,表示最高优先级的存储介质有多余的存储空间存储处理后数据,则选取该最高优先级的存储介质存储处理后数据;若最高优先级的存储介质的可用存储容量小于或等于阈值,表示最高优先级的存储介质没有多余的存储空间存储处理后数据,则判断次高优先级的存储介质的可用存储容量是否大于阈值,依次遍历多种类型存储介质,最终从多种类型存储介质中确定存储处理后数据的存储介质。
需要说明的是,在实际应用中,可以根据业务需求、场景需求或用户需求等自行设置存储策略,上述对存储策略的阐述只是举例说明。例如,存储策略还可以是指数据本地化偏好,即优先将处理后数据存储到全局内存池中本地存储介质。又如,存储策略还可以是指按照应用对性能和成本的权衡选择性能优先、存储容量优先、成本优先等。
在节点111使用存储策略选取存储处理后数据的存储介质之前,即执行步骤553之前,可以预先配置存储策略和多种类型存储介质的配置信息。
本申请实施例提供的存储策略可以适用于上述数据处理系统100支持的至少一个应用,即大数据、数据库、高性能计算、人工智能、分布式存储和云原生。例如节点111可以在处理大数据业务或处理大数据业务中任务或处理系统全局的任务中,选取用于存储中间数据的存储介质时使用存储策略。
本申请实施例中节点111根据处理请求数据对全局内存池进行内存操作后,即将处理后数据写入全局内存池或从全局内存池读取数据后,表示本次处理请求结束。全局内存池提供了将数据异步写入到存储节点的持久化和容量层,以及从持久化和容量层预取和缓存的能力。随后,节点111还可以从全局内存池读取处理后数据。关于对全局内存池存储的数据的数据处理操作如下图6的阐述。图6为本申请实施例提供的另一种数据处理方法的流程示意图。
步骤610、节点111根据第一地址从全局内存池读取数据,对数据进行处理。
在计算节点执行任务需要全局内存池存储的数据时,计算节点可以从全局内存池读取相关数据。例如,节点111从调度器130获取第一地址,根据第一地址从全局内存池读取所需的处理后数据。
步骤620、节点111根据第一地址从全局内存池读取数据,将数据写入存储节点。
在全局内存池存储的数据需要持久化,即将全局内存池存储的数据搬移到存储节点时,计算节点可以从全局内存池读取相关数据,写入存储节点。存储节点根据内存操作指令将处理后数据写入存储节点的存储介质。可选地,计算节点还可以保存写入存储节点的数据。
在另一些实施例中,计算节点还可以执行步骤630,即根据内存操作指令从存储节点预取数据,存储到计算节点,例如,将预取数据存储到全局内存池中的本地存储空间。从而,以便于计算节点能够尽快地获取到数据,缩短了端到端的数据处理时长。
计算节点还可以执行步骤640,即根据数据冷热特性,基于内存操作指令在远端存储空间与本地存储空间之间进行数据的内存操作。远端存储空间与本地存储空间可以是全局内存池中的存储空间,也可以是存储节点中的存储空间。
热数据是指访问频次比较多的数据。如在线类数据。冷数据是指访问频次比较少的数据。如企业备份数据、业务与操作日志数据、话单与统计数据。热数据因为访问频次需求大,效率要求高,所以就近计算和部署冷数据访问频次低,效率要求慢,可以做集中化部署。
本申请实施例提供的基于超节点统一内存简化编程模型与聚合调度的系统与方法,充分发挥超节点的高速网络形成的超节点能力,基于超节点构建的统一内存语义的全局内存池,在超节点的全局内存池之上构建单节点编程模型,简化以往的节点内单节点编程模型和节点间MPI消息通信的编程模型。在集群整体层面,通过聚合调度使得大多数作业在超节点内基于简化编程模型完成,最大化的发挥内存语义数据交换的高效率,对于超大应用兼容MPI跨超节点的消息通信。从而既解决了超节点内部的简化编程与性能优势,又解决了组网规模提升后的大集群应对超大应用问题。
在实际应用中,超节点可达100P级别,即超节点包括100个处理器P级别,每P具有100级别的CPU核,所以万级线程以内的作业基本都可以在宏机柜内基于超节点的全局内存池、以OpenMP编程模型完成,而万级以内的作业往往占据超算中心90%以上,所以90%以上的作业都可以使用这种基于超节点的全局内存池的简化编程模型完成,大大简化了编程复杂度,再加上聚合策略,减少了系统的IO通信,提高整机的使用效率。
下面举例说明基于上述数据处理系统的数据处理的过程。如图7所示,以超算的OpenMP编程模型以及聚合调度为例,说明基于超节点的全局内存池的OpenMP编程模型,以及聚合策略的系统全生命周期流程的示意图。
1)提交作业阶段:①用户通过作业提交节点提交作业1,作业提交节点将作业提交请求发送至调度器。作业提交请求包括资源需求。例如,作业1的资源需求指示需要512个线程执行作业1。
2)调度阶段:②若超节点1可以提供512个线程,调度器根据作业1的资源需求,将该作业1调度到超节点1,并启动512个线程。例如,调度器确定超节点中4个节点,每个节点可以提供4个处理器,每个处理器包括32个处理器核,则4个节点可以提供4nodes*4P*32cores,则将该作业分配到该4个节点。
3)处理阶段:③超节点1构建了全局内存池,超节点1中的4个节点运行基于OpenMP编程模型编写的应用处理作业1,4个节点基于全局内存池交换数据,从而避免数据跨节点切分,缓解节点间不均匀引起的长尾问题,避免MPI消息通信。
又如,④用户通过作业提交节点提交作业2,作业提交节点将作业提交请求发送至调度器。作业提交请求包括资源需求。例如,作业2的资源需求指示需要16384个线程执行作业2。若超节点2和超节点3可以提供16384个线程,⑤调度器根据作业2的资源需求,将该作业2调度到超节点2和超节点3,并启动16384个线程。⑥超节点2和超节点3之间基于MPI进行消息交换,超节点2中的节点运行基于OpenMP编程模型编写的应用处理作业2,超节点3中的节点运行基于OpenMP编程模型编写的应用处理作业2。
可以理解的是,为了实现上述实施例中的功能,调度器包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请中所公开的实施例描述的各示例的单元及方法步骤,本申请能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。
上文中结合图1至图7,详细描述了根据本实施例所提供的数据处理方法,下面将结合图8,描述根据本实施例所提供的调度装置和数据处理装置。
图8为本实施例提供的可能的调度装置的结构示意图。这些调度装置可以用于实现上述方法实施例中调度器的功能,因此也能实现上述方法实施例所具备的有益效果。在本实施例中,该调度装置可以是如图5所示的调度器130,还可以是应用于服务器的模块(如芯片)。
如图8所示,调度装置800包括通信模块810、调度模块820和存储模块830。调度装置800用于实现上述图5中所示的方法实施例中调度器130的功能。
通信模块810用于获取待处理作业,所述待处理作业为与分布式应用相关的处理请求。例如,通信模块810用于执行图5中步骤510。
调度模块820,用于根据所述待处理作业的资源需求控制至少一个超节点,基于所述超节点的全局内存池处理所述待处理作业,所述全局内存池为由所述超节点内节点的存储介质经过统一编址构成的所述超 节点内节点共享的资源。例如,调度模块820用于执行图5中步骤520和步骤530。
存储模块830用于存储聚合策略,以便于调度模块820确定处理作业的至少一个超节点。
调度模块820具体用于基于聚合策略、系统资源和所述资源需求确定处理所述待处理作业的至少一个超节点。
图9为本实施例提供的可能的数据处理装置的结构示意图。这些数据处理装置可以用于实现上述方法实施例中超节点中节点的功能,因此也能实现上述方法实施例所具备的有益效果。在本实施例中,该数据处理装置可以是如图5所示的超节点110中节点111,还可以是应用于服务器的模块(如芯片)。
如图9所示,数据处理装置900包括通信模块910、数据处理模块920和存储模块930。数据处理装置900用于实现上述图5中所示的方法实施例中超节点110中节点111的功能。
通信模块910用于获取调度器发送的待处理作业。例如,通信模块910用于执行图5中步骤540。
数据处理模块920,用于运行基于单节点编程模型编写的分布式应用基于全局内存池处理所述待处理作业。例如,数据处理模块920用于执行图5中步骤550。
存储模块930用于存储策略,以便于数据处理模块920确定存储数据的存储位置。
数据处理模块920具体用于基于内存同步访问技术访问所述全局内存池处理所述待处理作业。
数据处理模块920还用于根据预取策略从超节点中存储节点预取数据,存储到所述超节点的计算节点。
数据处理模块920还用于根据数据冷热特性,在远端存储空间与本地存储空间之间进行数据的内存操作。
应理解的是,本申请实施例的调度装置800和数据处理装置900可以通过专用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现图5或图6所示的数据处理方法时,及其各个模块也可以为软件模块,调度装置800和数据处理装置900及其各个模块也可以为软件模块。
根据本申请实施例的调度装置800和数据处理装置900可对应于执行本申请实施例中描述的方法,并且调度装置800和数据处理装置900中的各个单元的上述和其它操作和/或功能分别为了实现图5或图6中的各个方法的相应流程,为了简洁,在此不再赘述。
图10为本实施例提供的一种计算设备1000的结构示意图。如图所示,计算设备1000包括处理器1010、总线1020、存储器1030、通信接口1040和内存单元1050(也可以称为主存(main memory)单元)。处理器1010、存储器1030、内存单元1050和通信接口1040通过总线1020相连。
应理解,在本实施例中,处理器1010可以是CPU,该处理器1010还可以是其他通用处理器、数字信号处理器(digital signal processing,DSP)、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
处理器还可以是图形处理器(graphics processing unit,GPU)、神经网络处理器(neural network processing unit,NPU)、微处理器、ASIC、或一个或多个用于控制本申请方案程序执行的集成电路。
通信接口1040用于实现计算设备1000与外部设备或器件的通信。在本实施例中,计算设备1000用于实现图5所示的节点111的功能时,通信接口1040用于获取待处理作业,所述待处理作业为与分布式应用相关的处理请求,节点111基于超节点的全局内存池处理所述待处理作业。
总线1020可以包括一通路,用于在上述组件(如处理器1010、内存单元1050和存储器1030)之间传送信息。总线1020除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线1020。总线1020可以是快捷外围部件互连标准(Peripheral Component Interconnect Express,PCIe)总线,或扩展工业标准结构(extended industry standard architecture,EISA)总线、统一总线(unified bus,Ubus或UB)、计算机快速链接(compute express link,CXL)、缓存一致互联协议(cache coherent interconnect for accelerators,CCIX)等。总线1020可以分为地址总线、数据总线、控制总线等。
作为一个示例,计算设备1000可以包括多个处理器。处理器可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的计算单元。在本实施例中,计算设备1000用于实现图5所示的节点111的功能时,处理器1010可以基于超节点的全局内存池处理所述待处理作业。在本实施例中,计算设备1000用于实现图5所示的调度器130的功能时,处理器1010可以根据待处理作业的资源需求控制至少一个超节点。
值得说明的是,图10中仅以计算设备1000包括1个处理器1010和1个存储器1030为例,此处,处理器1010和存储器1030分别用于指示一类器件或设备,具体实施例中,可以根据业务需求确定每种类型的器件或设备的数量。
内存单元1050可以对应上述方法实施例中用于存储处理后数据等信息的全局内存池。内存单元1050可以是易失性存储器池或非易失性存储器池,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
存储器1030可以对应上述方法实施例中用于存储计算机指令、聚合策略、内存操作指令、存储策略等信息的存储介质,例如,磁盘,如机械硬盘或固态硬盘。
上述计算设备1000可以是一个通用设备或者是一个专用设备。例如,计算设备1000可以是边缘设备(例如,携带具有处理能力芯片的盒子)等。可选地,计算设备1000也可以是服务器或其他具有计算能力的设备。
应理解,根据本实施例的计算设备1000可对应于本实施例中的调度装置800和数据处理装置900,并可以对应于执行根据图5或图6中任一方法中的相应主体,并且调度装置800和数据处理装置900中的各个模块的上述和其它操作和/或功能分别为了实现图5或图6中的各个方法的相应流程,为了简洁,在此不再赘述。
本实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于计算设备中。当然,处理器和存储介质也可以作为分立组件存在于计算设备中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其它可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital video disc,DVD);还可以是半导体介质,例如,固态硬盘(solid state drive,SSD)。以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (23)

  1. 一种数据处理方法,其特征在于,包括:
    调度器获取待处理作业,所述待处理作业为与分布式应用相关的处理请求;
    所述调度器根据所述待处理作业的资源需求控制至少一个超节点,基于所述超节点的全局内存池处理所述待处理作业,所述全局内存池为由所述超节点内节点的存储介质经过统一编址构成的所述超节点内节点共享的资源,所述超节点内的节点通过高速互连技术进行连接。
  2. 根据权利要求1所述的方法,其特征在于,基于所述超节点的全局内存池处理所述待处理作业,包括:
    所述超节点中多个节点运行基于单节点编程模型编写的分布式应用基于所述全局内存池处理所述待处理作业。
  3. 根据权利要求2所述的方法,其特征在于,所述超节点中多个节点运行基于单节点编程模型编写的分布式应用基于所述全局内存池处理所述作业,包括:
    所述超节点中多个节点运行基于单节点编程模型编写的分布式应用,基于内存同步访问技术访问所述全局内存池处理所述待处理作业。
  4. 根据权利要求2或3所述的方法,其特征在于,控制至少一个超节点基于所述超节点的全局内存池处理所述待处理作业,包括:
    控制两个以上超节点基于所述超节点的全局内存池处理所述待处理作业,所述两个以上超节点基于信息传递接口进行通信。
  5. 根据权利要求1-4中任一项所述的方法,其特征在于,所述调度器根据所述待处理作业的资源需求控制至少一个超节点,包括:
    基于聚合策略、系统资源和所述资源需求确定处理所述待处理作业的至少一个超节点。
  6. 根据权利要求1-5中任一项所述的方法,其特征在于,所述资源需求用于指示处理所述待处理作业所需的进程数和超节点数量。
  7. 根据权利要求1-6中任一项所述的方法,其特征在于,所述资源包括计算资源和存储资源。
  8. 根据权利要求1-7中任一项所述的方法,其特征在于,所述全局内存池的存储介质包括动态随机存取存储器DRAM和存储级内存SCM。
  9. 根据权利要求1-8中任一项所述的方法,其特征在于,所述方法还包括:
    所述超节点中计算节点根据预取策略从超节点中存储节点预取数据,存储到所述超节点的计算节点。
  10. 根据权利要求1-8中任一项所述的方法,其特征在于,所述方法还包括:
    所述超节点中计算节点根据数据冷热特性,在远端存储空间与本地存储空间之间进行数据的内存操作。
  11. 一种调度装置,其特征在于,包括:
    通信模块,用于获取待处理作业,所述待处理作业为与分布式应用相关的处理请求;
    调度模块,用于根据所述待处理作业的资源需求控制至少一个超节点,基于所述超节点的全局内存池处理所述待处理作业,所述全局内存池为由所述超节点内节点的存储介质经过统一编址构成的所述超节点内节点共享的资源,所述超节点内的节点通过高速互连技术进行连接。
  12. 根据权利要求11所述的装置,其特征在于,所述调度模块根据所述待处理作业的资源需求控制至少一个超节点时,具体用于:
    基于聚合策略、系统资源和所述资源需求确定处理所述待处理作业的至少一个超节点。
  13. 根据权利要求11或12所述的装置,其特征在于,所述资源需求用于指示处理所述待处理作业所需的进程数和超节点数量。
  14. 根据权利要求11-13中任一项所述的装置,其特征在于,所述资源包括计算资源和存储资源。
  15. 根据权利要求11-14中任一项所述的装置,其特征在于,所述全局内存池的存储介质包括动态随机存取存储器DRAM和存储级内存SCM。
  16. 一种数据处理装置,其特征在于,包括:
    通信模块,用于获取调度器发送的待处理作业;
    数据处理模块,用于运行基于单节点编程模型编写的分布式应用基于全局内存池处理所述待处理作业。
  17. 根据权利要求16所述的装置,其特征在于,运行基于单节点编程模型编写的分布式应用基于所述全局内存池处理所述作业,包括:
    基于内存同步访问技术访问所述全局内存池处理所述待处理作业。
  18. 根据权利要求16或17所述的装置,其特征在于,控制至少一个超节点基于所述超节点的全局内存池处理所述待处理作业,包括:
    当所述调度器控制两个以上超节点基于所述超节点的全局内存池处理所述待处理作业,一个超节点基于信息传递接口与另一超节点进行通信。
  19. 根据权利要求16-18中任一项所述的装置,其特征在于,所述数据处理模块,还用于:
    根据预取策略从超节点中存储节点预取数据,存储到所述超节点的计算节点。
  20. 根据权利要求16-18中任一项所述的装置,其特征在于,所述数据处理模块,还用于:
    根据数据冷热特性,在远端存储空间与本地存储空间之间进行数据的内存操作。
  21. 一种调度器,其特征在于,所述调度包括存储器和至少一个处理器,所述存储器用于存储一组计算机指令;当所述处理器执行所述一组计算机指令时,执行上述权利要求1-10中任一项所述的方法的操作步骤。
  22. 一种计算设备,其特征在于,所述服务器包括通过高速互连技术进行连接的节点和如权利要求21所述的调度器,所述调度器用于执行上述权利要求1-10中任一项所述的方法的操作步骤。
  23. 一种系统,其特征在于,所述系统包括多个超节点和调度器,所述调度器用于根据待处理作业的资源需求控制至少一个超节点,基于所述超节点的全局内存池处理所述待处理作业,所述全局内存池为由所述超节点内节点的存储介质经过统一编址构成的所述超节点内节点共享的资源,所述超节点内的节点通过高速互连技术进行连接,所述待处理作业为与分布式应用相关的处理请求;
    所述超节点中多个节点用于运行基于单节点编程模型编写的分布式应用基于所述全局内存池处理所述待处理作业;
    所述两个以上超节点用于基于信息传递接口进行通信。
PCT/CN2023/099530 2022-06-10 2023-06-09 数据处理方法、装置、设备和系统 WO2023237115A1 (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN202210655939.6 2022-06-10
CN202210655939 2022-06-10
CN202211001039.6 2022-08-19
CN202211001039.6A CN117251259A (zh) 2022-06-10 2022-08-19 数据处理方法、装置、设备和系统

Publications (1)

Publication Number Publication Date
WO2023237115A1 true WO2023237115A1 (zh) 2023-12-14

Family

ID=89117600

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/099530 WO2023237115A1 (zh) 2022-06-10 2023-06-09 数据处理方法、装置、设备和系统

Country Status (1)

Country Link
WO (1) WO2023237115A1 (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106201720A (zh) * 2016-07-11 2016-12-07 广州高能计算机科技有限公司 虚拟对称多处理虚拟机创建方法、数据处理方法及系统
US20180357107A1 (en) * 2017-06-08 2018-12-13 Western Digital Technologies, Inc. Partitioning Nodes in a Hyper-Converged Infrastructure
CN109951558A (zh) * 2019-03-27 2019-06-28 北京并行科技股份有限公司 一种超算资源的云调度方法、云调度中心和系统
CN114090234A (zh) * 2021-10-25 2022-02-25 北京百度网讯科技有限公司 请求的调度方法、装置、电子设备和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106201720A (zh) * 2016-07-11 2016-12-07 广州高能计算机科技有限公司 虚拟对称多处理虚拟机创建方法、数据处理方法及系统
US20180357107A1 (en) * 2017-06-08 2018-12-13 Western Digital Technologies, Inc. Partitioning Nodes in a Hyper-Converged Infrastructure
CN109951558A (zh) * 2019-03-27 2019-06-28 北京并行科技股份有限公司 一种超算资源的云调度方法、云调度中心和系统
CN114090234A (zh) * 2021-10-25 2022-02-25 北京百度网讯科技有限公司 请求的调度方法、装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
KR100831460B1 (ko) 다중 스레드 프로세서의 성능 제어를 위한 장치 및 방법
US10452539B2 (en) Simulator for enterprise-scale simulations on hybrid main memory systems
US8195784B2 (en) Linear programming formulation of resources in a data center
WO2021254135A1 (zh) 任务执行方法及存储设备
US9740438B2 (en) Allocating memory on multiple types of main memory technologies from software application layer
TW201214284A (en) Virtualization and dynamic resource allocation aware storage level reordering
CA2872019A1 (en) Pooling of memory resources across multiple nodes
WO2023051715A1 (zh) 数据处理的方法、装置、处理器和混合内存系统
Mutlu et al. The main memory system: Challenges and opportunities
CN115981833A (zh) 一种任务处理方法及装置
US11157191B2 (en) Intra-device notational data movement system
JP2024511751A (ja) プロセッシングインメモリ同時処理システム及び方法
US10684964B1 (en) System and method for reducing read latency in storage devices
US20210224213A1 (en) Techniques for near data acceleration for a multi-core architecture
WO2023237115A1 (zh) 数据处理方法、装置、设备和系统
EP3602309B1 (en) A memory allocation manager and method performed thereby for managing memory allocation
CN116932196A (zh) 融合系统的数据处理方法、装置、设备和系统
US11169720B1 (en) System and method for creating on-demand virtual filesystem having virtual burst buffers created on the fly
CN116932156A (zh) 一种任务处理方法、装置及系统
WO2023193814A1 (zh) 融合系统的数据处理方法、装置、设备和系统
CN117251259A (zh) 数据处理方法、装置、设备和系统
US10452546B2 (en) Cache utility modeling for automated cache configuration
US20060095905A1 (en) Method and apparatus for servicing threads within a multi-processor system
WO2024012153A1 (zh) 一种数据处理方法及装置
WO2023066248A1 (zh) 数据处理方法、装置、设备和系统

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23819278

Country of ref document: EP

Kind code of ref document: A1