EXCHANGE OF USER ENVIRONMENTS OF EDGE COMPUTING SYSTEMS AND HIGH-PERFORMANCE COMPUTER SYSTEMS
By extending the data plane of an HPC system to an edge computing system using a UAIe instance, the challenges of data exchange between these systems are addressed, resulting in automated and simplified data transfer and enhanced user environment exchange.
Patent Information
- Application Number
- DE102024112448
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-10-30
- Filing Date
- 2024-05-03
- Publication Date
- 2025-04-30
AI Technical Summary
Establishing data exchange between high-performance computing (HPC) systems and edge computing systems is challenging due to their separate management domains and the need for manual intervention in communication.
The data plane of an HPC system is extended to an edge computing system through a User Access Interface instance (UAIe instance) on the edge computing system, which establishes a strong connection and automates data exchange between the two systems.
This solution simplifies the connection between edge and HPC systems, enables automatic data exchange, and allows for the exchange of user environments, enhancing laboratory workflows and enabling immediate control of experiments in a consistent user environment.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
BACKGROUND
[0001] A high-performance computing (HPC) cluster consists of a collection of compute nodes that coordinate their processing activities to achieve a common goal. The compute nodes of an HPC cluster can perform parallel processing of large-scale, multidimensional datasets for a variety of purposes, such as scientific research, financial services fraud detection, animation, hydrocarbon reservoir analysis, aircraft design, autonomous automotive design, genomics, or any other use case that requires a solution to computationally complex problems. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a block diagram of a computer network including an HPC system and an edge computing system according to an example implementation. Fig. Figure 2 is a sequence flow diagram illustrating the configuration of an HPC system to prepare the HPC system for exchanging user environments with an edge computing system according to an example implementation. Fig. Figure 3 is a sequence flow diagram illustrating the configuration of an edge computing system to prepare the edge computing system for exchanging user environments with an HPC system according to an example implementation. Fig. Figure 4 is a sequence flow diagram illustrating a process for transferring data between an HPC system and an edge computing system according to an example implementation. Fig. Figure 5 is a flowchart showing a process for exchanging user environments of an HPC system and an edge computing system according to an example implementation. Fig. 6 is an illustration of machine-readable instructions stored on a non-transitory storage medium that, when executed by a machine, cause the machine to provide a user interface instance on an edge computing system to extend a data plane of an HPC system to an edge computing system, according to an example implementation. Fig. 7 is a block diagram of an HPC system having a plurality of compute nodes executing parallel processing tasks and an edge computing system manager endpoint communicating with an interface instance of an edge computing system to extend a data plane of the HPC system to the edge computing system, according to an example implementation. DETAILED DESCRIPTION
[0002] An HPC system can perform parallel processing to solve computationally complex problems, which benefits an edge computing system. For example, the edge computing system might be an experimental or instrumental edge facility that has significant computational, storage, and network resources, compared to resource-constrained edge computing systems (e.g., an edge computing system of Internet of Things (IoT) devices). Accordingly, large amounts of data can be exchanged between the edge computing system and the HPC system. Furthermore, the computational activities between the systems can be interconnected. For example, the edge computing system might infer data using machine learning models, and the HPC system might perform related computational tasks, such as training machine learning models and tuning model parameters.Because edge and HPC systems may be separate systems belonging to different administrative domains, setting up both systems for data exchange can be challenging. Furthermore, data exchange between the two systems may require manual intervention, which can be impractical for supporting the interconnected computational activities of the two systems. According to implementation examples, the data plane of an HPC system is extended to an edge computing system by deploying a user access interface instance (here referred to as a "UAIe instance") on the edge computing system.The UAIe instance establishes a strong connection between the edge computing system and the HPC system, which, among other things, simplifies the connection of the edge computing system to the HPC system and enables the HPC system to exchange data with the edge computing system in an automated manner.
[0003] The UAIe instance enables the exchange of user environments between the edge computing system and the HPC system. In this context, a “user environment” refers to a framework for accessing resources of a computing system. In one example, a user environment may correspond to a particular operating system, file system, one or more applications, specific resources (e.g., input devices, files, data acquisition devices, mass storage devices, or any other device whose access can be controlled by an operating system), and access rights. The term “exchange” of a first user environment with a second user environment, as used herein, refers to the creation of a user environment that includes elements of both the first and second user environments. In one example, a UAIe instance may provide a user environment that includes a software stack (e.g.,An embedded system (such as an operating system, middleware, virtualization components, applications, and other features) and a file system familiar to users of the edge computing system. Furthermore, the UAIe instance can provide elements from the HPC system's user environment, such as a shared file system and HPC system access rights. Because the UAIe instance is hosted on the edge computing system, laboratory workflows on the edge computing system can be executed within the context of the UAIe instance. Furthermore, an experimenter can take direct control of the experiments in a consistent user environment that is familiar to developers and scientists alike.
[0004] According to example implementations, setting up the HPC and edge computing systems to use the UAIe instance involves actions performed in the management domains of both systems. On the HPC system side, the actions include creating a UAIe container image, associating the UAIe container image with a cryptographic authentication token, starting an Edge Manager endpoint instance on the HPC system, and configuring the Edge Manager endpoint instance to allow external access to an Ingress service based on the cryptographic authentication token.On the edge computing system side, the actions include deploying a UAIe instance and using the deployed UAIe instance to mount edge computing system resources to the edge computing system's file system and to mount a shared HPC system file system to the edge computing system's file system.
[0005] According to example implementations, a system administrator with appropriate credentials for the HPC system sets up an Edge Manager endpoint instance on the HPC system to set up the HPC system. The Edge Manager endpoint instance provides an ingress service that enables communication with the UAIe instance for the purpose of exchanging data between the Edge and the HPC system. According to example implementations, the Edge Manager endpoint configures a service mesh gateway of the HPC system to enable external access to the ingress service. According to example implementations, the system administrator can configure the service mesh gateway to expose an address (such as an Internet Protocol (IP) address or a Uniform Resource Indicator (URI)) of the system for external access. The address (a so-called "external address") can include a specific port number.
[0006] A system administrator for the HPC system can configure the service mesh gateway with an access authorization policy that specifies one or more rules for controlling an external requester's access to the access service's external address. According to sample implementations, the ingress authorization policy includes a rule that specifies that an access request directed to the ingress service's external address is allowed for a requester who provides the cryptographic authentication token, but is denied otherwise.
[0007] A system administrator for the HPC system can further create a container image for the UAIe instance and store the container image in an image repository or registry of the HPC system. Furthermore, according to sample implementations, the system administrator links the cryptographic authentication token to the UAIe container image so that the authentication token is available to an authorized user of the UAIe image.
[0008] To set up the edge computing system, a user of the edge computing system, with appropriate credentials, uses the UAIe container image to deploy a UAIe instance on the edge computing system. The user can then access the UAIe instance to remotely mount a file system of the HPC system to a file system of the edge computing system to create what is known as an "extended file system." In one example, the remote mounting may use a file system client of the edge computing system. In one example, the file system client may be a Secure Shell File System (SSHFS) client that uses a file transfer protocol (such as Secure File Transfer Protocol (SFTP) or Secure Copy Protocol (SCP), or another secure file transfer protocol) to transfer files between the edge computing and HPC systems.In one example, the edge computing system may have a Linux operating system, and the SSHFS client may be a tool of the Linux operating system package. In one example, the extended file system may be a user-space file system (FUSE). Configuring the edge computing system may further include a user of the UAIe instance providing input to the UAIe instance to mount resources (e.g., input devices and / or storage devices) of the edge computing system into the extended file system.
[0009] After the UAIe instance is deployed on the edge computing system, the UAIe instance connects to the HPC system's ingress service. This connection process involves the UAIe instance providing the cryptographic authentication token, and the process involves the HPC system's service mesh gateway authenticating the UAIe instance based on the cryptographic authentication token and registering the UAIe instance. After the UAIe instance is successfully authenticated, the HPC system initiates and maintains a tunnel connection with the UAIe instance. Through the tunnel connection, a platform service of the HPC system can provide application programming interface (API) requests to the UAIe instance, for example, to utilize the extended file system to exchange data between the HPC system and the edge computing system.
[0010] In one example, data exchange may include transferring files from the edge computing system that contain input data consumed by jobs of the HPC system. In one example, the input data may represent inference data resulting from machine learning-based reasoning operations performed on the edge computing system. The compute nodes of the HPC system may process the input data for various reasons, such as for simulating machine learning models, training machine learning models, tuning machine learning model parameters, or other parallel processing operations that solve computationally complex problems. In another example, data exchange may include transferring files from the HPC system that contain data produced as output from jobs of the HPC system.In one example, the output data may represent machine learning models, machine learning tuning parameters, or other data consumed by processing operations on the edge computing system.
[0011] As in Fig. 1, a computer network 100 includes an edge computing system 104 and an HPC system 164. According to example implementations, the edge computing system 104 and the HPC system 164 are located in different administrative domains. In one example, the HPC system 164 may be cloud-based and correspond to one or more data centers. In one example, the high-performance computing system may be an exascale computing system containing hundreds to thousands of compute nodes. In one example, the computer network 100 may be a wide area network (WAN) such as the Internet, and the edge computing system 104 may correspond to a local branch network. As shown in Fig. 1, the network fabric 150 may connect the edge computing system 104 and the HPC system 164. The network fabric 150 may be connected to one or more types of communication networks, such as (as examples) Fibre Channel networks, Compute Express Link (CXL) fabrics, dedicated management networks, local area networks (LANs), WANs, global networks, wireless networks, or any combination thereof.
[0012] As used herein, an "edge computing system" refers to a system connected to entry points to a network, such as computer network 100. In one example, edge computing system 104 may be a measurement or experimental facility, and users of edge computing system 104 may be scientists or researchers. Resources 106 of edge computing system 104 may include storage devices 114, computational resources 109, input devices, data acquisition devices, an operating system 113, and an extended file system 112 containing directories on both edge computing system 104 and HPC system 164, as further described herein. Computational resources 109 may, for example, be nodes that process tasks related to model-based machine learning inference based on data acquired by edge computing system 104.
[0013] In one example, HPC system 164 may provide elastic and scalable HPC services to edge computing system 104. In one example, HPC system 164 may include clusters of compute nodes 179 that perform parallel processing tasks for edge computing system 104, such as machine learning model simulations, training, and parameter tuning. These tasks consume input data provided by edge computing system 104. Edge computing system 104 may consume the results of the output of the tasks, such as data related to machine learning models used for inference, as well as the tuning adjustments for those models.
[0014] A user connected to the edge computing system 104 may develop, manage, and launch one or more jobs for the HPC system 164 from a user node 154 (e.g., a computing platform such as a laptop, desktop computer, tablet computer, or other processor-based electronic device). In one example, the user node 154 may be a dedicated user access node (UAN) configured for general multi-user access to the HPC system 164. In another example, and as described in Fig. 1, the user node 154 may be a general-purpose processing platform configured by a user access interface (UAI) instance 156 hosted on the HPC system 164. The UAI instance 156 may appear on demand and perform short-term tasks or long-term tasks in conjunction with the HPC system 164 without the user node 154 being dedicated for this purpose. In accordance with some implementations, the UAI instance 156 may connect to external storage by mounting storage in its containers, but may not contain its own persistent state. As a result, the UAI instance 156 may be considered disposable because the UAI instance 156 can be started and stopped without loss of user data. As shown in Fig. 1, the user node 154 may provide a graphical user interface (GUI) 158 (e.g., a GUI 158 provided by a web browser) to interact with the UAI instance 156.
[0015] Fig. 1 shows a special UAI instance, a UAIe instance 130, that can be deployed on the edge computing system 104 to extend a data plane of the HPC system 164 to the edge computing system 104. Furthermore, the UAIe instance 130 provides a mechanism for exchanging user environments of the edge computing system 104 and the HPC system 164. This data plane extension automates the exchange of data between the HPC system 164 and the edge computing system 104, as described herein. Consistent with example implementations, the UAIe instance 130 provides a user environment that has features inherited from both the edge computing system 104 and the HPC system 164. In one example, the user environment provided by the UAIe instance 130 may have a particular “look and feel” that is familiar to users of the edge computing system 104, such asa specific software stack, a specific file system, and specific access permissions. In one example, the user environment provided by the UAIe instance 130 may also include features familiar to users of the HPC system 164, such as the HPC system's shared file system and specific access permissions.
[0016] In accordance with example implementations, the UAIe instance 130 provides a command and control interface 133 and a user interface 131. The command and control interface 133 receives and processes requests from the HPC system 164 related to the transfer of data (e.g., files) between the edge computing system 104 and the HPC system 164. The user interface 131 enables, among other things, a user connected to the edge computing system 104 to set up or configure the UAIe instance 130, as further described herein. In this context, the term "data transfer" between the edge computing system 104 and the HPC system 164 refers to a process that includes transferring data from the edge computing system 104 to the HPC system 164, or vice versa.For example, a file may be transferred from edge computing system 104 to HPC system 164 by transmitting data representing the file to HPC system 164, and the transfer of data may or may not involve removing or deleting the source file stored on edge computing system 104. In another example, a file may be transferred from HPC system 164 to edge computing system 104 by transmitting data representing the file to edge computing system 104, and the transfer of the data may or may not involve removing or deleting the source file stored on HPC system 164.
[0017] The command and control interface 133 communicates with the HPC system 164 over a network connection 160, according to example implementations. According to example implementations, the HPC system 164 may initiate and maintain a secure tunnel over the network connection 160. The secure tunnel maintains the confidentiality of data transmitted between the UAIe instance 130 and the HPC system 164, even if the data is transmitted over a public network. In one example, the secure tunnel may be formed using a tunneling protocol. The tunneling protocol may be, for example, an Internet Protocol Security (IPSec) protocol, a Secure Socket Tunneling Protocol (SSTP), or another tunneling protocol that uses the payload portions of packets conforming to a first protocol to transmit packets conforming to a different second protocol.In another example, the network connection 160 may be a Secure Shell (SSH) connection, and the secure tunnel may be an SSH tunnel.
[0018] Over the network connection 160, the platform services 170 of the HPC system 164 may communicate requests to the command and control interface 133 of the UAIe instance 130 for a variety of purposes, including communicating requests to the UAIe instance 130 for the purpose of exchanging data (e.g., files) between the edge computing system 104 and the HPC system 164. In one example, a platform service 170 may send a request to the UAIe instance 130 that includes a command for the UAIe instance 130 to initiate an operation to copy or move a file from the edge computing system 104 to the HPC system 164. In another example, a platform service 170 may send a request to the UAIe instance 130 that includes a command for the UAIe instance 130 to initiate an operation to copy or move a file from the HPC system 164 to the edge computing system 104.In another example, the UAIe instance 130 may send to a platform service 170 an acknowledgment of a request sent by the platform service 170. According to example implementations, files are exchanged between the edge computing system 104 and the HPC system 164 using a file system client 140 hosted on the edge computing system 104.
[0019] As in Fig. 1, the file system client 140 communicates with the HPC system 164 over a network connection 162. In one example, the connection 162 may be an SSH connection. In this context, a "file system client" refers to a component of a computing system (e.g., the edge computing system 104) that is constructed to mount a file system of a remote computing system (e.g., the HPC system 164). In accordance with example implementations, the file system client 140 manages an extended file system 112 that includes file system directories corresponding to locations in both the edge computing system 104 and the HPC system 164.
[0020] The term "file" refers to a container of information, and a "file system" is a method and data structure for organizing a collection of files. In one example, files in a file system may be organized using a directory, which is a hierarchical structure or tree; and the location of a file within the file system may be identified by a corresponding file path. In one example, a file system may be a physical file system in which the files conform to a particular data storage format. In another example, a file system may be a virtual file system, which may be an upper file system level of a composite file system containing lower-level physical file systems accessed through the virtual file system.In one example, the edge computing system 104 may have a root file system that contains files for booting the edge computing system 104, and other file systems may be mounted at mount points that correspond to subdirectories of the root file system.
[0021] In one example for the LINUX operating system, the extended file system 112 may be a file system in user space (FUSE), i.e., a file system that can be created in user space without modifying the operating system kernel. The file system client 140, according to example implementations, uses a network file transfer protocol to mount a file system of the HPC system 164 locally on the edge computing system 104. In this context, "mounting" the file system of the HPC system 164 refers to binding one or more directories of the file system to one or more locations or mount points of an otherwise local file system of the edge computing system 104. In one example, the file system client 140 may mount a directory or directory tree of a shared file system 177 of the HPC system 164 to a directory (the "mount point" or "volume mount point") of the edge computing system 104.The shared file system 177 can be shared by the compute nodes 179 of the HPC system 164.
[0022] In one example, the file system client 140 may be a Secure Shell File System (SSHFS) client that uses a network file transfer protocol (e.g., a Secure File Transfer Protocol (SFTP or Secure Copy Protocol (SCP) or other secure network file transfer protocol)) to transfer files between the edge computing system 104 and the HPC system 164. In one example, the UAIe instance 130 may correspond to a LINUX operating system, and the SSHFS client (the file system client 140) may be a tool of the LINUX operating system package. In another example, the file system client 140 may correspond to a standalone software unit that is not part of an operating system package.
[0023] According to example implementations, in response to requests received from the HPC system 164 via the command and control interface 133, the UAIe instance 130 may initiate operations to manage the exchange of files between the edge computing system 104 and the HPC system 164. In this context, "initiating" an operation refers to starting or beginning the operation. In one example, in response to a particular request from the HPC system 164, the UAIe instance 130 may generate one or more operating system commands to fulfill the request. In a more specific example, the UAIe instance 130 may be connected to a LINUX operating system, and the UAIe instance 130 may receive a request to copy a file from the edge computing system 104 to the HPC system 164.For example, the file may be stored on a storage device 114 of the edge system 104 that corresponds to a particular directory of the extended file system 112, and the destination may correspond to a directory of the extended file system 112 associated with the storage 116 of the HPC system 164. In response to the request, the UAIe instance 130 may send a cp command with the appropriate arguments to the operating system. According to example implementations, the UAIe instance 130 may respond to a variety of different file-related and file system-related requests by issuing appropriate operating system commands.
[0024] The user interface 131 of the UAIe instance 130 allows a user (e.g., a user of the user node 154 with the appropriate credentials) to access the UAIe instance 130 to configure the extended file system 112. For example, when the UAIe instance 130 is first started, a user may access the UAIe instance 130 via the user interface 131 to execute operating system commands to mount resources of the edge system 104 into the extended file system 112. In one example, the user may enter one or more operating system commands (e.g., the make directory or mkdir command for the LINUX operating system) to add one or more directories to the extended file system and mount input devices or other local resources of the edge computer system 104 into the directory(s).The user can then enter commands to remotely mount the shared file system 177 of the HPC system 164. In an example for the LINUX operating system, the user can first create a directory of the extended file system 112 that will be the mount point (e.g., create a directory with the mkdir command) and then enter the sshfs command to cause the file system client 140 to remotely mount the shared file system 177 of the HPC system 164. The sshfs command can specify a specific directory or directory tree of the shared file system 177 to be mounted to the mount point of the extended file system 112. In accordance with further implementations, the user interface 131 of the UAIe instance 130 may accept other inputs (e.g., text inputs or inputs via the operation of an input device, such as a keyboard) instead of the user entering operating system commands.B. a touchpad or mouse) from the user and generate the appropriate operating system commands to perform the operations specified by the input.
[0025] The UAIe instance 130, upon startup, makes a connection request to the HPC system 104 to establish the network connection 160. In accordance with example implementations, the UAIe instance 130 provides the HPC system 104 with a cryptographic authentication token, which the HPC system 104 uses to authenticate the UAIe instance 130, as further described herein. The cryptographic authentication token may be provided to the UAIe instance 130 in any number of different ways. In one example, a user may log in to the user interface of the UAIe instance 130 with a set of credentials (e.g., a login ID and password), and the UAIe instance 130 may look up the cryptographic authentication token based on the credentials. In another example, a user may provide the cryptographic authentication token (e.g.,e.g., by key entry) to the UAIe instance 130. In another example, a user may identify or upload a file containing the cryptographic authentication token via the user interface of the UAIe instance 130.
[0026] In accordance with example implementations, the HPC system 104 includes an edge manager endpoint instance 166 that controls access to the platform services 170 of the HPC system 164. In accordance with some implementations, the HPC system 164 includes a service mesh gateway instance 168 that controls, based on an authorization policy, whether a received network connection request (e.g., an incoming TCP connection request) from the network fabric 150 is permitted. If the authorization policy permits the request, the service mesh gateway instance 168 establishes the requested network connection; otherwise, the service mesh gateway instance 168 denies the connection.
[0027] In one example, the service mesh gateway instance 168 is an ISITIO gateway that controls whether a network connection can be established to a service 167 of the edge manager endpoint instance 166 based on an ingress authorization policy. In one example, the service 167 may have an external address (e.g., a specific IP address or domain name along with a port number), and the service 167 forms a communication connection with the platform services 170. In one example, the authorization policy may allow an external connection to the service 167 if the corresponding incoming request targets the service's external address and provides the corresponding authentic credential.In one example, the authorization policy may approve a request from the UAIe instance 130 to connect to the service 167 in response to a request that provides a cryptographic authentication token that a system administrator of the HPC system 104 generated and associated with the UAIe container image.
[0028] In accordance with example implementations, in response to the service mesh gateway instance 168 successfully authenticating the UAIe instance 130, the edge manager endpoint instance 166 registers the UAIe instance 130. Furthermore, in response to the successful authentication, the edge manager endpoint instance 166 may initiate and maintain a tunnel with the UAIe instance 130 to communicate messages (e.g., messages with file system-related and file transfer-related requests) between the platform services 170 and the UAIe instance 130.
[0029] A system administrator may access the HPC system 164 via a management node 152. Thus, the management node 152 may include a graphical user interface 153 (e.g., a graphical user interface provided by a web browser) that enables the system administrator to perform actions such as creating and configuring a container image 175 corresponding to the UAIe image 130 and storing the container image 175 in an image repository or registry 174 of the HPC system 164. A system administrator for the HPC system 164 may further generate a cryptographic authentication token for the UAIe image 130 and store data in the image registry 174 or other data repository representing the cryptographic authentication token, which is accessible to an authorized user of the UAIe instance 130.Additionally, a system administrator for the HPC system 104 may configure a specific ingress authorization policy for the service mesh gateway instance 168 to allow a connection for a network request from the UAIe instance 130 if the request provides the cryptographic authentication token. To complete the setup of the HPC system 104 to use the UAIe instance 130, a system administrator may also start the Edge Manager endpoint instance 166 configured by the specific ingress authorization policy.
[0030] In accordance with some implementations, the UAIe instance 130 is a container environment 132. In context, a "container environment" refers to a collection of one or more instantiated containers (also referred to herein as "containers"). A container environment encompasses multiple containers, allowing the containers to work together for a specific purpose (e.g., deploying one or more microservices). In accordance with some implementations, a container environment may be orchestrated. An orchestrated container environment has an orchestrator that manages the lifecycles and workloads of the environment's containers. In some examples, an orchestrator may manage the deployment and resource allocation for the containers.In other examples, an orchestrator might manage container replication, container starting and stopping, container scaling, workload distribution among containers, or other aspects of the container environment's lifecycle phase or workload. In other examples, an orchestrated container environment might have a Kubernetes orchestrator or a Docker Swarm orchestrator.
[0031] In accordance with some implementations, the UAIe instance 130 may be an orchestrated container environment comprising a cluster of (virtual or physical) worker nodes 134, and each worker node 134 of the cluster may host one or more groups of containers referred to as "container pods 136." The lifecycles of the worker nodes 134 may be managed by a control plane of an orchestrator (not shown). The container environment 132 may provide one or more services 138. In one example, a service 138 may correspond to a logical abstraction of a group of container pods 136 that perform the same function. In one example, one or more services 138 may provide the user interface 131 of the UAIe instance 130. In one example, one or more services 138 may provide the command and control interface 133.In one example, one or more services 138 may provide an interface that communicates with the file system client 140.
[0032] A container is generally a virtual runtime environment for one or more applications and / or application modules, and this virtual runtime environment is structured to interface with an operating system kernel. For example, a container for a specific application may contain the executable code for the application and its dependencies, such as system tools, libraries, configuration files, executable files, and binaries for the application. The container contains an operating system kernel mount interface, but no operating system kernel. For example, the UAIe instance 130 may contain multiple containers that share the kernel via corresponding operating system kernel mount interfaces. Docker containers and rkt containers are examples of containers.
[0033] In accordance with some implementations, the Edge Manager endpoint instance 166 may be an orchestrated container environment. The orchestrated container environment may provide the ingress service 167 as well as one or more services corresponding to the service mesh gateway instance 168.
[0034] In accordance with further example implementations, one or both of the UAIe instances 130 and / or the Edge Manager endpoint instance 166 may not be container environments. In one example, in accordance with further implementations, the UAIe instance 130 may run on bare metal or within a virtual machine (and outside of a container).
[0035] Among other features of edge computing system 104, compute resource 109 may be coupled to one or more hardware processors 108 (e.g., central processing unit (CPU), processing cores, graphics processing unit (GPU) cores, or other processors) and memory 110. In one example, memory 110 is a non-transitory storage medium that may be formed from semiconductor memory devices, memristor-based memory devices, magnetic memory devices, phase-change memory devices, a combination of devices from one or more of these memory technologies, etc. Memory 110 may represent a collection of memories from both volatile and non-volatile memory devices.In accordance with some implementations, memory 110 may store machine-readable instructions that, when executed by one or more hardware processors 108, cause the hardware processor(s) 108 to form software components of edge computing system 104. As further described herein, these components may include the file system client 140, the UAIe instance 130, and one or more application operating environments 120 (e.g., bare metal environments, virtual machines, or other virtualized environments).
[0036] In examples, a particular storage device 114 of the edge computing system 104 may be a hard drive, an optical drive, a solid-state drive (SSD), a locally attached storage device, a storage area network (SAN), or other system or device that stores data.
[0037] Among other features, the HPC system 164 may include a network interface 169. The network interface 169 may include one or more actual or physical network devices (e.g., network interface controllers and gateways), as well as one or more virtual network devices. The hardware 180 of the HPC system 164 may include hardware processing cores 182 (e.g., CPU cores and / or GPU cores), memory 184, and one or more storage devices 186. Similar to the storage device 114 of the edge computing system 104, the given storage device 186 may be a hard disk drive, an optical drive, a solid-state drive (SSD), a locally attached storage device, a storage area network (SAN), or another system or device that stores data. In general, the hardware 180 supports one or more platform services 170 that may be provided by the HPC system 164.Additionally, the platform services 170 may be supported by the infrastructure support 176 of the HPC system 164. In one example, the infrastructure support 176 may include compute nodes 179, a common file system 177 shared by the compute nodes 179, an operating system, a database layer, a hypervisor, or other infrastructure components. In one example, the platform services 170 may include services associated with HPC-as-a-Service (HPCaaS).
[0038] Fig. 2 is a sequence flow diagram 200 illustrating communication between a management node 252 and an HPC system 264 to configure the HPC system 264 to access a UAIe instance hosted by an edge computing system, according to an example implementation. Referring to Fig. 2, the flowchart 200 includes a system administrator for the HPC system 264 creating and configuring a UAIe image, as shown in 204. Furthermore, the system administrator stores the UAIe image in an image buffer of the HPC system 264, as also shown in 204.
[0039] As in Fig. As shown, setting up the HPC system 264 further includes the system administrator generating a cryptographic authentication token (e.g., a cryptographic key, a digital certificate, or other cryptographic artifact containing an alphanumeric sequence) for the HPC system 264 and associating the cryptographic authentication token with the UAIe image. In one example, the system administrator may associate the HPC system credentials of one or more edge system users with the cryptographic authentication token so that the users, when logged into the HPC system 264, have access to the token.
[0040] The system administrator can next create and configure an Edge Manager endpoint for the HPC System 264, as described in Fig. shown. In one example, the system administrator can start an Edge Manager endpoint instance on the HPC system 264 and configure the instance with an ingress authorization policy. In one example, the ingress authorization policy can specify a rule for a requestor requesting a connection to a specific address (e.g., a domain name or IP address along with a port number) that corresponds to an access service. In one example, the rule can require the requestor to provide the cryptographic authentication token so that the connection is not dropped and the requestor (e.g., an authorized UAIe instance) is registered with the Edge Manager instance.
[0041] Fig. 3 is a sequence flow diagram 300 illustrating the actions performed by an authorized user of an edge computing system 304 using a user node 354 to configure the edge computing system to communicate with an edge manager endpoint instance of an HPC system 364, in accordance with example implementations. Referring to Fig. 3, the sequence 300 first includes the user deploying the UAIe instance on the edge computing system 304, as illustrated at 320. In one example, the user may deploy the UAIe instance on the edge computing system 304 using Podman, CRI-O, DOCKER, or another container engine.
[0042] After the UAIe instance is deployed and started on the edge computing system, the user next logs in to the UAIe instance's user interface and provides the cryptographic authentication token, as illustrated in 324. The cryptographic authentication token may be provided to the UAIe instance in various ways, such as through logging in (e.g., mapping the credentials to the cryptographic authentication token), through the user providing the cryptographic authentication token via input, or through the user identifying a file or location in which data representing the cryptographic authentication token is stored.
[0043] Next, as illustrated at 332, the user may provide input to the UAIe instance to configure a file system (e.g., a FUSE) for the edge computing system 304 that includes one or more directories and / or directory trees of the HPC system 364. In particular, in accordance with example implementations of the UAIe instance, the user may provide input to create one or more mount points for the edge computing system's file system and then mount those mount points into specific directories and / or directory trees of the HPC system's shared file system. In one example, creating mount points and remotely mounting them into the HPC system's shared file system may involve the user providing operating system commands that invoke operations performed by a file system client of the remote computing system.In another example, creating mount points and remotely mounting into the HPC's shared file system may involve the user providing input that causes the UAIe system to generate operating system commands that invoke operations performed by the file system client.
[0044] According to example implementations, in response to the provision of the cryptographic authentication token, the UAIe instance may send a network connection request (with the cryptographic authentication token) to the Edge Manager endpoint instance of the HPC system 364 and connect to the Edge Manager endpoint instance, as shown at 336. Although this is Fig. 3, after the operations related to remote assembly, the UAIe instance can generally establish a connection with the Edge Manager endpoint instance at any time after obtaining access to the cryptographic authentication token. As also illustrated at 336, the UAIe instance connecting to the Edge Manager endpoint instance causes the Edge Manager endpoint instance to initiate and maintain a tunnel with the UAIe instance. At this point, both the HPC system 364 and the edge computing system 304 are configured to extend the data plane of the HPC system 364 to the edge computing system 304.
[0045] Fig. 4 is a sequence flow diagram 400 illustrating communication for exchanging data between an HPC system 480 and an edge computing system 454 according to example implementations. As shown in Fig. 4 at 404, a platform service 488 of the HPC system 480 generates an API request directed to exchanging data between the HPC system 480 and the edge computing system 454. In one example, the platform service 488 is coupled to a job scheduler or manager. In one example, the API request may be directed to copying or moving a file stored on a storage device 464 of the edge computing system 454 to a storage device 486 of the HPC system 480. In one example, moving or copying the file may be associated with moving a file containing data collected and processed by the edge computing system 454 and serving as input to one or more parallel processing jobs executed by compute nodes of the HPC system 480.In one example, moving or copying the file may be associated with moving a file that contains data generated by machine learning-based inference performed by the edge computing system 454 and that serves as input to one or more parallel processing jobs performed by compute nodes of the HPC system 480.
[0046] In another example, the API request may be directed to copying or moving a file stored on a file storage device 486 of the HPC system 480 to a file storage device 464 of the edge computing system 454. In one example, moving or copying the file may be associated with moving a file containing data representing a machine learning model generated through parallel processing by compute nodes of the HPC system 480. In one example, moving or copying the file may be associated with moving a file containing data representing tuning parameters of a machine learning model generated through parallel processing by compute nodes of the HPC system 480.
[0047] As in the Fig. As shown, a service 484 of the HPC system 480 forwards the API request to a UAIe instance 470 hosted on the edge computing system 454. In one example, the service 484 may be a service of an edge manager endpoint instance of the HPC system 480, and forwarding the API request may involve communication over a tunnel between the edge manager endpoint instance and the UAIe instance 470.
[0048] As illustrated at 416, in response to receiving the forwarded API request, the UAIe instance 470 initiates one or more data exchange operations in response to the forwarded API request. In one example, initiating the data exchange operations may include the UAIe instance 470 generating one or more operating system commands. A file system client 478 of the edge computing system 454 may then respond to the initiation to perform the requested data exchange operation(s). In one example, the data exchange operation may correspond to an operation to copy or move a file from a directory corresponding to a storage location of the edge computing system 454 to a directory corresponding to a storage location of the HPC system 480, or vice versa.In one example, the file system client 478 may use a network file transfer protocol, such as SFTP, to move or copy the data between the systems 454 and 480.
[0049] Although in Fig. 4, in accordance with some implementations, the UAIe instance 470 may transmit an acknowledgment message back to the platform service 488 via the network connection to the service 484. In one example, an acknowledgment may confirm receipt of the API request. In one example, an acknowledgment may confirm completion of the data exchange operation(s).
[0050] As in Fig. 5, according to example implementations, a process 400 includes hosting (block 504) a user interface instance on an edge computing system located external to a high-performance computing system. In one example, the edge computing system may be an experimental or instrumental edge facility that has significant compute, storage, and network resources compared to a resource-constrained edge computing system (e.g., an edge computing system of IoT devices). In one example, the edge computing system may perform model-based inference through machine learning. In one example, the high-performance computing system may perform simulations of the machine learning-based model. In one example, the high-performance computing system may be an exascale computing system that includes hundreds to thousands of compute nodes.In one example, the high-performance computing system may tune the parameters of the machine learning model. In one example, the user interface instance may be a container environment. In one example, the container environment may contain one or more container pods.
[0051] According to block 508, process 500 includes providing a cryptographic authentication token by the user interface instance to an endpoint instance of the high-performance computing system. In one example, the cryptographic authentication token may be a cryptographic key, a digital certificate, or other cryptographic artifact containing an alphanumeric sequence. In one example, the endpoint instance may be a container environment. In one example, the endpoint instance may correspond to an edge manager for the high-performance computing system. In one example, the endpoint instance may configure a service mesh gateway of the high-performance computing system. In one example, the service mesh gateway may be an ISITIO service mesh gateway.
[0052] The process 500 further includes, according to block 512, in response to providing the cryptographic authentication token, establishing a connection between the user interface instance and the endpoint instance. In one example, the endpoint instance may initiate and maintain a tunnel with the user interface instance. In one example, the tunnel may be formed using a tunneling protocol. In examples, the tunneling protocol may be an IPSec protocol, SSTP, or another tunneling protocol that uses the payload portions of packets conforming to a first protocol to transmit packets conforming to a different second protocol. In another example, the tunnel may be an SSH tunnel.
[0053] The process 500 includes mounting (block 516) a directory of a first file system of the high-performance computing system into a second file system of the edge computing system to provide an extended file system. In one example, the mounting may include one or more directories of the first file system in a volume mount point of the second file system. In one example, the second file system of the edge computing system may have one or more locations corresponding to resources of the edge computing system. In one example, the mounting includes using a file system client, such as an SSHFS client. In one example, the mounting includes using a network file transfer protocol, such as SFTP.
[0054] According to block 520, process 500 includes exchanging a user environment of the edge computing system with a user environment of the high-performance computing system. The exchange includes, in response to the user interface instance receiving a request from the high-performance computing system over the connection, the user interface instance initiating an operation to transfer data between the edge computing system and the high-performance computing system. In one example, the transfer of data may include transferring one or more files between the high-performance computing system and the edge computing system. In one example, the data transfer may include transferring a file from the edge computing system containing inputs for jobs processed by compute nodes of the high-performance computing system.In one example, the data transfer may include transferring a file from the high-performance computing system that contains the output of jobs processed by compute nodes of the high-performance computing system.
[0055] As in Fig. 6, a non-transitory storage medium 600 stores machine-readable instructions 610, according to example implementations. When executed by a machine, the instructions 610 cause the machine to deploy a user interface instance on an edge computing system. In one example, the edge computing system may be an experimental or instrumental edge facility that has significant compute, storage, and network resources compared to a resource-constrained edge computing system (e.g., an edge computing system of IoT devices). In one example, the edge computing system may perform model-based inference through machine learning. In one example, the high-performance computing system may perform simulations of the machine learning-based model.In one example, the high-performance computing system may be an exascale computing system containing hundreds to thousands of compute nodes. In one example, the high-performance computing system may tune the parameters of the machine learning model. In one example, the user interface instance may be a container environment. In one example, the container environment may contain one or more container pods. In one example, the user interface instance may provide one or more microservices. In one example, the user interface instance may be provided by an orchestrated cluster of worker nodes.
[0056] Instructions 610, when executed by the machine, also cause the machine to cause the user interface instance to provide a service mesh gateway of a high-performance computing system with a first request to register the user interface instance with an endpoint manager instance of the high-performance computing system. In one example, the endpoint manager instance may be a container environment. In one example, the endpoint manager instance may configure a service mesh gateway of the high-performance computing system to control external access to a service of the endpoint manager instance. In one example, the service mesh gateway may be an ISITIO service mesh gateway.
[0057] The instructions 610, when executed by the machine, further cause the machine to cause the user interface instance to mount a file system of the edge computing system and a file system of the high-performance computing system to provide an extended file system accessible by the edge computing system. In one example, mounting may comprise mounting one or more directories of a file system of the high-performance system to a volume mount point of a file system of the edge computing system. In one example, the file system of the edge computing system may have one or more locations corresponding to resources of the edge computing system. In one example, mounting comprises using a file system client, such as an SSHFS client. In one example, mounting comprises using a network file transfer protocol, such as SFTP.
[0058] Instructions 610, when executed by the machine, further cause the machine to cause the user interface instance to transfer data between locations of the enhanced file system in response to a second request sent via the service mesh gateway to exchange data between the edge computing system and the high-performance computing system. In one example, the data transfer may include transferring one or more files between the high-performance computing system and the edge computing system. In one example, the data transfer may include transferring a file from the edge computing system containing data representing inputs for jobs processed by compute nodes of the high-performance computing system.In one example, the data transfer may include transferring a file from the high-performance computing system that contains data representing the output of jobs processed by compute nodes of the high-performance computing system.
[0059] According to Fig. 7, a first computing system 700 includes a plurality of compute nodes 704 that perform parallel processing tasks in conjunction with an edge computing system. In one example, the first computing system 700 may be a high-performance computing system. In one example, the compute nodes 704 may perform tasks related to model-based simulation for machine learning. In one example, the compute nodes 704 may perform tasks related to tuning parameters of machine learning-based models. In one example, the first computing system 700 may be an exascale system having hundreds to thousands of compute nodes 704.
[0060] The first computing system 700 also includes an edge manager endpoint 708. In one example, the edge manager endpoint 708 may be an instance corresponding to a container environment. The edge computing system manager endpoint 708 authenticates an interface instance of an edge computing system based on a cryptographic authentication token provided by the interface instance. In one example, the edge computing system may be a measurement or testing facility. In one example, the edge computing system may perform machine learning-based inference. In one example, the cryptographic authentication token may be a cryptographic key. In one example, the interface instance of the edge computing system may be an instance provided by a container environment.In one example, the interface instance can be provided by one or more container pods.
[0061] The edge manager endpoint 708 establishes a connection between the edge manager endpoint and the interface instance in response to the successful authentication of the interface instance. In one example, the edge manager endpoint 708 may initiate and maintain a tunnel with the user interface instance. In one example, the tunnel may be formed using a tunneling protocol. In examples, the tunneling protocol may be an IPSec protocol, SSTP, or another tunneling protocol that uses the payload portions of packets conforming to a first protocol to transmit packets conforming to a different second protocol. In another example, the tunnel may be an SSH tunnel.
[0062] The edge manager endpoint 708 sends a request to the interface instance over the connection to transfer a file between a first location of an extended file system associated with the edge computing system and a second location of the extended file system associated with the high-performance computing system. In one example, the request may result in multiple files being transferred between the high-performance computing system and the edge computing system. In one example, the file may be transferred from the edge computing system, and the file may include data representing input for jobs processed by compute nodes of the first computing system 700. In one example, the file may be transferred from the first computing system 700, and the file may include data representing the output of jobs processed by compute nodes of the first computing system 700.
[0063] According to example implementations, establishing the connection between the user interface instance and the endpoint instance involves establishing a connection to a service mesh gateway of the high-performance computing system. A particular advantage is that the data plane of the high-performance computing system can be extended to the edge computing system.
[0064] According to example implementations, hosting the user interface involves hosting a container environment on the edge computing system. A particular advantage is that the data plane of the high-performance computing system can be extended to the edge computing system.
[0065] According to example implementations, mounting the directory of the first file system involves communication between the edge computing system and the high-performance computing system using a network file transfer protocol. A particular advantage is that the data plane of the high-performance computing system can be extended to the edge computing system.
[0066] According to example implementations, a computing resource of the edge computing system is controlled in response to a second request received from the first user interface instance over the connection. A particular advantage is that the data plane of the high-performance computing system can be extended to the edge computing system.
[0067] According to example implementations, the user interface instance reports the status of an operation performed by a computing resource of the edge computing system over the connection. A particular advantage is that the data plane of the high-performance computing system can be extended to the edge computing system.
[0068] According to example implementations, the high-performance computing system comprises a plurality of compute nodes, and the second file system comprises a file system shared by the plurality of compute nodes. A particular advantage is that the data plane of the high-performance computing system can be extended to the edge computing system.
[0069] According to example implementations, a resource of the edge computing system is mounted from the user interface instance to the second file system. A particular advantage is that the data plane of the high-performance computing system can be extended to the edge computing system.
[0070] According to example implementations, mounting involves mounting a subdirectory of the first file system into a mount point of the second file system. A particular advantage is that the data plane of the high-performance computing system can be extended to the edge computing system.
[0071] According to example implementations, machine learning inference is performed by the edge computing system. The machine learning inference is linked to a machine learning model. The high-performance computing system trains the machine learning model. A particular advantage is that the data plane of the high-performance computing system can be extended to the edge computing system.
[0072] According to example implementations, data transfer involves transferring machine learning-related data from the edge computing system to the high-performance computing system. A particular advantage is that the data plane of the high-performance computing system can be extended to the edge computing system.
[0073] According to example implementations, data transfer involves transferring data associated with parameters of a machine learning model from the high-performance computing system to the edge computing system. A particular advantage is that the data plane of the high-performance computing system can be extended to the edge computing system.
[0074] According to example implementations, initiating the operation involves initiating an operation to transfer data associated with machine learning inference from the edge computing system to the high-performance computing system. A particular advantage is that the data plane of the high-performance computing system can be extended to the edge computing system.
[0075] According to example implementations, initiating the operation includes initiating an operation to transfer data associated with machine learning model parameters from the high-performance computing system to the edge computing system. A particular advantage is that the data plane of the high-performance computing system can be extended to the edge computing system.
[0076] According to example implementations, the user interface instance receives a request to transfer a file associated with the machine learning inference to the high-performance computing system. The file is transferred by the edge computing system to the high-performance computing system, which responds to the request. A particular advantage is that the data plane of the high-performance computing system can be extended to the edge computing system.
[0077] The detailed description contained herein refers to the accompanying drawings. Wherever possible, the same reference numerals are used in the drawings and the above description to refer to the same or similar parts. However, it is expressly understood that the drawings are for purposes of illustration and description only. Although several examples are described in this document, modifications, adaptations, and other embodiments are possible. Accordingly, the detailed description does not limit the disclosed examples. Instead, the proper scope of the disclosed examples may be defined by the appended claims.
[0078] The terminology used herein is for the purpose of describing specific examples only and is not intended to be limiting. The singular forms “a,” “an,” and “the” include the plural forms unless the context clearly indicates otherwise. As used herein, “plural” is defined as two or more than two. As used herein, “another” means at least a second or more. The term “connected,” as used herein, is defined as connected, either directly without any intervening elements or indirectly with at least one intervening element, unless otherwise noted. Two elements may be mechanically, electrically, or communicatively connected through a communications channel, pathway, network, or system. As used herein, the term “and / or” refers to and includes all possible combinations of the listed elements. Although the terms “first,” “second,” “third,” etc.are used here to describe various elements, those elements should not be limited by these terms, as these terms are used only to distinguish one element from another unless otherwise stated or the context indicates otherwise. As used herein, the term "includes" means includes, but is not limited to; the term "including" means includes, but is not limited to; and the term "based on" means based at least in part on.
[0079] Although the present disclosure has been described with respect to a limited number of implementations, those skilled in the art, having the benefit of this disclosure, will recognize numerous modifications and variations thereof. The appended claims are intended to cover all such modifications and variations.
Claims
[1] A process comprising: Hosting a user interface instance on an edge computing system; Provision of a cryptographic authentication token by the user interface instance to an endpoint instance of a high-performance computing system external to the edge computing system; in response to the provision of the cryptographic authentication token, establish a connection between the user interface instance and the endpoint instance; Mounting a directory of a first file system of the high-performance computing system into a second file system of the edge computing system to provide an extended file system; and in response to the user interface instance receiving a request from the high-performance computing system over the connection, initiating an operation to exchange data between the edge computing system and the high-performance computing system by the user interface instance. [2] The method of claim 1, wherein establishing the connection between the user interface instance and the endpoint instance comprises establishing a connection to a service mesh gateway of the high-performance computing system. [3] The method of claim 1, wherein hosting the user interface instances comprises hosting a container environment on the edge computing system. [4] The method of claim 1, wherein mounting the first file system comprises communication between the edge computing system and the high-performance computing system using a network file transfer protocol. [5] The method of claim 1, further comprising: in response to a second request received from the user interface instance from the connection, control a computing resource of the edge computing system. [6] The method of claim 1, further comprising: in response to a computing resource of the edge computing system performing an operation, report, through the user interface instance and over the connection, a status of the operation. [7] The method of claim 1, wherein the high performance computing system comprises a plurality of compute nodes and the second file system comprises a file system shared by the plurality of compute nodes. [8] The method of claim 1, further comprising: Mounting a resource of the edge computing system into the first file system by the user interface instance. [9] The method of claim 1, wherein mounting comprises mounting a subdirectory of the first file system into a mount point of the second file system. [10] The method of claim 1, further comprising: Performing machine learning inference associated with a machine learning model by the edge computing system; and Training the machine learning model using a high-performance computing system. [11] The method of claim 10, wherein initiating the process comprises: Initiating an operation to transfer data associated with the machine learning inference from the edge computing system to the high-performance computing system. [12] The method of claim 10, wherein initiating the process comprises: Initiating an operation to transfer data associated with parameters of the machine learning model from the high-performance computing system to the edge computing system. [13] The method of claim 10, further comprising: Receiving a request by the user interface instance to transfer a file associated with the machine learning inference to the high-performance computing system; and The edge computing system transfers the file to the high-performance computing system in response to the request. [14] A non-transferable storage medium that stores machine-readable instructions which, when executed by a machine, cause the machine to: deploy a user interface instance on an edge computing system; cause the user interface instance to: Providing a first request to a service mesh gateway of a high-performance computing system to register the user interface instance with an endpoint manager instance of the high-performance computing system; Mounting a file system of the edge computing system and a file system of the high-performance computing system to provide an extended file system accessible by the edge computing system; and in response to a second request sent through the service mesh gateway, move data between the extended file system locations to exchange data between the edge computing system and the high-performance computing system. [15] The storage medium of claim 14, wherein the instructions, when executed by the machine, further cause the machine, in response to the communication, to provide data representing a file directory of the first file system to the high performance computer system. [16] The storage medium of claim 14, wherein the instructions, when executed by the machine, further cause the machine to transfer a file stored in a storage resource associated with the edge computing system to the high-performance computing system. [17] The storage medium of claim 14, wherein the instructions, when executed by the machine, further cause the machine to transfer a file stored in a storage resource associated with the high-performance computing system to the edge computing system. [18] A first computer system comprising: a plurality of computing nodes performing parallel processing tasks and connected to an edge computing system; and an Edge Manager endpoint that: authenticates an interface instance of the edge computing system based on a cryptographic authentication token provided by the interface instance; in response to the successful authentication of the interface instance, establishes a connection between the Edge Manager endpoint and the interface instance; and sends a request to the interface instance over the connection to move a file between a first location of an extended file system associated with the edge computing system and a second location of the extended file system associated with the first computing system. [19] A first computing system according to claim 18, wherein: the parallel processing jobs process the input data provided by the edge computing system; and the manager of the edge computing system transmits the input data from the edge computing system to the first computing system in response to the access. [20] A first computing system according to claim 18, wherein: the edge computing system performs machine learning based on a machine learning model; parallel processing determines parameters for the machine learning model; and the manager of the edge computing system, in response to the access, transmits the data representing the parameters from the first computing system to the edge computing system.