High performance computing system and method

HK40138564APending Publication Date: 2026-10-09PARTEC AG
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
HK42026128211
Authority / Receiving Office
HK · HK
Patent Type
Applications
Current Assignee / Owner
Priority Date
2016-10-05
Filing Date
2022-07-08
Publication Date
2026-10-09
Estimated Expiration
2037-10-04

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

The present invention relates to the technical field of high performance computing (HPC). In particular, the invention relates to a heterogeneous computing system, particularly a computing system including different modules, which can freely be assigned to jointly process a computation tasks. A control entity, referred to as module computing abstraction layer (MCAL), is provided which allows dynamic assignment of various resources provided by the different modules. Due to its flexibility in adjusting to varying demands in computing, the present invention is also applicable as an underlying system for providing cloud computing services, which provides shared computer processing resources and data to computers and other devices on demand, mostly via the Internet.
Need to check novelty before this filing date? Find Prior Art

Description

(19) *EP004711927A2* (11) EP 4 711 927 A2 (12) EUROPEAN PATENT APPLICATION (43) Date of publication: 18.03.2026 Bulletin 2026 / 12 (21) Application number: 26151521.7 (22) Date of filing: 05.10.2017 (51) International Patent Classification (IPC): G06F 9 / 54 (2006.01) (52) Cooperative Patent Classification (CPC): G06F 9 / 5072; G06F 9 / 5027; G06F 9 / 5044; G06F 9 / 5077; G06F 9 / 54; Y02D 10 / 00 (84) Designated Contracting States: AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR (30) Priority: 05.10.2016 EP 16192430 (62) Document number(s) of the earlier application(s) in accordance with Art. 76 EPC: 21179407.8 / 3 944 084 17777304.1 / 3 523 723 (71) Applicant: ParTec AG 81679 München (DE) (72) Inventor: Lippert, Thomas 63473 Aschaffenburg (DE) (74) Representative: Leske, Thomas Frohwitter Patent‑ und Rechtsanwälte Possartstrasse 20 81679 München (DE) Remarks: This application was filed on 13‑01‑2026 as a divisional application to the application mentioned under INID code 62. (54) HIGH PERFORMANCE COMPUTING SYSTEM AND METHOD (57) The present invention relates to the technical field of high performance computing (HPC). In particular, the invention relates to a heterogeneous computing sys- tem, particularly a computing system including different modules, which can freely be assigned to jointly process a computation tasks. A control entity, referred to as module computing abstraction layer (MCAL), is provided which allows dynamic assignment of various resources provided by the different modules. Due to its flexibility in adjusting to varying demands in computing, the present invention is also applicable as an underlying system for providing cloud computing services, which provides shared computer processing resources and data to com- puters and other devices on demand, mostly via the Internet. EP 4 71 1 92 7 A 2 Processed by Luminess, 75001 PARIS (FR) 2 1 EP 4 711 927 A2 2 Description

[0001] The present invention relates to the technical field of high performance computing (HPC). In particular, the invention relates to a heterogeneous computing sys- tem, particularly a computing system including different modules, which can freely be assigned to jointly process a computation tasks. A control entity, referred to as module computing abstraction layer (MCAL), is provided which allows dynamic assignment of various resources provided by the different modules. Due to its flexibility in adjusting to varying demands in computing, the present invention is also applicable as an underlying system for providing cloud computing services, which provides shared computer processing resources and data to com- puters and other devices on demand, mostly via the Internet.

[0002] Applications for HPC systems cover a wide technical area. From simulating the human brain over weather and climate prediction, computational fluid en- gineering, seismic imaging, radio astronomy to data analysis, just to name a few. The demand for high per- formance computing is ever increasing.

[0003] Currently, the predominant HPC architectures are cluster computers and massive parallel processing (MPP) systems. Cluster computers include a plurality of cluster nodes, which communicate with each other using standard network technology. The individual cluster nodes are equipped with off-the-shelf general purpose processors. In MPP (massively parallel processing) sys- tems, a large number of processors perform computa- tions simultaneously, hence, in parallel. They normally also employ off-the-shelf general purpose processors. The processors, however, tend to use proprietary net- work technologyandparticularly adaptedsoftware for the communication.

[0004] In order to satisfy the thirst for more and more computation power, the number of cluster nodes in com- puter clusters and processors inMPPsystems increased massively in recent years. However, it can already be seen that just using off-the-shelf general purpose pro- cessors and increasing its number in a system is not a solution.

[0005] Off-the-shelf general purpose processors have without any doubt positive aspects. Their single thread performance is high. They have large memory per pro- cessoror core incaseofamulti-coreprocessor.Standard programming can be used, which makes it easier to port applications to such systems.However, the technology is reaching its limits. If it comes to off-the-shelf general purpose processors, their clock rate (frequency) has practicallynot increased in the last decade.This is closely connected to the energy consumption, which should not go far beyond 100 watt per chip before it gets critical, in particular with cooling the system. Additionally, those processors are comparably expensive and have low energy efficiency.

[0006] A solution is seen in employing accelerators, which can be used to compute those parts of an applica- tion that is highly scalable. Highly scalable is an applica- tion if it canhandle larger loadsbyaddingmore resources in a more cost effective way. The sequential part in the code, which cannot be computed in parallel, is normally one of the most crucial limiting factors for scalability.

[0007] Systems usingmore than one kind of processor are referred to as heterogeneous computer systems. Different accelerators can be used in combination with general purpose processors, namely many core proces- sor and GPUs (Graphics Processing Unit). Many core processors have 50 plus cores. GPUs have hundreds of simple computing cores. Both types of processors are energy efficient.

[0008] In heterogeneous computer systems, each cluster node is equipped with accelerators, formed by one or more multicore processors or GPUs. The accel- erator basically functions as a coprocessor supplement- ing the functions of the cluster node’s primary processor. The cluster nodes communicate via a fabric in which components pass data to each other through intercon- necting switches. The term "fabric" is one used in the field of high performance computing to refer to a system topology. The term interconnect is also used for the communication infrastructurebetween theclusternodes, referring to an electrical or optical connection or cable that connects separate devices. The major problem of attachinganaccelerator to eachnode is the static assign- ment. The ratio between the general purpose processor and the GPU is fixed when the system is designed.

[0009] The international application WO2012‑049247A1 tackles this shortcomingwithacom- puter cluster arrangement and a method for operation of the introduced computer cluster arrangement. The com- puter cluster arrangement comprises computationnodes CN, which dynamically outsource specific computation tasks to boosters B. Therefore, an assignment technique of boosters B to computation nodes CN is introduced. The assignment takes dynamically place at runtime. In this architecture cluster nodes and accelerator nodes, which form the booster, are put into one fabric. This is more flexible in comparison to the accelerated cluster nodes since the assignment of the booster to cluster nodes for accelerating processing can be done when starting a process. This arrangement is further described by Norbert Eicker et al. in "The DEEP project Pursuing cluster-computing in the many-core era", 42nd Interna- tional Conference on Parallel Processing, pp 885‑892, 2013, and "TheDEEPProject An alternative approach to heterogenous cluster-computing in the many-core era", Concurrency and Computation: Practice and Experi- ence, 28, pp 2394‑2411. 2015.

[0010] When one application is computed by a hetero- geneous system, such as the cluster booster type, the individual computation tasks not only need to be pro- cessed on multiple different cluster nodes, but also on two different architectures, namely the computer cluster and the accelerator. An efficient communication between 5 10 15 20 25 30 35 40 45 50 55 3 3 EP 4 711 927 A2 4 the cluster computer and the booster aswell aswithin the cluster computer andwithin theboostermustbeensured. Additionally, the increasing number of components causes the risk that components fail, even with a high reliability of the individual parts. So the system must ensure a high resiliency, i.e. the ability towithstand failure of individual components and yet remain functional.

[0011] The present invention provides modular com- puting systems. A modular computing system includes different modules, such as a cluster module, and booster module, a storage module, a neuromorphic module, a data analytic module, a graphics module, a quantum computing module etc. Each module might include a plurality of nodes. The cluster module includes a plurality of cluster nodes, the booster module includes a plurality of booster nodes, and the storage module includes a plurality of storage nodes, and so on.

[0012] The individual nodes are either all connected to one fabric. Different modules may have different inter- connects. The cluster module uses e.g. an InfiniBand interconnect, whereas the booster module uses an Intel Omni-Path fabric, which is connected to the InfiniBand interconnect via special interface nodes. The same ap- plies to the other types of modules.

[0013] In order to combine the differentmodules to one systemamodular computing abstraction layer (MCAL) is provided. The MCAL provides communication function- ality and management functionality. The Para Station by Par Tec Cluster Competence Center GmbH could form a starting point for realizing MCAL having the functionality and properties described in the following.

[0014] TheMCALallows communicationwithin amod- ule, referred to as intra module communication, and between modules, referred to as inter module commu- nication. In order to do so, MCAL provides interfaces to the respective fabrics, e.g., one fabric for entire systemor specialized fabric per module, such as InfiniBand for cluster module and Intel Omni-Path fabric for the booster module. Other interconnects are also possible such as Ethernet, 10G, Gigabit or shared memory communica- tion. MCAL can use any kind of communication and selects the particular way of communication based on availability, indications by the application program, per- formance or cost considerations.

[0015] Shared memory communication provides a very fast and efficient way for two or more processes to communicate. Different types of shared memory com- munication can be employed by MCAL. In case two or more processes of a parallel task run on the same phy- sical node having shared memory, this shared memory can be used for sharedmemory communication between these processes. This is typically possible on SMP nodes, where one process per CPU is spawned. Sym- metric multiprocessing (SMP) refers to an architecture where two or more identical processors connect to a single, sharedmainmemory. SinceMCALhas the knowl- edge about the processes and on which node they are processed, MCAL can set up shared memory commu- nication in such a situation.

[0016] However, sharedmemory communication isnot limited to SMP situations. In case processes run on different nodes within one module or even on nodes belonging to different modules, MCAL sets up shared virtual address space communication. Using shared vir- tual address space communication, largermessages are conveyedbetweennodesby just sharingmetadataof the message and the virtual address of the data itself. The actual message can be accessed by the process via its assigned virtual address space. This allows fast commu- nication. MCAL sets up a virtual address space commu- nication by setting up a memory region, which is directly shared by the processes or nodes involved in the com- munication.

[0017] As can be seen from those examples theMCAL not only provides the communication functionality, but also selects the way to communicate, which increases performance and efficiency. MCAL can e.g. decides which interconnect can be used for communication while spawning processes, i.e., creating and executing new child processes. At the same time MCAL monitors the current process and observes the child process to termi- nate or may continue to execute asynchronously.

[0018] The second major function MCAL provides is management. The management function covers differ- ent aspects, namely node management, module man- agement, process management and resource manage- ment.

[0019] Node management is directed to the individual nodes, such as the cluster nodes in a cluster module, the booster nodes in a booster module, the storage nodes in a storage module and so on regarding other types of modules, as named above, which are present in the system. MCAL first of all detects usable nodes. Usable nodes are those ready to be used. This includes that MCAL is configured to identify malfunctioning nodes or nodes close to fail, e.g. based on system parameters, such as temperature, available memory, etc. and the variation of those properties over time. MCAL therefore implements fault tolerance and thereby ensures high resiliency.

[0020] This is done byMCAL employing the concept of virtual nodes. The virtual nodes represent actual hard- ware, such as cluster nodes, booster nodes, storage nodes, etc. but MCAL has the freedom to dynamically map the nodes. For example, if an application requires X cluster nodes, Y booster nodes and Z storage nodes (X, Y, Z being integer numbers). MCAL can provide those nodes out of all available resources. In case a node is failing or added to the system,MCAL can react quickly by just changing themapping between the virtual nodes and the physical nodes. Malfunctioning nodes can be taken out of the list of available nodeswithoutmaking the entire system fail.

[0021] MCAL has also the ability to select particular nodes depending on factors like reachability, latency or physical placement. This can be done completely trans- 5 10 15 20 25 30 35 40 45 50 55 4 5 EP 4 711 927 A2 6 parently to the running application.

[0022] The MCAL has the overall system view and constantly keeps the state of each node and each inter- connect up to date. MCAL is informed at all times about particular properties of eachnodeand interconnect, such as number of availableCPUs per node, running services, available storage, interconnect bandwidth, free memory, temperature, system clock rate etc.

[0023] Another function is module management. Mod- ule management is similar to node management, and might include nodemanagement for a particular module, but takes into consideration module specific aspect. Module management focuses on module specific as- pects, such as the state of interface nodes, if provided, via which the module communicates to others. Similar to nodes, MCAL monitors the module’s state in order to allow increased utilization of the module.

[0024] MCAL is also responsible for process manage- ment. Each running application is divided into a plurality of individual processes, which need to be started, dis- tributed andmonitored. At the same time resources need to be assigned, which correspond to the need of the process for computation power and storage. If the pro- cess requires aparticular processing,MCALassigns one ormore booster nodes or evenmore specific nodes such as neuromorphic nodes, data analytic nodes, graphics nodes or quantum computing nodes from the respective modules.

[0025] In order to do so, MCAL is configured to recog- nize and control dependencies between processes and their requirements. Based on this, MCAL creates pro- cesses on nodes, in case of a booster module or cluster module, or assigns storage in case of a storage module. Processes are monitored and dependent processes are treated as group, allowing to quickly responding to errors occurring in any one of a parallel task. This allows that processes are re-started immediately so that the overall delay for the running application is minimized.

[0026] Resource management is another task MCAL performs in the modular computing system. As part of resource management MCAL realizes off-loading me- chanism, i.e. processes, which are e.g. running on a cluster module, might need some booster nodes from the booster module. In such a case MCAL can spawn processes on selected booster nodes, in order to run the task in parallel.

[0027] As part of the off-loading not just one process running on one booster may be created, but multiple processes, which are directly communicating with each other using the modules communication fabric without the need for the host processor to interfere.

[0028] The resource management also ensures redu- cing memory consumption, e.g. by reducing the number of connections between different processes. This is done byusingon-demandconnections,whichareonly actually established, when needed. This drastically reduces memory consumption per connection. So, not only re- sources suchasnodesare treated in a virtual fashion, but virtual assignment is also applied to physical networks.

[0029] When assigning resources, MCAL does not only take into consideration the request by one process, but other processes as well. This allows to flexibly re- sponding to changes of communication infrastructure based on the integrated control.

[0030] Integrated control is another functional aspect provided byMCAL. Integrated control refers to the usage of information gathered by MCAL from its management function for controlling communication and vice versa. Hence, communication function and management func- tion is not separate but integrated in order to further optimize the overall system performance.

[0031] MCAL’s knowledge about all different aspects of all nodes in all modules and the status of all intercon- nects, intra module communication and inter module communication is used to run the system. This allows to dynamically adjusting to changing behavior of the system as well as to changing demand of the application running on the system.

[0032] The integrated control does not only take into consideration the actual system state and application demands, but also predicts upcoming requests for mod- ule or interconnect usage.

[0033] The information of the system state is used for dynamic assignment of nodes. This includes that the assignment of resources is done using a feedback loop registering systemwide impact of assignment decisions, so that future assignments adjust correspondingly. The system also stores such information to improve assign- ment decisions for future cases, in a self-learning fash- ion.

[0034] Even if the main part of application normally starts on the cluster module, MCAL identifies which part of the application to run on the cluster module or the booster module. Basis for the decision are e.g. indica- tions by the application code itself, of the observation of the codes performancewhile running. This allows adjust- ments to the assignment during the computing of the application.

[0035] As to the implementation of MCAL, MCAL is distributed over the entire system and it includes node managers (NM) implemented on each node. Node man- agers can be implemented in hardware, or software, e.g. as daemon processes running on the respective nodes. Nodemanagers constantly gather information in order to build a global view on modules and the entire system. Applications running on system can benefit from this information by communication with the management function or directly with individual node managers. This is realized by particular interface, which can be hardware or an API (application programming interface). So, not only that MCAL gets input from applications, but applica- tions benefit from information gathered by MCAL via the individual node managers.

[0036] The communication traffic of node managers is strictly separated from intra and inter module commu- nication. This allows the intra and inter module commu- 5 10 15 20 25 30 35 40 45 50 55 5 7 EP 4 711 927 A2 8 nication to runwith high speed uninterrupted bymanage- ment functions. Furthermore, systemsecurity can further be enhanced by such separation.

[0037] The use of the actual communication network is controlled byMCAL, which provides such functionality to theapplication viamessagepassing interface (MPI).Part of MCAL is an MPI stack for each module as well as a systemwide globalMPI. IndividualMPIs are realized e.g. for the computer cluster module, the booster module, storage module etc.

[0038] MCAL’s communication uses an administration network. The administration network can be the same or a different physical network than the physical network used for intra and inter module communication. For ex- ample, the intra and inter module communication can be InfiniBand, Myrinet etc. and the administration network can be formed by Ethernet connecting the node man- agers.

[0039] Special nodes can be included in the system for providing a front end allowing administrative tasks or control functions to run the system. The front-end does not need to be connected to the communication network, but just to the communication network. Via the front-end node, which could be formed e.g. by a work station computer, a personal computer (PC) a laptop computer or any smart computing device, the modular computing systemcanbeadministrated.Applications runningon the modular computing systems can be scheduled, started, stopped and monitored. This can be done by batch processing, i.e. by executing a series of jobs on the modular computing system without manual intervention, hence, non-interactive.

[0040] Besides running a series of jobs on themodular computing system without manual intervention, MCAL may provide interactive computing, in which the applica- tion running on the modular computing system accepts input from humans as it runs. This input may be provided via a work station computer, a personal computer (PC) a laptop computer or any smart computing device. In such a scenario the modular computing system is accessible via e.g. the laptop computer, appearing as the laptop computer would have the computation power of the modular computing system. This is very useful for real time applications, which must respond within a time frame that the user senses as immediate or current. Also BigDataapplications,whichmakevoluminousamount of structured, semi structured and unstructured data acces- sible for mining information, can make use of such an arrangement. This is also true for cloud computing ser- vices having themodular computing systemasan under- lying resource for theprovisionof computationpower and storage.

[0041] The tight integration between MCAL and the systemallows lower communication latencyand improve communication in the describedmodular computing sys- tem. Drawings

[0042] Fig. 1 shows a functional view of a modular comput- ing system according to the present invention. Fig. 2 shows a first embodiment of a modular com- puting system according to the present invention. Fig. 3 shows a second embodiment of a modular computing system according to the present inven- tion.

[0043] Fig. 1 shows the functional view of a modular computing system 100 according to the present inven- tion. Anapplication layer 110 forms the topof themodular computing system. In the application layer application programs, such as software programs may be executed in the modular computing system 100. A modular com- puting abstraction layer 120 (MCAL) is provided, in order to allow the application layer 110 to access the system’s resources. The system’s resources are formed by var- ious modules, such as the cluster module 130, the boos- ter module 140, the storage module 150, the data ana- lysis module 160 and other modules 170, e.g. one or more from the following group of modules: a neuro- morphic module, a graphicsmodule, a quantum comput- ingmodule. It is also possible to havemultiplemodules of the same kind.

[0044] The MCAL 120 allows communication within a module, referred to as intra module communication, and between modules, referred to as inter module commu- nication. MCAL 120 can use any kind of communication and selects the particular way of communication based on availability, indications by the application program, performance or cost considerations.

[0045] Additionally MCAL 120 provides management function. The management function covers different as- pects, namely nodemanagement,modulemanagement, process management and resource management. Node management is directed to the individual nodes and will be explained further with reference to Figures 2 and 3.

[0046] TheMCAL 120 has the overall system view and constantly keeps the state of eachmodule 130, 140, 150, 160 and170up to date.MCAL120 is informedat all times about particular properties of module 130, 140, 150, 160 and 170, such as number of available processors, run- ningservices, availablestorage, interconnect bandwidth, free memory, temperature, system clock rate etc. An- other function MCAL 120 provides is module manage- ment. Module management takes into consideration module specific aspect.Hence,MCAL includes functions specially adapted tomanage the cluster module 130, the booster module 140, the storage module 150, the data analysis module 160 and other modules 170. MCAL 120 is also responsible for process management. Each run- ning application 110 is divided into a plurality of individual 5 10 15 20 25 30 35 40 45 50 55 6 9 EP 4 711 927 A2 10 processes, which need to be started, distributed and monitored. At the same time resources need to be as- signed, which correspond to the need of the process for computation power and storage. If the process requires a particular processing, MCAL 120 assigns one or more booster nodes or even more specific nodes such as neuromorphic nodes, data analytic nodes, graphics nodes or quantum computing nodes from the respective modules. In order to do so, MCAL 120 is configured to recognize and control dependencies betweenprocesses and their requirements. Resource management is an- other taskMCAL 120 performs in themodular computing system. As part of resource management MCAL 120 realizes off-loading mechanism, i.e. processes, which are e.g. running on a cluster module 130, might need some booster nodes from the booster module 140. In suchacaseMCAL120canspawnprocessesonselected booster nodes from the booster module 140, in order to run the task in parallel.

[0047] Integrated control is another functional aspect provided by MCAL 120. Integrated control refers to the usage of information gathered by MCAL 120 from its management function for controlling communication and vice versa. Hence, communication function and management function is not separate but integrated in order to further optimize the overall systemperformance. This allows to dynamically adjusting to changing beha- vior of the system as well as to changing demand of the application running on the system. The integrated control does not only take into consideration the actual system state and application demands, but also predicts upcom- ing requests for module or interconnect usage.

[0048] Fig. 2 shows a first embodiment of a modular computing system 200 according to the present inven- tion. The modular computing system 200 includes a cluster module 202, a booster module 204 and a storage module 206.

[0049] The cluster module 202 includes a plurality of cluster nodes208 (CN).Oneachcluster node208anode manager 209 (NM) is provided, which in cooperationwith other node managers 209 provides communication and management functionality to themodular computing sys- tem 200. The booster module 204 includes a plurality of booster nodes 210 (BN). On each booster node 210 a nodemanager 209 is provided, which in cooperationwith other node managers 209 provides communication and management functionality to themodular computing sys- tem 200. The storage module 206 includes a plurality of storage nodes 212 (SN). On each storage node 212 a nodemanager 209 is provided, which in cooperationwith other node managers 209 provides communication and management functionality to themodular computing sys- tem 200.

[0050] The cluster nodemay be formed by a computer having a general purpose micro processor, such as an Intel Xeon processor, memory, interfaces, such as net- work cards. The booster nodes might be formed by processing systems equipped with GPUs or many core processors, memory and interfaces, such as network cards. The storage nodes include memory, which can be RAM (random access memory) and non-volatile memory, such as flash memory, SSD (solid state disk), hard disk, further the storage node includes a node controller, such asamicroprocessor and interfaces, such as network cards.

[0051] Two different networking infrastructures are provided. Firstly, there is a communication network 220 connecting all nodes 208, 210, 212 with each other, so that the cluster nodes208and thebooster nodes210and the storage nodes 212 can communicate.

[0052] Secondly, an administration network 224 is pro- vided connecting all node managers 209 provided in the various nodes 208, 210, and 212. Attached to the admin- istration network 224 is a front-end 230 which allows controlling the entire modular computing system. The front-end 230 also includes a node manager 209, which performs the actual communication to the other node managers 209.

[0053] In order to combine the differentmodules to one systemamodular computing abstraction layer (MCAL) is providedasdescribedwith reference toFig. 1. TheMCAL provides communication functionality and management functionality. The ParaStation by ParTec Cluster Com- petence Center GmbH could form a starting point for realizing MCAL having the functionality and properties described here.

[0054] The MCAL is implemented by the node man- agers 209 on the individual nodes and allows commu- nication within a module, referred to as intra module communication, and between modules, referred to as inter module communication. In order to do so, the node managers provide interfaces to the respective fabrics, e.g., one fabric for entire system or specialized fabric per module, such as InfiniBand for cluster module 202 and Intel Omni-Path fabric for the booster module 204. Other interconnects are also possible such as Ethernet, 10G, Gigabit or shared memory communication. The node managers 309 can use any kind of communication and selects the particular way of communication based on availability, indications by the application program, per- formance or cost considerations.

[0055] Shared memory communication and shared virtual address space communication can be employed, which provide a very fast and efficientway for twoormore processes to communicate.

[0056] The node managers 209 collectively provide node management. Node management is directed to the individual nodes, such as the cluster nodes 208 in a cluster module 202, the booster nodes 210 in a booster module 204, the storage nodes 212 in a storage module 206. Furthermore, the node managers 209 also select particular nodes depending on factors like reachability, latency or physical placement. This can be done com- pletely transparently to the running application. They gather and exchange information about the overall sys- temand constantly keep the state of each node and each 5 10 15 20 25 30 35 40 45 50 55 7 11 EP 4 711 927 A2 12 interconnect up to date. This allows the node managers 309 to be informed at all times about particular properties of each node and interconnect, such as number of avail- ableCPUsper node, running services, available storage, interconnect bandwidth, free memory, temperature, sys- tem clock rate etc.

[0057] Another function implemented by the node managers ismodulemanagement.Modulemanagement is similar to node management, and might include node management for a particular module, but takes into con- sideration module specific aspect. Module management focuses on module specific aspects, such as the state of interface nodes, if provided, via which the module com- municates to others. Similar to nodes, the node man- agers 309 monitors the module’s state in order to allow increased utilization of the module.

[0058] Resource management is another task the node managers 209 perform in the modular computing system 200. As part of resource management they rea- lizeoff-loadingmechanism, i.e. processes,whicharee.g. running on a cluster module 202, might need some booster nodes 210 from the booster module 204. In such a case a node manager can spawn processes on se- lected booster nodes 210, in order to run the task in parallel.

[0059] Integrated control is another functional aspect implemented by the node managers. Integrated control refers to the usage of information gathered by the node managers from its management function for controlling communication and vice versa. Hence, communication function and management function is not separate but integrated in order to further optimize the overall system performance.

[0060] The node managers’ 209 knowledge about all different aspects of all nodes in allmodulesand the status of all interconnects, intra module communication and inter module communication is used to run the system. This allows to dynamically adjusting to changing beha- vior of the system as well as to changing demand of the application running on the system.

[0061] The integrated control does not only take into consideration the actual system state and application demands, but also predicts upcoming requests for mod- ule or interconnect usage.

[0062] Node managers 209 can be implemented in hardware, or software, e.g. as daemon processes run- ning on the respective nodes. Node managers 209 con- stantly gather information in order to build a global view on modules and the entire system. Applications running on system can benefit from this information by commu- nication with the management function or directly with individual node managers 209. This is realized by parti- cular interface, which can be hardware or an API (appli- cation programming interface).

[0063] The communication traffic of node managers 209 is strictly separated from intra and inter module communication. This allows the intra and inter module communication to run with high speed uninterrupted by management functions. Furthermore, system security can further be enhanced by such separation.

[0064] The use of the actual communication network 220 is controlled by the node managers 209, which provide such functionality to the application via message passing interface (MPI).

[0065] Node managers 209 communicate with each other using the administration network 224. The admin- istration network 224 can be the same or a different physical network than the physical network used for intra and inter module communication, here referred to as communication network 220. For example, the intra and inter module communication can be InfiniBand, Myr- inet etc. and the administration network can be formedby Ethernet connecting the node managers 209.

[0066] Special nodes can be included in the system for providing a front-end230allowing administrative tasks or control functions to run the system. The front-end does not need to be connected to the communication network 220, but just to the communication network 220. Via the front-end node, which could be formed e.g. by a work station computer, a personal computer (PC) a laptop computer or any smart computing device, the modular computing system 200 can be administrated. Applica- tions running on themodular computing system200s can be scheduled, started, stopped and monitored. This can be done by batch processing, i.e. by executing a series of jobs on themodular computing system 200 without man- ual intervention, hence, non-interactive.

[0067] Besides running a series of jobs on themodular computing system 200 without manual intervention, node managers 309 may provide interactive computing, in which the application running on the modular comput- ing system 200 accepts input from humans as it runs. This inputmay be provided via awork station computer, a personal computer (PC) a laptop computer or any smart computing device. In such a scenario the modular com- puting system 200 is accessible via e.g. the laptop com- puter, appearing as the laptop computer would have the computation power of the modular computing system 200. This is very useful for real time applications, which must respondwithin a time frame that the user senses as immediate or current. Also Big Data applications, which make voluminous amount of structured, semi structured and unstructured data accessible for mining information, can make use of such an arrangement. This is also true for cloud computing services having the modular com- puting system 200 as an underlying resource for the provision of computation power and storage.

[0068] Fig. 3 shows a second embodiment of a mod- ular computing system 300 according to the present invention. The modular computing system 300 includes a cluster module 302, a booster module 304 and a storage module 306.

[0069] The cluster module 302 includes a plurality of cluster nodes310 (CN).Oneachcluster node310anode manager 309 (NM) is provided, which in cooperationwith other node managers 309 provides communication and 5 10 15 20 25 30 35 40 45 50 55 8 13 EP 4 711 927 A2 14 management functionality to themodular computing sys- tem 300. The cluster nodes 310 are connected to each other via a cluster interconnect 312.

[0070] The booster module 304 includes a plurality of booster nodes 320 (BN). On each booster node 320 a nodemanager 309 is provided, which in cooperationwith other node managers 309 provides communication and management functionality to themodular computing sys- tem 300. The booster nodes 320 are connected to each other via a booster interconnect 322.

[0071] The storage module 306 includes a plurality of storage nodes 330 (SN). On each storage node 330 a nodemanager 309 is provided, which in cooperationwith other node managers 309 provides communication and management functionality to themodular computing sys- tem 300. The storage nodes 330 are connected to each other via storage interconnect 332.

[0072] The cluster nodemay be formed by a computer having a general purpose micro processor, such as an Intel Xeon processor, memory, interfaces, such as net- work cards. The booster nodes might be formed by processing systems equipped with GPUs or many core processors, memory and interfaces, such as network cards. The storage nodes include memory, which can be RAM (random access memory) and non-volatile memory, such as flash memory, SSD (solid state disk), hard disk, further the storage node includes a node controller, suchasamicroprocessor and interfaces, such as network cards.

[0073] The cluster module 302 can communicate with the storage module 306 via an interface node 340 con- necting the cluster interconnect 312 with the storage interconnect 332. The storage module 306 can commu- nicate with the booster module 304 via an interface node 342 connecting the storage interconnect 332 with the booster interconnect 322. The booster module 304 can communicatewith theclustermodule302viaan interface node 344 connecting the booster interconnect 322 with the cluster interconnect 312.

[0074] The cluster module 302 uses e.g. an InfiniBand interconnect, whereas the booster module 304 uses an Intel Omni-Path fabric, which is connected to the Infini- Band interconnect via the interface node 344. Each inter- face node may be formed by a plurality of nodes in order to increase performance and throughput. The same ap- plies to the other types of modules.

[0075] All node managers 309 provided in the various nodes 310, 310, 312 are using the same communication infrastructure. Attached to the cluster interconnect 312 is a front-end 350which allows to control the entiremodular computing system. The front-end 350 also includes a node manager 309, which performs the actual commu- nication to the other node managers 309.

[0076] In order to combine the differentmodules to one systemamodular computing abstraction layer (MCAL) is providedasdescribedwith reference toFig. 1. TheMCAL provides communication functionality and management functionality. The ParaStation by ParTec Cluster Com- petence Center GmbH could form a starting point for realizing MCAL having the functionality and properties described in the following.

[0077] MCAL is implemented by the node managers 309 in each node, which can use for process to process communication any kind of communication link provided.

[0078] As aforementioned, the node managers 309 also provide node management. Node management is directed to the individual nodes, such as the cluster nodes 310 in a cluster module 302, the booster nodes 320 in a booster module 304, the storage nodes 330 in a storage module 306. The node managers 309 also have the ability to select particular nodes depending on factors like reachability, latency or physical placement. This can be done completely transparently to the running applica- tion. They always have overall system view and con- stantly keeps the state of each node and each intercon- nect up to date. The node managers 309 inform each other at all times about particular properties of each node and interconnect, such as number of available CPUs per node, running services, available storage, interconnect bandwidth, free memory, temperature, system clock rate etc.

[0079] Another function they implement is module management. Module management is similar to node management, andmight include nodemanagement for a particular module, but takes into consideration module specificaspect.Modulemanagement focusesonmodule specific aspects, such as the state of interface nodes, if provided, via which the module communicates to others.

[0080] The node managers 309 also implement pro- cess management. Each running application is divided into a plurality of individual processes, which need to be started, distributed and monitored. At the same time resources need to be assigned, which correspond to the need of the process for computation power and storage. They are configured to recognize and control dependencies between processes and their require- ments. Based on this, the node managers 309 creates processes on nodes, in case of an boostermodule 304 or cluster module 302, or assigns storage in case of a storage module 306. Processes are monitored and de- pendent processes are treated as group, allowing to quickly responding to errors occurring in any one of a parallel task. This allows that processes are re-started immediately so that the overall delay for the running application is minimized.

[0081] Resource management is another task the nodemanagers309 implement in themodular computing system 300. As part of resource management they rea- lizeoff-loadingmechanism, i.e. processes,whicharee.g. running on a cluster module 302, might need some booster nodes 320 from the booster module 304. In such a case the node manager 309 spawn processes on selected booster nodes 320, in order to run the task in parallel.

[0082] As part of the off-loading not just one process running on one booster may be created, but multiple 5 10 15 20 25 30 35 40 45 50 55 9 15 EP 4 711 927 A2 16 processes, which are directly communicating with each other using the modules communication fabric without the need for the host processor to interfere.

[0083] The resource management also ensures redu- cing memory consumption, e.g. by reducing the number of connections between different processes. This is done byusingon-demandconnections,whichareonly actually established, when needed. This drastically reduces memory consumption per connection. So, not only re- sources suchasnodesare treated in a virtual fashion, but virtual assignment is also applied to physical networks.

[0084] Whenassigning resources, the nodemanagers 309donot only take into consideration the request byone process, but other processes as well. This allows to flexibly responding to changes of communication infra- structure based on the integrated control.

[0085] Integrated control is another functional aspect provided by the node managers 309. Integrated control refers to the usage of information gathered by the node managers from its management function for controlling communication and vice versa. Hence, communication function and management function is not separate but integrated in order to further optimize the overall system performance.

[0086] The node managers’ knowledge about all dif- ferent aspects of all nodes in allmodules and the status of all interconnects, intra module communication and inter module communication is used to run the system. This allows to dynamically adjusting to changing behavior of the systemaswell as to changing demand of the applica- tion running on the system.

[0087] The integrated control does not only take into consideration the actual system state and application demands, but also predicts upcoming requests for mod- ule or interconnect usage. The information of the system state is used for dynamic assignment of nodes. This includes that the assignment of resources is done using a feedback loop registering system wide impact of as- signment decisions, so that future assignments adjust correspondingly. The system also stores such informa- tion to improve assignment decisions for future cases, in a self-learning fashion.

[0088] Even if the main part of application normally starts on the cluster module 302, the node managers identify which part of the application to run on the cluster module 302 or the booster module 304. Basis for the decisionaree.g. indicationsby theapplicationcode itself, of the observation of the codes performance while run- ning. This allows adjustments to the assignment during the computing of the application.

[0089] Node managers 309 can be implemented in hardware, or software, e.g. as daemon processes run- ning on the respective nodes. Node managers 309 con- stantly gather information in order to build a global view on modules and the entire system. Applications running on system can benefit from this information by commu- nication with the management function or directly with individual node managers 309. This is realized by parti- cular interface, which can be hardware or an API (appli- cation programming interface).

[0090] The communication traffic of node managers is strictly separated from intra and inter module commu- nication. This allows the intra and inter module commu- nication to runwith high speed uninterrupted bymanage- ment functions. Furthermore, systemsecurity can further be enhanced by such separation.

[0091] The use of the actual communication network is controlled by node managers 309, which provides such functionality to theapplication viamessagepassing inter- face (MPI). The node managers 309 uses an adminis- tration network (not shown). The administration network (not shown) can be the same or a different physical network than the physical network used for intra and inter module communication. For example, the intra and inter module communication can be InfiniBand, Myrinet etc. and the administration network (not shown) can be formed by Ethernet connecting the node managers 309.

[0092] Special nodes can be included in the system for providing a front end allowing administrative tasks or control functions to run the system. The front-end 350 does not need to be connected to the communication network, but just to the communication network. Via the front-end 350node,which could be formede.g. by awork station computer, a personal computer (PC) a laptop computer or any smart computing device, the modular computing system 300 can be administrated. Applica- tions running on themodular computing system300s can be scheduled, started, stopped and monitored. This can be done by batch processing, i.e. by executing a series of jobs on themodular computing system 300 without man- ual intervention, hence, non-interactive.

[0093] Besides running a series of jobs on themodular computing system 300 without manual intervention, the node managers may provide interactive computing, in which the application running on the modular computing system 300 accepts input from humans as it runs. This input may be provided via a work station computer, a personal computer (PC) a laptop computer or any smart computing device. In such a scenario the modular com- puting system 300 is accessible via e.g. the laptop com- puter, appearing as the laptop computer would have the computation power of the modular computing system 300. This is very useful for real time applications, which must respondwithin a time frame that the user senses as immediate or current. Also Big Data applications, which make voluminous amount of structured, semi structured and unstructured data accessible for mining information, can make use of such an arrangement. This is also true for cloud computing services having the modular com- puting system 300 as an underlying resource for the provision of computation power and storage. Preferred aspects of the invention

[0094] 5 10 15 20 25 30 35 40 45 50 55 10 17 EP 4 711 927 A2 18 1. A modular computing system for performing com- putation of application programs including different modules, eachmodule including a plurality of nodes, the modular computing system further includes a modular computing abstraction layer distributed across the nodes and providing intra‑ and inter-mod- ule communication and a management function for the nodes of the different modules. 2. The modular computing system according to as- pect 1, characterized in that thedifferentmodulesare formed by at least a cluster module, a booster mod- ule and a storage module. 3. The modular computing system according to as- pect 1 or 2, characterized in that the modular com- puting abstraction layer is implemented by node managers provided in the nodes. 4. The modular computing system according to as- pect 3, characterized in that the node managers communicate with each other via an administration network. 5. The modular computing system according to any of the preceding aspects, characterized in that the plurality of nodes communicate via a communication network. 6. The modular computing system according to as- pect 5, characterized in that the communication net- work is implemented using a shared memory com- munication. 7. The modular computing system according to as- pect 3, wherein communication between node man- agers is separated from communication betrween modules. 8. The modular computing system according to as- pect 3, wherein the node managers exchange in- formation such that they each maintain a set of information about a status of each node and each interconnect between the nodes. 9. The modular computing system according to as- pect 8, wherein the set of information is used to dynamically adjust an operation of the system by assigning resources to the nodes dependent on the set of information. 10. A method for managing a modular computing system for performing computation of application programs including different modules, each module having a plurality of nodes and the modular comput- ing system having a modular computing abstraction layer distributed across the nodes, including the step of providing using the modular computing abstrac- tion layer intra‑ and inter-node communication and a management function for the nodes of the different modules. 11. The method for managing a modular computing system according to aspect 10, further including node managers, further including the step of the nodemanagers collecting information about the sta- tus of the nodes and assigning resources to the nodes depending on the collected status informa- tion. Claims 1. Amodular computing system for performing compu- tation of application programs, comprising: differentmodules, eachmodule including a plur- ality of nodes; and a modular computing abstraction layer distribu- ted across the nodes, a communication network used for the intra- module and inter-module communication, wherein the modular computing abstraction layer is implemented by node managers pro- vided in the nodes, wherein the modular computing abstraction layer is configured to provide intra-module and inter-module communication between the nodes of the different modules, and to provide a management function for the nodes of the different modules, wherein the nodes are configured to communi- cate via the communication network, wherein the node managers are configured to communicate with each other via an administra- tion network for exchanging management infor- mation, the administration network being sepa- rated from the communication network used for the intra-module and inter-module communica- tion, and wherein each node manager is configured to gather and exchange information about the overall system, and to control, based on the gathered informa- tion, at least one of: for dynamic assignment of nodes or controlling communication. 2. Themodular computing systemaccording to claim1, characterized in that the different modules are formed by at least a cluster module, a booster mod- ule and a storage module. 3. The modular computing system according to one of the preceding claims, characterized in that the communication network is implemented using a 5 10 15 20 25 30 35 40 45 50 55 11 19 EP 4 711 927 A2 20 shared memory communication. 4. The modular computing system according to one of the preceding claims, wherein the node managers exchange information such that theyeachmaintain a set of information about a status of each node and each interconnect between the nodes. 5. Themodular computing systemaccording to claim4, wherein the set of information is used to dynamically adjust an operation of the system by assigning re- sources to the nodes dependent on the set of infor- mation. 6. The modular computing system according to one of the preceding claims, wherein the modular comput- ing abstraction layer is configured to identify mal- functioning nodes or nodes close to fail. 7. Themodular computing systemaccording to claim6, wherein identifying malfunctioning nodes or nodes close to fail, is based on system parameters, the systemparameters include oneormore of: tempera- ture, availablememory, the variationof thoseproper- ties over time. 8. The modular computing system according to one of the preceding claims, wherein the modular comput- ing abstraction layer is configured to recognize and control dependencies between processes and their requirements, and based on this, to create pro- cesses on nodes in case of a booster module or a cluster module, or to assign storage in case of a storage module. 9. The modular computing system according to one of the preceding claims, wherein the modular comput- ing abstraction layer is configured to provide re- source management, wherein the resource man- agement is configured to reduce the number of con- nections between different processes by using on- demand connections, which are only established, when needed. 10. The modular computing system according to one of the preceding claims, wherein the modular comput- ing abstraction layer is configured to provide inte- grated control by using information gathered by the modular computing abstraction layer for controlling communication. 11. The modular computing system according to claim 10, wherein the integrated control is configured to take into consideration the actual system state and application demands. 12. The modular computing system according to claim 11, wherein the integrated control is configured to predict upcoming requests for module or intercon- nect usage. 13. Amethod for operating amodular computing system for performing computation of application programs, the modular computing system comprising dif- ferent modules, each module including a plur- ality of nodes, a modular computing abstraction layer distribu- ted across the nodes, a communication network used for intra-module and inter-module communication, wherein the modular computing abstraction layer is imple- mented by node managers provided in the nodes, the modular computing abstraction layer being configured to provide intra-module and inter- module communication between the nodes of the different modules and to provide a manage- ment function for the nodes of the different mod- ules, wherein the nodes are configured to communi- cate via the communication network, and the node managers are configured to communicate with eachother via anadministration network for exchanging management information, the ad- ministration network being separated from the communication network used for the intra-mod- ule and inter-module communication, the method comprising: gathering, by each nodemanager, informa- tion about the overall system, exchanging, by the node managers via the administra- tion network, the gathered information, and controlling, by each node manager based on the gathered and exchanged informa- tion, at least one of dynamic assignment of nodes or communicationwithin themodular computing system. 5 10 15 20 25 30 35 40 45 50 55 12 EP 4 711 927 A2 13 EP 4 711 927 A2 14 EP 4 711 927 A2 15 EP 4 711 927 A2 REFERENCES CITED IN THE DESCRIPTION This list of references cited by the applicant is for the reader’s convenience only. It does not form part of the European patent document. Even though great care has been taken in compiling the references, errors or omissions cannot be excluded and the EPO disclaims all liability in this regard. Patent documents cited in the description • WO 2012049247 A1

[0009] Non-patent literature cited in the description • NORBERT EICKER et al. The DEEP project Pursu- ing cluster-computing in the many-core era. 42nd International Conference on Parallel Processing, 2013, 885-892

[0009] • The DEEP Project An alternative approach to heterogenous cluster-computing in the many-core era. Concurrency and Computation: Practice and Experience, 2015, vol. 28, 2394-2411

[0009] 摘要 本發明涉及高性能計算( HPC )的技術領域。具體地,本發明涉及異構計 算系統,特別是包括不同模塊的計算系統,不同模塊可被自由地分配以聯合處理計算 任務。提供被稱為模塊計算抽象層(MCAL)的控制實體,控制實體允許由不同模塊提供 的各種資源的動態分配。由於其針對不同計算需求進行調整的靈活性,本發明也可適 用為用於提供雲計算服務的底層系統,底層系統主要經由因特網按需求向計算機和其 他裝置提供共享的計算機處理資源和數據。

Claims

1. A modular computing system for performing computation of application programs, comprising: different modules, each module including a plurality of nodes; and a modular computing abstraction layer distributed across the nodes, a communication network used for the intra-module and inter-module communication, wherein the modular computing abstraction layer is implemented by node managers provided in the nodes, wherein the modular computing abstraction layer is configured to provide intra-module and inter-module communication between the nodes of the different modules, and to provide a management function for the nodes of the different modules, wherein the nodes are configured to communicate via the communication network, wherein the node managers are configured to communicate with each other via an administration network for exchanging management information, the administration network being separated from the communication network used for the intra-module and inter-module communication, and wherein each node manager is configured to gather and exchange information about the overall system, and to control, based on the gathered information, at least one of: for dynamic assignment of nodes or controlling communication.

2. The modular computing system according to claim 1, characterized in that the different modules are formed by at least a cluster module, a booster module and a storage module.

3. The modular computing system according to one of the preceding claims, characterized in that the communication network is implemented using a shared memory communication.

4. The modular computing system according to one of the preceding claims, wherein the node managers exchange information such that they each maintain a set of information about a status of each node and each interconnect between the nodes.

5. The modular computing system according to claim 4, wherein the set of information is used to dynamically adjust an operation of the system by assigning resources to the nodes dependent on the set of information.

6. The modular computing system according to one of the preceding claims, wherein the modular computing abstraction layer is configured to identify malfunctioning nodes or nodes close to fail.

7. The modular computing system according to claim 6, wherein identifying malfunctioning nodes or nodes close to fail, is based on system parameters, the system parameters include one or more of: temperature, available memory, the variation of those properties over time.

8. The modular computing system according to one of the preceding claims, wherein the modular computing abstraction layer is configured to recognize and control dependencies between processes and their requirements, and based on this, to create processes on nodes in case of a booster module or a cluster module, or to assign storage in case of a storage module.

9. The modular computing system according to one of the preceding claims, wherein the modular computing abstraction layer is configured to provide resource management, wherein the resource management is configured to reduce the number of connections between different processes by using on-demand connections, which are only established, when needed.

10. The modular computing system according to one of the preceding claims, wherein the modular computing abstraction layer is configured to provide integrated control by using information gathered by the modular computing abstraction layer for controlling communication.

11. The modular computing system according to claim 10, wherein the integrated control is configured to take into consideration the actual system state and application demands.

12. The modular computing system according to claim 11, wherein the integrated control is configured to predict upcoming requests for module or interconnect usage.

13. A method for operating a modular computing system for performing computation of application programs, the modular computing system comprising different modules, each module including a plurality of nodes, a modular computing abstraction layer distributed across the nodes, a communication network used for intra-module and inter-module communication, wherein the modular computing abstraction layer is implemented by node managers provided in the nodes, the modular computing abstraction layer being configured to provide intra-module and inter-module communication between the nodes of the different modules and to provide a management function for the nodes of the different modules, wherein the nodes are configured to communicate via the communication network, and the node managers are configured to communicate with each other via an administration network for exchanging management information, the administration network being separated from the communication network used for the intra-module and inter-module communication, the method comprising: gathering, by each node manager, information about the overall system, exchanging, by the node managers via the administration network, the gathered information, and controlling, by each node manager based on the gathered and exchanged information, at least one of dynamic assignment of nodes or communication within the modular computing system.