Docking stations
The local distributed docking station system addresses scalability and security issues by enabling resource sharing among interconnected stations, enhancing performance and security in compute-intensive tasks.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- HEWLETT PACKARD DEVELOPMENT COMPANY LP
- Filing Date
- 2025-01-16
- Publication Date
- 2026-07-23
AI Technical Summary
Existing docking stations exhibit limited scalability and computational bottlenecks when handling compute-intensive tasks like AI, ML, and HPC workloads, and cloud-centric approaches introduce security vulnerabilities and performance limitations due to network constraints.
A local distributed docking station system that facilitates resource sharing among interconnected docking stations within a secure local area network, dynamically offloading workloads to available stations and utilizing a remote server for resource management.
Enhances computational performance by optimizing resource utilization, ensuring robust security, and minimizing latency and bandwidth issues, thereby improving overall system efficiency and responsiveness.
Smart Images

Figure US2025011869_23072026_PF_FP_ABST
Abstract
Description
86352289 / HP WKS.281 WO PATENTDOCKING STATIONSBACKGROUND
[0001] Docking stations have become widely adopted in computing systems as a means for users to connect their computing devices to additional input / output peripherals, including mice, keyboards, displays, printers, and similar devices. Beyond basic connectivity, a docking station may serve as a secondary computing resource to supplement the computational and storage capacities of the user’s computing system. These additional resources can enhance the performance of tasks requiring intensive processing or storage capabilities.BRIEF DESCRIPTION OF THE DRAWINGS
[0002] Various features will now be described with reference to the following drawings. Throughout the drawings, reference numbers may be re-used to indicate correspondence between referenced elements. The drawings are provided to illustrate examples described herein and are not intended to limit the scope of the disclosure.
[0003] FIG. 1 is a block diagram of an example local distributed docking station system in accordance with the present disclosure;
[0004] FIG. 2 is a block diagram of an example system in which a docking station is connected with a user computing device in accordance with the present disclosure;
[0005] FIG. 3 is a block diagram of an example controller included in the docking station shown in FIG. 2;
[0006] FIG. 4 is a block diagram of an example distributed artificial intelligence accelerator shown in FIG. 1; and
[0007] FIG. 5 is a flow diagram depicting an example method implemented by the docking station in accordance with the present disclosure.DETAILED DESCRIPTION
[0008] The computing device manufacturing industry is witnessing a surging demand for increased computing resources, driven by the demand for higher performance to handle expanding workloads and the exponential growth of data. This trend is particularly evident in areas such as artificial intelligence (Al), machine learning (ML), and high-performance computing (HPC) systems, all of which require substantial processing power to manage big data (e.g., metadata, etc.) for various applications. In response, manufacturers are developing enhanced computing resources, such as multi-core processors, high-speed memory modules, and advanced storage solutions, to boost computational performance.
[0009] To boost computational performance, one approach involves integrating additional processors and memory modules into docking stations. Generally described, a docking station provides a centralized hub for connecting a computing system to multiple peripheral devices, such as keyboards, a mouse, monitors, printers, scanners, speakers, and external hard drives. It typically incorporates a variety of ports, including Universal Serial Bus (USB) ports (e.g., USB 3.0, USB-C, etc.), video output ports (e.g., HDMI, DisplayPort, etc.), Ethernet ports for network connectivity, and audio input / output ports. By connecting to a computing device — such as a laptop or desktop computer — the docking station facilitates data communication between the computing system and the attached peripherals. For example, it receives input signals from a keyboard and mouse and transmits these signals to the computing system via a single connection, streamlining the user’s workspace and expanding the system’s connectivity options. In addition to providing the centralized hub functionality, the docking station can implement additional computing resources, such that a user computing device (e.g., connected with the docking station) can utilize these additional computing resources, thereby, the available computing resources to the user computing device expanded. In some examples, these additional computing resources can include computing processors, such as general-purpose Central Processing Units (CPUs) designed for executing multiple instructions per clock cycle. These additional computing resources can also include memory units, having Random-Access Memory (RAM), such as Dynamic RAM (DRAM) or Static RAM (SRAM), and non-volatile storage devices like solid-state drives (SSDs) or flash memory. Collectively, these processors and memory units constitute the docking station’s secondary computing resources. In some examples, the docking stations are typically designed to allocate theirintegrated computing resources exclusively to a single computing system directly connected to the docking station.
[0010] In some implementations, the docking station, equipped with these secondary computing resources, provides additional computational power to a connected computing device — such as a laptop, notebook, desktop computer, or any other computing system (hereafter referred to as a “computing device”) — via its various ports. The computing device detects the available secondary computing resources of the docking station and offloads specific workloads, such as an artificial intelligence (Al) workload, to utilize this additional computational capacity, thereby augmenting its own resources to boost overall computational performance.
[0011] However, such docking stations exhibit limited scalability by restricting available computing resources to the secondary computing resources embedded within the docking station. The limited processing power and memory capacity of the docking station’s secondary computing resources become bottlenecks when processing compute-intensive tasks, such as Al, ML, and HPC workloads, which demand scalable and flexible computational resources. This limitation leads to inefficiencies and suboptimal performance in handling large-scale data sets or complex computational tasks.
[0012] To address scalability issues in computing resource utilization, the computing device industry is adopting a cloud-centric approach. In this cloud-centric approach, the industry maintains high-performance computing resources — hereafter referred to as “cloud resources” — in data centers that users can access remotely. A cloud system comprising these cloud resources allows multiple computing devices (e.g., user devices) to utilize a portion of the available computational power and storage on-demand. Users subscribe to the cloud service and leverage a portion of the cloud resources based on their subscription tier, effectively expanding the computing capabilities of their local devices by tapping into the vast resources of the cloud.
[0013] However, this cloud-centric approach introduces security vulnerabilities during data transfer between the computing device and the cloud system. For example, a third-party might infdtrate the cloud system with malicious code, leading to potential data breaches during the transmission of workloads and execution results. When a user transmits a workloadto the cloud system to utilize its resources, malicious code can compromise the confidentiality and integrity of both the workload and the resulting output executed by the cloud resources.
[0014] Additionally, this cloud-centric approach faces performance limitations due to network constraints. Networking performance factors such as latency, available bandwidth, and throughput significantly impact the efficiency of data transfer between the computing device and the cloud system. High latency and limited bandwidth cause delays and bottlenecks, leading to performance degradation. For instance, after the cloud system completes processing a task received from the computing device, transmitting the execution results back to the device may incur delays due to these network limitations, thereby affecting the overall responsiveness and efficiency of the system.
[0015] To address the above technical limitations, the present disclosure describes systems and methods that implement a network architecture to facilitate the sharing of computing resources among local docking stations, actively improving computational performance, fortifying security protocols, and ensuring robust data integrity. The network architecture, as disclosed herein, can be referred to as a “local distributed docking station system.” As used herein, a workload refers to specific tasks (e.g., processes or operations) performed by the system (e.g., a docking station, as described herein). In some examples, each workload may consist of various numbers and types of tasks. The present disclosure does not limit the number or types of tasks within a workload, nor on the number or types of workloads themselves. As used herein, an Al workload will be used to refer to a workload including AI-related tasks.
[0016] FIG. 1 depicts a block diagram of an example local distributed docking station system 100. In some examples, the local distributed docking station system 100 can include a plurality of docking stations 110A-110H communicatively coupled with a remote server 150. To simplify the discussion and not to limit the present disclosure, FIG. 1 illustrates eight docking stations 110A-110H and one remote server 150. However, it should be understood that multiple docking stations and / or remote servers may exist within the local distributed docking station system 100. In addition, each docking station 110A-110H can have different types and / or available computing resources. Furthermore, one or more docking stations can have no computing resources such that these one or more docking stationsfunctioning as providing data communication between peripheral devices connected to the docking stations and / or to or from other docking stations.
[0017] In some examples, the local distributed docking station system 100 includes a plurality of docking stations 110A-110H, with each docking station interconnected within a local area network (LAN) 160. For instance, docking station 110A establishes direct communication paths with each of the other docking stations 110B-110H. The local area network 160 may utilize a wired infrastructure, such as direct communication channels, wide area networks (WANs), or personal area networks (PANs). Alternatively, it can operate as a wireless network leveraging protocols such as Wi-Fi, Internet Protocol (IP), Hypertext Transfer Protocol (HTTP), HTTP Secure (HTTPS), or Message Queue Telemetry Transport (MQTT), among others. The local area network 160 is not limited to specific communication protocols. Additionally, the local area network 160 can integrate both wired and wireless communication technologies to facilitate connectivity among the docking stations.
[0018] In some scenarios, one or more docking stations 110A-110H may function as standalone devices. Alternatively, some docking stations 110A-110H may serve as modular platforms, enabling their integration into other devices such as desktop computers, laptops, tablets, local servers, set-top boxes, and similar hardware. The present disclosure does not limit the implementation or form factor of the docking stations 110A-110H.
[0019] In some examples, the local distributed docking station system 100 facilitates the sharing of computing resources among the plurality of docking stations 110A-11 OH. Specifically, when a docking station’s computing resources become saturated (or utilized in excess of a threshold amount) and are unable to efficiently process additional incoming workloads, the system dynamically offloads the excess workload to another docking station with available computing resources. For example, if docking station 110A experiences computing resources overload, it identifies a docking station operating in an idle state (or docking station having available computing resources). Upon identifying such a docking station, 110A transfers its workload to the identified docking station, thereby balancing the computational load across the system. This resource sharing mechanism enhances overall computing resource availability and enables the dynamic allocation of computing resources among docking stations, effectively boosting computing performance and ensuring efficient utilization of computing resources of each docking stations. Additionally, since the resourcesharing occurs within the secure confines of the local area network 160, the system 100 maintains robust security protocols and ensures data integrity during the transfer and processing of workloads. For the purposes of this disclosure, computing resources include hardware components such as processing units (CPUs, TPUs, NPUs, and GPUs), memory modules (RAM), storage devices (SSDs and HDDs), networking hardware (NICs, switches, and routers), and power supply units. In some examples, the computing resources can include any elements that enable the execution, storage, and transmission of data within the local distributed docking station system 100, and the present disclosure does not limit the types of computing resources.
[0020] As used herein, a central processing unit (CPU) can refer to a processing component that performs the processing of data by executing instructions, such as performing basic arithmetic, logic control, and input / output operations in accordance with the instructions. The CPU can have various architectures that dictate how the CPU processes data, executes instructions and communicates with other parts of the computer system. However, the present disclosure does not limit the CPU architectures. As used herein, a tensor processing unit (TPU) can generally refer to a processing unit (e g., a type of application-specific integrated circuit) specifically designed for accelerating Al workloads, such as handling computational requirements of executing or processing Al tasks. The TPU can include, without limiting, matrix multiplication units configured to perform matrix multiplications in accordance with the tasks of Al workload, memory configured to support data transfer demanded for Al workloads, and the like. As used herein, a neural processing unit (NPU) can generally refer to a processing unit specifically designed for accelerating processing Al workloads that involve neural networks. For example, the neural network can generally refer to a network having a plurality of nodes and layers, where each node (organized in specific layer(s)) processes data to perform the tasks (e.g., included in Al workload), such as data patter reorganization, data classification, output predictions, and the like. The NPU is designed to perform specific types of mathematical operations used in the neural network. The NPU can include a plurality of processing cores configured to execute multiple operations in the neural network parallelly. As used herein, a graphics processing unit (GPU) can refer to a processing unit designed to accelerate graphics rendering. The GPU can include a plurality of cores configured to perform parallel processing. The GPU can have various architectures based on required operation, suchas parallel processing. In addition, the GPU can be implemented as a stand-alone processing unit or integrated with other processing units, such as the CPU. The present disclosure does not limit the types of GPU architecture and implementation of the GPU.
[0021] In some examples, the local distributed docking station system 100 integrates a remote server 150. The remote server 150 and each docking station among the plurality of docking stations 110A-110H are communicatively coupled via a network 170. The network 170 comprises a combination of wired and / or wireless networks, enabling versatile communication pathways. In some cases, communication between the docking stations 110A-110H and the remote server 150 utilizes short-range communication protocols such as Bluetooth, Bluetooth Low Energy (BLE), and Near Field Communication (NFC). The network 170 can also include over-the-air broadcast networks, satellite networks, cellular telephone networks, or combinations thereof. For instance, the network 170 may function as a publicly accessible network of linked networks operated by various distinct parties, such as the Internet. In other examples, the network 170 incorporates wireless networks like Global System for Mobile Communications (GSM), Code Division Multiple Access (CDMA), Long Term Evolution (LTE), or other types of wireless networks. The network 170 supports communication protocols including Hypertext Transfer Protocol (HTTP), HTTP Secure (HTTPS), Message Queue Telemetry Transport (MQTT), Constrained Application Protocol (CoAP), among others. Protocols and components for communicating via the Internet or other aforementioned types of communication networks are well known to those skilled in the art and, thus, are not described in more detail herein. In some instances, the network 170 and the local network 160 are disparate networks. Furthermore, the network 170 can provide a lower networking performance (e.g., bandwidth and latency) than the local area network 160.
[0022] The remote server 150 can include a distributed artificial intelligence accelerator 152 and a data store 154. In some cases, the distributed artificial intelligence accelerator 152 is provided as a network service or virtual service, allowing each docking station to access it via the Internet by connecting to an Internet Protocol (IP) address associated with the distributed artificial intelligence accelerator 152. In some examples, the remote server 150 can monitor the computing resources of docking stations 110A-110H and, upon receiving a request from a docking station (or more than one docking stations), select at least one targetdocking stations with available computing resources to handle the transfer of workloads, without directly receiving or performing the workloads itself.
[0023] In some examples, the distributed artificial intelligence accelerator 152 monitors the computing resource usage of each docking station 110A-110H. For example, each docking station 110A-110H can periodically or in real time transmit its computing resource usage data (or parameters) to the distributed artificial intelligence accelerator 152. The computing resource usage data, as disclosed herein, can include individual or any combination of processing unit utilization, memory utilization, storage utilization, and power supply unit utilization. In some scenarios, the distributed artificial intelligence accelerator 152 determines the operating status of each docking station 110A-110H. For instance, if the computing resource utilization is above or below a predefined threshold, the distributed artificial intelligence accelerator 152 identifies the docking station as being in an idle state. In some cases, the distributed artificial intelligence accelerator 152 stores the monitoring results of each docking station’s available usage in the data store 154.
[0024] In some examples, the distributed artificial intelligence accelerator 152 manages computing resource sharing among the docking stations 110A-110H. For example, when a docking station (e.g., docking station 110A) offloads workload due to resource constraints, it can send a request to the distributed artificial intelligence accelerator 152 via the network 170 to select another docking station with available computing resources. In this scenario, the distributed artificial intelligence accelerator 152 identifies the appropriate docking station based on the monitored computing resource availability. In some examples, the distributed artificial intelligence accelerator 152 actively searches for docking stations with available computing resources by periodically broadcasting to docking stations 110B-110H until at least one docking station responds (e.g., with an acknowledgment) indicating the availability of computing resources.
[0025] FIG. 2 is a block diagram of an example system 200 in which a docking station 110 is connected with a user computing device 210. The docking station 110 can refer to any docking station of the plurality of docking stations 110A-110H, illustrated in FIG. 1. In addition, the docking station 110 illustrated in FIG. 2 can be deployed in the local distributed docking station system 100, as illustrated in FIG. 1. For the purpose of descriptions, FIG. 2 illustrates the docking station 110, including computing resources 220, a controller 230, anetwork instance 242, a network interface 244, and a physical interface 246. However, each docking station can have a different arrangement of the components. For example, at least one docking station of the plurality of docking stations can include the controller 230, and at least one other docking stations of the plurality of docking stations may not include the controller 230.
[0026] As illustrated in FIG. 2, the docking station 110 and the user computing device 210 are communicatively coupled. The user computing device 210 can include, without limitations, desktop, laptop, tablet computer, wearable computer, server, personal digital assistant (PDA), hybrid PDA / mobile phone, smartphone, voice command device, digital media player, and the like. For example, the user computing device 210 and the docking station 110 are communicatively coupled via wired connection (e.g., via physical interface 246) or wireless connection (e g., via network interface 244). The present disclosure does not limit the types and numbers of the wire and wireless connections, and any commercially available communication standards can be used, and such communication standards are well known to those skilled in the art and, thus, are not described in more detail herein.
[0027] In some examples, the user computing device 210 transmits workloads to the docking station 110 for execution. These workloads can include any tasks that the docking station’s computing resources 220 can process. In some scenarios, the workloads include artificial intelligence (Al) workloads, such as machine learning tasks (e.g., training and inference of machine learning models, etc.), data analysis (e.g., processing and analyzing metadata for pattern recognition, etc.), natural language processing (e.g., semantic analysis, etc.), image processing, and similar high-complexity computations. These Al workloads typically demand intensive computational resources. In other scenarios, the workloads may comprise general computing tasks that rely on computation, memory usage, or a combination thereof.
[0028] The docking station 110 incorporates computing resources 220, which may include a processing block 222 and a memory block 224. The processing block 222 may include one or more processing units (e.g., CPUs, TPUs, NPUs, and GPUs) designed for various computational functions. A central processing unit (CPU) for example, executes instructions to perform arithmetic, logic, control, and input / output operations according to a specified instruction set architecture. The CPU architecture can vary widely, and the presentdisclosure imposes no limitations on CPU design. A tensor processing unit (TPU), as another example, accelerates machine learning workloads by executing matrix multiplications and memory operations tailored to neural network training and inference. Similarly, a neural processing unit (NPU) optimizes computations for neural networks, leveraging multiple processing cores to efficiently execute parallelized machine learning tasks. A graphical processing unit (GPU) accelerates graphics rendering and parallel computations, utilizing an array of processing cores that operate concurrently. The present disclosure does not restrict the types, architectures, or implementations of any processing units in the processing block 222.
[0029] The memory block 224 communicatively couples to the processing block 222 and provides data storage capabilities. For example, the memory block 224 can include volatile memory (e.g., DRAM) for temporary data storage and non-volatile memory (e.g., flash memory) for persistent data storage. In some examples, the memory block 224 may also incorporate high bandwidth memory (HBM) or stacked memory modules to meet specific performance requirements. The present disclosure does not limit the type or configuration of memory used in the memory block 224.
[0030] As illustrated in FIG. 2, the docking station 110 includes a controller 230. In some examples, the controller 230 monitors the utilization rate of the computing resources 220. In some examples, the controller 230 can include a local processor 232 and a local memory 234. In some cases, the controller 230 can be implemented as a microcontroller, having the local processor 232 and the local memory 234. In alternative examples, the local processor 232 and / or the local memory 234 can be implemented by utilizing a dedicated resources of the processing block 222 and / or the memory block 224. The local processor 232 can execute instructions stored in the local memory 234 to perform tasks, as disclosed herein. In some examples, the local memory 234 stores a computing resources monitoring instruction 236 and a context data collecting instruction 238. For example, the controller 230, by executing the computing resources monitoring instruction 236, can periodically measure the processing unit usage (e.g., the percentage of computing power consumed, etc.) and track memory usage (e.g., memory capacity currently in use, etc.). Any commercial monitoring techniques of the computing resources can be used, and these techniques are well known to those skilled in the art and need not be described in more detail. In various examples of the monitoring the computing resources utilization, the controller 230 may define measurement intervals basedon application requirements, such as every second, every ten seconds, or event-triggered (e.g., upon receiving a new workload from the user computing device 210, etc.). In some instances, the controller 230 transmits the monitored utilization metrics to a remote server 150 (e.g., to a distributed artificial intelligence accelerator 152, etc.) via a network instance 242 (e.g., the network instance communicatively coupled with the remote server 150 via the network 170, etc.).
[0031] In some examples, the controller 230, by executing the context data collecting instruction 238, can collect a set of context data . In some examples, the context data are related to the context of workload received from a user computing device 210. For example, the context data may include number of workloads, demanded computing resources for processing the workload, demanded execution time form processing the workload, and the like. In various examples, the set of context data can define an expected utilization rate of the computing resources for processing (e.g., executing) the workload. Such computing resource demanded for processing the workload can refer to an expected utilization rate of the computing resources. For example, the docking station 110 can determine whether the computing resources can process the workload without saturation based on the context of workload. In some cases, the docking station 110 determines the expected utilization rate (e.g., whether the computing resources can process the workload) by characterizing the collected set of context data based on various types of pre-defined thresholds, such as number of expected workloads, average time of operating the docking station, and execution time. In some examples, the context data is numeric data for different computational resources. This context data can be related to the workload (e.g., Al workload) that is to be executed. For instance, the context can be a number of workloads, demanded computing resources for processing the workload, demanded execution time form processing the workload, and the like. Based on this context data and the computing resources of the docking station, the expected utilization rate can be determined.
[0032] In some scenarios, the docking station 110, based on the context parameter of the number of sub-workloads, determines whether the number of sub-workloads is higher than the threshold number of workloads. For example, the threshold of number of workloads can be determined based on the current available computing resources, such that if the available computing resources is relatively higher, the threshold of number of workloads can be-lirelatively increased. If the number of workloads is higher than the threshold of number of workloads, the docking station 110 may determine it is in a saturating condition, such that processing the workload can cause overload or saturation of the computing resources.
[0033] In some scenarios, the docking station 110 determines, based on the context parameter of the docking station operating time, whether the average docking station operating time is above a threshold operating time. In some cases, the threshold operating time can be dynamically adjusted based on user profile associated with the user computing device 210. For example, if the user profile indicates the user task execution preferences showing longer usage time during the day time than the night time, the threshold operating time can be adjusted based on the user task execution preference. In some cases, if the average docking station operating time is above the threshold operating time, the docking station 110 may determine to transfer the workload to another docking station.
[0034] In some scenarios, the docking station 110, based on the context parameter of the workload execution time, determines whether the average current workload execution time is above a threshold time. In some cases, the execution time can be associated with demanded execution time of the workload. For example, if the workload demand faster execution, the threshold time can be lower. In some cases, if the execution time is above the threshold time, the docking station 110 may determine to transfer the workload to another docking station.
[0035] In some examples, the user computing device 210 can transmit a plurality of Al workloads to the docking station 110. In these examples, the docking station 110 can identify one or more Al workloads from the plurality of Al workloads by prioritizing each Al workload. For example, the docking station 110 can prioritize the Al workloads based on historical usage of the Al workload. For example, based on the historical usage of each Al workload, the more frequently used Al workload is prioritized, while less frequency used Al workload is less prioritized. In some scenarios, after determining the expected utilization rate of the computing resources and the current utilization rate of the computing resources, the docking station 110 can select one or more Al workloads from the lower prioritized Al workloads to transfer to the target docking station.
[0036] In some examples, the controller 230 iterates through each docking station in the system and broadcast a request over the local area network 160 to find a target dockingstation. The target docking station can refer to a docking station having an expected utilization rate to process the workload. For example, if the computing resources is not able to process the workload, the docking station 110 determines a target docking station having the expected utilization rate. For instance, if docking station 110A is overloaded but docking station 110E has sufficient available resources to process the workload, the controller 230 selects docking station 110E as the target docking station. In some examples, the controller 230 iterates to each station by sending a request to transfer the workload, and docking stations with available computing resources may reply with an acknowledgment in response to the iteration, indicating their readiness to accept additional workloads.
[0037] In some examples, the controller 230 identifies a target docking station, having the expected utilization rate among the plurality of docking stations. For example, the controller 230 iterates each docking station by monitoring available computing resources of each docking station. In some examples, each docking station can transmit the threshold conditions to other docking stations, so that the docking station can monitor available resources of other docking stations. For example, the docking station 110A (shown in FIG. 1) can monitor the threshold conditions of other docking stations 110B- 11 OH. In some cases, each docking station can transmit its threshold conditions, such as the number of workloads, operating time, and the execution time, to other docking stations. Thus, each docking station can record the available computing resources and / or threshold conditions of other docking stations. In some cases, the controller 230 iterates through docking stations, having computing resources. In other examples, the identification of a target docking station having the expected utilization rate among the plurality of docking stations may be executed when the expected utilization rate exceeds a threshold utilization rate for the docking station. In an example, the threshold utilization rate may correspond to an upper limit of the computing resources of the docking station that a user of the user computing device 210 is willing to use for the execution of the Al workload. In an example, the threshold utilization rate may be determined based on certain criteria (e.g., based on user usage pattern of the user computing device and user priority of processing the Al workload). For example, if the user task execution preferences showing longer usage time during the day time than the night time, the threshold utilization rate can be adjusted based on the user’s usage pattern (e.g., indicating the task execution preference time). In some cases, the threshold utilization rate can also be dynamically adjusted based on theuser’s prioritization of the Al workload, such that if the Al workload is prioritized workload, the threshold utilization rate can be adjusted.
[0038] In some examples, the controller 230 determines whether the other docking stations having the expected utilization rate of its computing resources based on the available computing resources. For example, the docking station 110 selects one or more docking stations having the available computing resources higher than the expected utilization rate. For instance, if the docking station HOB, 110C, and HOD have its computing resources above the expected utilization rate, these docking stations can be selected.
[0039] In some instances, the controller 230 determines the target docking station based on the threshold conditions of other docking stations. For example, if the docking stations HOB, HOC, and HOD, has 6, 10, and 15 of threshold condition for number of workloads, respectively, the docking station HOD is prioritized because the docking station HOD has a higher threshold condition than docking stations HOB and 110C.
[0040] In some scenarios, if there are multiple workloads (e.g., received from the user computing device 210, etc.), the controller 230 can select which workloads to transfer to the target docking station. For example, the controller 230 can prioritize the multiple workloads based on historical usage of each workloads, execution frequency, or other relevant metrics. For example, the controller 230 can prioritize the workloads used more frequently over those used less often. In some cases, upon determining the target docking station, the controller 230 may select one or more lower-priority workloads for offloading to the target docking station.
[0041] In some examples, the workload is an artificial intelligence (Al) workload, and the Al workload can include a plurality of Al tasks. In some scenarios, if there are multiple Al tasks associated with the Al workload (e.g., received from the user computing device 210, etc.), the controller 230 can select which Al task of the multiple Al tasks to transfer to the target docking station. For example, the controller 230 can prioritize the multiple Al tasks based on historical usage of each Al task, execution frequency, or other relevant metrics. For example, the controller 230 can prioritize the Al tasks used more frequently over those used less often. In some cases, upon determining the target docking station, the controller 230 may select one or more lower-priority Al tasks for offloading to the target docking station.
[0042] In some cases, the controller 230 can select a set of target docking stations, each docking station of the set of the target docking stations having the available computingresources above the threshold conditions of other docking stations. In these cases, the controller 230 can distribute the workloads or the Al tasks to the set of target docking stations. In some cases, the controller 230 can obtain the executed results of the workload or the Al tasks from the set of the target docking stations.
[0043] For example, the controller 230 can determine or identify Al tasks associated with the Al workload. The controller 230 can also determine expected utilization rate for each of the Al tasks. For example and without limiting the number of Al tasks and the target docking stations, if the Al workload includes two Al tasks, a first and a second Al task, the controller 230 can determine the expected utilization rate for each of the first and second Al tasks. In this example, the controller 230 can identify two docking stations, such that a first target docking station, having the available computing resources above the expected utilization rate for the first Al task, and a second target docking station, having the available computing resources above the expected utilization rate for the second Al task. Further in this example, the controller 230 can transfer the first Al task to the first target docking station and the second Al task to the second target docking station.
[0044] In some examples, once the target docking station is identified, the controller 230 establishes a secure data communication path with the target docking station. To ensure data protection, the docking stations may implement encryption protocols, such as advanced encryption standards (AES-256) or asymmetric encryption methods for secure key exchange. The present disclosure does not limit the type of encryption used.
[0045] In some examples, the docking station can receive workload transferred from another docking station. For example, the docking station can be designated a target docking station from another docking station such that another docking station offload its workload to the docking station. In some cases, the controller 230 can execute the offloaded (e.g., transferred workload) from another docking station. In some examples, the controller 230 can identify sub-workload included in the workload. For example, there are one workload than can be divided into sub-workload, for example, based on characteristics of the workload. In some examples, there are multiple workloads transferred into the docking station. In some examples, the controller 230 identifies expected utilization rate of the computing resources for each sub-workload (or each workload). In some cases, the controller 230 determines a first portion of the sub-workload (or each workload) to execute in the docking station based on eachthe identified expected utilization rate and available computing resources of the docking station. Then, the controller 230 determines expected utilization rate for remaining portions of the subworkload (or each workload) and identifies a secondary target docking station, having the expected utilization rate for the remaining portions of the sub-workload (or each workload). The controller 230 can transfer the remaining portions of sub-AI workload to the secondary target docking station.
[0046] In some examples, before initiating data communication or offloading workloads, the controller 230 can authenticate the user computing device 210 by communicating with a trusted platform module (TPM) included in the user computing device 210. The TPM can refer to a hardware module stored in a memory of the user computing device 210. The TPM can provide a secure storage environment that protect the stored data from tempering. In some examples, the TPM stores user authentication information, such as private keys, passwords, and digital certificates. The docking station 110 may request this authentication data to verify the user computing device’s credentials before accepting workload transfers or returning execution results.
[0047] In scenarios where the docking station 110 itself receives a workload from another docking station, it effectively acts as the target docking station. The controller 230 then executes the workload using the computing resources 220 and directs the execution results back to the originating docking station or to the remote server 150 (e.g., the distributed artificial intelligence accelerator 152). Consequently, the user computing device 210 can access the execution results from the remote server 150 via the network 170, thus enabling a distributed and dynamic approach to workload management within the local distributed docking station system 100.
[0048] Although the examples previously described in reference to FIG. 2 illustrate transferring the Al workload to a single target docking station, it should be understood that alternative implementations may involve selecting multiple target docking stations. For instance, in some scenarios, the controller 230 may partition the Al workload into subsets, such as transmitting a first set of tasks to a first target docking station and a second set of tasks to a second target docking station. This approach can enable distributed processing of the Al workload across multiple docking stations, optimizing the utilization of computationalresources. By balancing the workload distribution, this method minimizes the risk of resource saturation at any single docking station, enhancing overall system efficiency and performance.
[0049] FIG. 3 is a block diagram of an example controller 230 included in the docking station 110, as illustrated in FIG. 2. FIG. 3 is described by referencing FIG. 2. For example, the user computing device 210, docking station 110, computing resources 220, network instance 242, and network interface 244, as will be described herein refers FIG. 2. In some examples, the controller 230 can include a processor 310 and a memory 320. In some cases, the processor 310 can be a microcontroller dedicated to process or execute instructions generated from the memory 320. The present disclosure does not limit the type of processor 310, and this microprocess is well known to those skilled in the art and, thus, are not described in more detail herein.
[0050] In some examples, the controller 230 can include a memory 320 to store various instructions to perform one or more examples disclosed herein. The memory 320 can be a non-volatile memory and include an authentication manager 322 and a resource manager 330. The authentication manager 322 can authenticate the user computing device 210. For example, the authentication manager 322 can include a public key utilized to decrypt the private key provided from the user computing device 210. In some examples, the authentication manager 322 can include a credential information utilized to authenticate the user computing device 210, such as authenticating passwords and / or digital keys provided from the user computing device 210.
[0051] In some examples, the resource manager 330 includes various policies, such as an information policy 332, a transfer policy 334, a selection policy 336, and a termination policy 338. In some examples, the resource manager 330 can include (e.g., optionally include) additional policies, such as a deployment policy 340 and a receiving policy. Each of these policies can provide an instruction can be executed by the processor 310.
[0052] In some examples, the information policy 332 is to provide an instruction to monitor an available utilization rate of the computing resources 220 of the docking station 110. For example, the information policy 332 can provide instruction to the controller 230 to measure computing resources utilization and record into a data storage (not shown in FIG. 3). In some cases, measuring the computing resources utilization can include periodically measuring processing unit utilization (e.g., by measuring usage of processing power beingused, etc.) and memory usage of the memory units (e.g., tracking memory consumption, etc.). In some examples, measuring the computing resources can also include measuring network bandwidth available to the docking station and also measuring execution time of current workload. Such execution time measurement can be based on by averaging current workload completion time. In some cases, the information policy 332 can provide an instruction to transmit the monitoring results of the available utilization rate of the computing resources to the remote server 150 (e.g., the instance of the distributed artificial intelligence accelerator 152) via the network 170.
[0053] As illustrated in FIG. 3, the resource manager 330 can include a transfer policy 334. The transfer policy 334 can determine whether the computing resources can process workload without saturation. In some examples, the user computing device 210 transmits one or more workloads to the docking station. In these examples, the one or more workloads can be Al workloads. In some cases, the determination can be based on a context of workload. For example, the context may include number of workloads (e.g., sub-workloads included in the workload), demanded computing resources for processing the workload, demanded execution time form processing the workload, and the like. In some cases, the transfer policy 334 can include a pre-defined thresholds, such as number of expected workloads, average time of operating the docking station, and execution time.
[0054] In some examples, the transfer policy 334 determines whether the number of workloads is higher than the threshold number of workloads. For example, the threshold of number of workloads can be determined based on the current available computing resources, such that if the available computing resources is relatively higher, the threshold of number of workloads can be relatively increased.
[0055] In some examples, the transfer policy 334 determines whether the average docking station operating time is above a threshold operating time. In some cases, the threshold operating time can be dynamically adjusted based on user profile associated with the user computing device 210. For example, if the user profile indicates the user task execution preference showing longer usage time during the day time than the night time, the threshold operating time can be adjusted based on the user task execution preference. In some cases, if the average docking station operating time is above the threshold operating time, the transfer policy 334 may determine as a condition to transfer the workload to another docking station.
[0056] In some examples, transfer policy 334 determines whether the average current workload execution time is above a threshold time. In some cases, the execution time can be associated with demanded execution time of the workload. For example, if the workload demand faster execution, the threshold time can be lower. In some cases, if the execution time is above the threshold time, the transfer policy 334 may determine as a condition to transfer the workload to another docking station.
[0057] In some examples, the user computing device 210 can transmit a plurality of Al workloads to the docking station 110. In these examples, the transfer policy 334 can identify one or more Al workloads from the plurality of Al workloads by prioritizing each Al workload. For example, the transfer policy 334 can prioritize the Al workloads based on historical usage of the Al workload. For example, based on the historical usage of each Al workload, the most frequently used Al workload is prioritized, while less frequency used Al workload is less prioritized. In some scenarios, after determining the expected utilization rate of the computing resources and the current utilization rate of the computing resources, the transfer policy 334 can select one or more Al workloads from the lower prioritized Al workloads to transfer to the target docking station.
[0058] As illustrated in FIG. 3, the resource manager 330 can include a selection policy 336. In some examples, the selection policy 336 is to select a target docking station to transfer the workload. The target docking station can refer to a docking station having an expected utilization rate to process the workload. For example, if the computing resources is not able to process the workload (e.g., based on the determination at the transfer policy 334), the selection policy 336 determines a target docking station having the expected utilization rate. In various examples, the selection policy 336 can determine the target docking station by obtaining threshold conditions, such as the number of workloads, operating time, and the execution time, from other docking stations. In some cases, the selection policy 336 can also determine the target docking station by obtaining the available computing resources from other docking stations. In some examples, the selection policy 336 can select more than one target docking stations. For example, if the computing resources is not able to process the workload (e.g., having multiple tasks), the selection policy 336 can select multiple target docking stations, where each target docking station can have the expected utilization rate demanded for processing at least one task included in the workload such that a total available computingresources (e.g., sum of the available computing resources) of the target docking stations is more than the expected utilization rate demanded for executing the workload. For example, if the workload is an Al workload, having a first and a second set of Al tasks, the selection policy 336 can determine a first target docking station, having the available computing resources demanded for processing the first set of Al tasks (e.g., expected utilization rate demanded for executing the first set of Al tasks). In addition, the selection policy 336 can determine a second target docking station, having the available computing resources demanded for processing the second set of Al tasks (e.g., expected utilization rate demanded for executing the second set of Al tasks).
[0059] In some examples, each docking station can transmit the threshold conditions to other docking stations, so that the docking station can monitor available resources of other docking stations. For example, the docking station 110A (shown in FIG. 1) can monitor the threshold conditions of other docking stations 110B-110H.
[0060] In some cases, the selection policy 336 determines which docking station has higher threshold of number of workloads. For example, higher the threshold of workloads can represent higher available computing resources. In some cases, the selection policy 336 prioritize other docking stations based on the threshold of workloads. For example, if the docking stations HOB, 110C, and HOD, has 6, 10, and 15 threshold of workloads, respectively, the docking station HOD is prioritized because it has the highest threshold of workloads. In some examples, the selection policy 336 determines which docking station has lower execution time threshold of the docking station 110.
[0061] In some examples, the selection policy 336 determines whether the other docking stations having the expected utilization rate of its computing resources. For example, the selection policy 336 selects one or more docking stations having the available computing resources higher than the expected utilization rate. For instance, if the docking station HOB, HOC, and HOD have its computing resources above the expected utilization rate, these docking stations can be selected. In some instances, the selection policy 336 determines the target docking station based on the prioritization. For example, as described in above, the docking stations HOB, 110C, and HOD are prioritized based on the threshold workloads, such that the docking station HOD, having the higher number of threshold workloads, can be selected as the target docking station among the prioritized docking stations.
[0062] In some examples, if the selection policy 336 does not identify at least one docking station having available computing resources above the expected utilization rate, the selection policy 336 may select the target docking station by sending a request to the remote server 150 (e.g., distributed artificial intelligence accelerator 152) via the network instance 242.
[0063] As further illustrated in FIG. 3, the resource manager 330 can also include a deployment policy 338. In some examples, the deployment policy 338 is to transfer (or offload) the workload into the target docking station. In some examples, the deployment policy 338, after identifying the target docking station, can establish a secure data communication path with the target docking station. For example, each docking station of the local distributed docking station system can employ a various means of secure data communication protocol. For instance, the deployment policy 338 may request to the target docking station to establish a data communication link by encrypting the data transferred between the docking station 110 and the target docking station. The encryption type can include any commercially available encryption mechanism, such as advanced encryption standard with 256 bit keys, asymmetric encryption for secure key exchange, and the like. The present disclosure does not limit the type of encryption. In some cases, the target docking station after executing the workload can transmit the execution results to the docking station 110, and the user computing device 210 can download the execution results from the docking station 110.
[0064] In other examples, the resource manager 330 may also include a termination policy. In some examples, the termination policy is to terminate operation of the docking station 110. For example, if another user computing device is connected to the docking station 110, the termination policy may automatically shut down the docking station 110. In this example, if the target docking station is performing the workload task, the executing results can be transferred to the remote server 150 (e.g., distributed artificial intelligence accelerator 152). For example, the user can access to the remote server 150 to download the execution results. In some cases, the docking station can detect that a third party computing device is connected to the target docking station. For example, the target docking station can send a message to the docking station if a third party computing device connected to the target docking station. In this example, the docking station, after identifying that the third partycomputing device is connected to the target docking station, can select a second docking station (e.g., the selection policy 336 may select the second target docking station in accordance with examples disclosed herein) and transfer the Al workload (e.g., remaining Al workload) to the second target docking station.
[0065] In some other examples, the resource manager 330 may also include a receiving policy. In some examples, the receiving policy can receive a request to transfer workload to the docking station 110 from another docking station. In this example, the receiving policy can designate the docking station 110 as the target docking station and execute the workload received from another docking station. In some cases, the docking station 110 can provide the execution results directly to another docking station. In another example, the docking station 110 can provide the execution results to the remote server 150 (e.g., distributed artificial intelligence accelerator 1 2).
[0066] FIG. 4 is a block diagram of an example distributed artificial intelligence accelerator 152. With reference to FIG. 1, the remote server 150 (e.g., communicatively coupled with the plurality of docking stations via the network 170) can include the distributed artificial intelligence accelerator 152. In some examples, the distributed artificial intelligence accelerator 152 can manage utilization of the computing resources of each of the plurality of docking stations. For example, each docking station 110A-110H (e.g., as illustrated in FIG. 1) can transmit the monitoring results of the utilization rate of the computing resources to the distributed artificial intelligence accelerator 152. In some cases, each docking station 110A-11 OH measures the utilization rate of its computing resources and transmits the measured utilization rate to the distributed artificial intelligence accelerator 152. These measurements can be performed periodically at intervals defined by each docking station, such as every second, every ten seconds, or in response to specific events (e.g., upon receiving a new workload from the user computing device 210). The docking stations then transmit the measured utilization rates to the distributed artificial intelligence accelerator 152, ensuring timely updates for the managing utilization of the computing resources for each docking station. In some cases, each docking station transmits various threshold conditions to the distributed artificial intelligence accelerator 152. For example, the threshold conditions can include threshold of number of workloads, the threshold operating time, and the threshold ofworkload execution time. These thresholds conditions are defined in the controller 230 of each docking station by executing the transfer policy 334, as illustrated in FIG. 3.
[0067] As illustrated in FIG. 4, the distributed artificial intelligence accelerator 152 can store a location policy 410. In some examples, the location policy 410 is an executable instructions that can be processed by a processor (not shown in FIG. 4) provided by the remote server 150. Such processor can be implemented as an internal processor of the remote server or an external processor dedicated to the remote server 150, and the present disclosure does not limit the type, implementation, and numbers of the processors associated with the remote server 150.
[0068] In some examples, the location policy 410 includes an executable instruction to manage computing resource utilization information for each docking station. In some cases, the location policy 410 records (e.g., to the data store 154 shown in FIG. 1) the measured processing unit usage and memory usage of each docking station and track the available processing unit and memory usages of each docking station. In some cases, the location policy 410 also records the thresholds conditions received from each docking station.
[0069] In some examples, the location policy 410 generates redirection list of docking stations. The redirection list is a list of docking stations based on available computing resources of the docking stations. For example, the docking stations, having available computing resources (e.g., in an idle state), can be listed as the prioritized redirection list. In some scenarios, the location policy 410 can continuously updates the redirection list based on the received computing resources utilization rate (e.g., measured processing unit and memory usage) from each docking station.
[0070] In some cases, the location policy 410 can generate the redirection list based on a scoring factor of computing resources of each docking station, such as scoring factor of memory (pm), the scoring factor of CPU (pc), the CPU utilization (Ec), the score of the memory (Rm E), available memory (Efm), and the maximum (Tmax M)and minimum values (Tmin M) of memory. In some examples, these parameters can be computed to the following Equation I to determine the scoring factor of each docking station.
[0071] Equation !:Scored>erwise
[0072] In some examples, the selection policy 410 can generate a priority table. The priority table can indicate which docking station has a priority to transfer its workload. For example, if the docking station 110A (shown in FIG. 1) has a higher priority than the docking station HOB (shown in FIG. 1), the selection policy 410 may prioritize transferring the workload from the docking station 110A over the docking station HOB. In some examples, the priority can be determined based on the available computing resources of each docking station, such as current processing unit usage, current memory usage, current network bandwidth, and workload. For examples, these parameters can be computed to the following Equation II to determine the priority of the docking stations.
[0073] Equation II: Priority = A x current CPU usage+ Bx current memory usage+ Cxcurrent network band width - Dx help counter + Excurrent MSLoad (where A, B, C, D, and E are predefined coefficient).
[0074] In some cases, the distributed artificial intelligence accelerator 152 receives request to select a docking station having the available computing resources from the docking stations. For example, if the docking station (e.g., selection policy 336 of the docking station) does not identify at least one docking station having available computing resources above the expected utilization rate, the docking station may request selecting the target docking station to the remote server 150 (e.g., distributed artificial intelligence accelerator 152) via the network instance 242. In some examples, the location policy 410 can select the target docking station based on the redirection list and the priority table. For example, if more than one docking stations request to select the target docking station, the location policy 410 can determine multiple candidate docking stations (e.g., 3 candidate docking stations) based on the priority of each docking station that requested the selections. In some instances, the location policy 410 identify the target docking station for each docking station that requested the selection based on the redirection list. In some cases, the location policy 410 can transmit to each of theidentified target docking station to transfer the workload from the corresponding docking station.
[0075] FIG. 5 is a flow diagram depicting an example method 500 implemented by the controller 230 of the docking station 110 for determining context of workload, monitoring computing resources, selecting a target docking station, and transferring the workload to the target docking station. The method 500 may be implemented by at least one docking station of a plurality of docking stations (as illustrated in a local distributed docking station system 100 shown in FIG. 1) via the local area network 160.
[0076] The method 500 begins at block 502 where the docking station collects a set of context data . In some examples, the context data are related to the context of workload received from a user computing device 210. For example, the context data may include number of tasks associated with the workload (e.g., Al workload), demanded computing resources for processing the Al workload, and demanded execution time for processing the Al workload..
[0077] In various examples, the docking station 110 receives the workload from the user computing device 210. These workloads encompass any tasks that the docking station’s computing resources 220 can process. In some scenarios, the workloads include artificial intelligence (Al) tasks, such as machine learning tasks (e.g., training and inference of machine learning models), data analysis (e.g., processing and analyzing metadata for pattern recognition), natural language processing (e.g., semantic analysis), image processing, and similar high-complexity computations. In some examples, the workload can include one or more sub-workloads.
[0078] In some examples, the workload is an artificial intelligence (Al) workload, and the Al workload can include a plurality of Al tasks. In some scenarios, if there are multiple Al tasks associated with the Al workload (e.g., received from the user computing device 210, etc.), the docking station 110 can identify each of the Al task associated with the Al workload. In some instances, the docking station 110 can prioritize the multiple Al tasks based on historical usage of each Al task, execution frequency, or other relevant metrics. For example, the docking station 110 can prioritize the Al tasks used more frequently over those used less often.
[0079] At block 504, the docking station 110 determines an expected utilization rate of computing resources. For example, the docking station 110 can determine whether thecomputing resources can process workload without saturation based on the context of workload. In some cases, the docking station 110 determines the expected utilization rate (e.g., whether the computing resources can process the workload) by characterizing the collected set of context data based on various types of pre-defined thresholds, such as number of expected workloads, average time of operating the docking station, and execution time. In some examples, the utilization rate can be determined by applying context data to a specific set of computing resources available in the docking station. The context data can present consistent parameters or conditions that remain unchanged regardless of the docking station. However, the computing resources, such as CPU cores, GPU capabilities, memory, or storage, can vary between docking stations. This variability can allow the utilization rate to provide a tailored assessment of resource efficiency for each docking station.
[0080] In some scenarios, the docking station 110, based on the context parameter of the number of sub-workloads, determines whether the number of sub-workloads is higher than the threshold number of workloads. For example, the threshold of number of workloads can be determined based on the current available computing resources, such that if the available computing resources is relatively higher, the threshold of number of workloads can be relatively increased. If the number of workloads is higher than the threshold of number of workloads, the docking station 110 may determine as saturating condition, such that processing the workload can cause overload or saturation of the computing resources.
[0081] In some scenarios, the docking station 110 determines, based on the context parameter of the docking station operating time, whether the average docking station operating time is above a threshold operating time. In some cases, the threshold operating time can be dynamically adjusted based on user profile associated with the user computing device 210. For example, if the user profile indicates the docking station user task execution preference showing longer usage time during the day time than the night time, the threshold operating time can be adjusted based on the user task execution preference. In some cases, if the average docking station operating time is above the threshold operating time, the docking station 110 may determine as a condition to transfer the workload to another docking station.
[0082] In some scenarios, the docking station 110, based on the context parameter of the workload execution time, determines whether the average current workload execution time is above a threshold time. In some cases, the execution time can be associated withdemanded execution time of the workload. For example, if the workload demand faster execution, the threshold time can be lower. In some cases, if the execution time is above the threshold time, the docking station 110 may determine as a condition to transfer the workload to another docking station.
[0083] In some examples, the user computing device 210 can transmit a plurality of Al workloads to the docking station 110. In these examples, the docking station 110 can identify one or more Al workloads from the plurality of Al workloads by prioritizing each Al workload. For example, the docking station 110 can prioritize the Al workloads based on historical usage of the Al workload. For example, based on the historical usage of each Al workload, the most frequently used Al workload is prioritized, while less frequency used Al workload is less prioritized. In some scenarios, after determining the expected utilization rate of the computing resources and the current utilization rate of the computing resources, the docking station 110 can select one or more Al workloads from the lower prioritized Al workloads to transfer to the target docking station.
[0084] In some cases, if there are multiple Al tasks associated with the Al workload, the docking station 110 can also determine expected utilization rate for each of the Al tasks. For example and without limiting the number of Al tasks and the target docking stations, if the Al workload includes two Al tasks, a first and a second Al task, the docking station 110 can determine the expected utilization rate for each of the first and second Al tasks.
[0085] At block 506, the docking station 110 identifies a target docking station. In some examples, the docking station 110 iterates each docking station (or one or more docking stations, having computing resources) to identify a target docking station, to transfer the workload. The target docking station can refer to a docking station having an expected utilization rate to process the workload. For example, if the computing resources is not able to process the workload, the docking station 110 determines a target docking station having the expected utilization rate. In various examples, the docking station 110 can determine the target docking station by obtaining threshold conditions, such as the number of workloads, operating time, and the execution time, from other docking stations. In some cases, the docking station 110 can also determine the target docking station by obtaining the available computing resources from other docking stations.
[0086] In some examples, each docking station can transmit the threshold conditions to other docking stations, so that the docking station can monitor available resources of other docking stations. For example, the docking station 110A (shown in FIG. 1) can monitor the threshold conditions of other docking stations 110B-110H.
[0087] In some cases, the docking station 110 determines which docking station has higher threshold of number of workloads. For example, higher the threshold of workloads can represent higher available computing resources. In some cases, the docking station 110 prioritize other docking stations based on the threshold of workloads. For example, if the docking stations HOB, 110C, and 110D, has 6, 10, and 15 threshold of workloads, respectively, the docking station 110D is prioritized. In some examples, the docking station 110 determines which docking station has lower execution time threshold of the docking station 110.
[0088] In some examples, the docking station 110 determines whether the other docking stations having the expected utilization rate of its computing resources. For example, the docking station 110 selects one or more docking stations having the available computing resources higher than the expected utilization rate. For instance, if the docking station HOB, HOC, and HOD have its computing resources above the expected utilization rate, these docking stations can be selected. In some instances, the docking station 110 determines the target docking station based on the prioritization. For example, as described in above, the docking stations HOB, 110C, and HOD are prioritized based on the threshold workloads, such that the docking station HOD, having the higher number of threshold workloads, can be selected as the target docking station among the prioritized docking stations. In some examples, the docking station 110 can identify one or more docking stations, having the available computing resources above the expected utilization rate. For the purpose of description, these target docking stations are referred to as a set of target docking stations.
[0089] In some cases, if there are multiple Al tasks associated with the Al workload, the docking station 110 can also determine one or more target docking stations from the set of target docking stations. For example and without limiting the number of Al tasks and the target docking stations, if the Al workload includes two Al tasks, a first and a second Al task, the docking station 110 can determine the expected utilization rate for each of the first and second Al tasks. In this example, the docking station 110 can identify two docking stations, such that a first target docking station, having the available computing resources above the expectedutilization rate for the first Al task, and a second target docking station, having the available computing resources above the expected utilization rate for the second Al task.
[0090] At decision block 508, the docking station 110 determines whether the target docking station is identified. In some examples, if the docking station 110 does not identify at least one docking station having available computing resources above the expected utilization rate, the method 500 proceed to the block 510. If the docking station 110 identifies the target docking station, the method 500 proceed to block 512.
[0091] At block 510, the docking station 110 sends request selecting the target docking station to the remote server 150 (e.g., distributed artificial intelligence accelerator 152) via the network instance 242. In some examples, as illustrated in FIG. 4, the distributed artificial intelligence accelerator 152 can select the target docking station and transmits to the docking station 110.
[0092] At block 512, the docking station 110 transfers the workload to the target docking station. In some examples, the docking station 110, after identifying the target docking station, can establish a secure data communication path with the target docking station. For example, each docking station of the local distributed docking station system can employ a various means of secure data communication protocol. For instance, the docking station 110 may request to the target docking station to establish a data communication link by encrypting the data transferred between the docking station 110 and the target docking station. The encryption type can include any commercially available encryption mechanism, such as advanced encryption standard with 256 bit keys, asymmetric encryption for secure key exchange, and the like. The present disclosure does not limit the type of encryption. In some cases, the target docking station after executing the workload can transmit the execution results to the docking station 110, and the user computing device 210 can download the execution results from the docking station 110.
[0093] In some examples, the docking station 110 can also terminate operation of the docking station 110. For example, if another user computing device is connected to the docking station 110, the docking station 110 may automatically shut down the docking station 110. In this example, if the target docking station is performing the workload task, the executing results can be transferred to the remote server 150 (e.g., distributed artificialintelligence accelerator 152). For example, the user can access to the remote server 150 to download the execution results.
[0094] In some examples, the docking station 110 can also receive a request to transfer workload to the docking station 110 from another docking station. In this example, the docking station 110 can be designated as the target docking station and execute the workload received from another docking station. In some cases, the docking station 110 can provide the execution results directly to another docking station. In another example, the docking station 110 can provide the execution results to the remote server 150 (e.g., distributed artificial intelligence accelerator 152).
[0095] In some cases, if there are multiple Al tasks associated with the Al workload, the docking station 110 can also transfer each of the Al task to a corresponding target docking station. For example, the docking station 110 can transfer the first Al task to the first target docking station and the second Al task to the second target docking station, and the like. The method 500 can be ended at block 514.
[0096] In some additional examples, the docking station 110 also monitors utilization rate of computing resources, docking station 110 is to provide an instruction to monitor an available utilization rate of the computing resources 220 of the docking station 110. For example, docking station 110 can provide instruction to the controller 230 to measure computing resources utilization and record into a data storage (not shown in FIG. 3). In some cases, measuring the computing resources utilization can include periodically measuring processing unit utilization (e.g., by measuring usage of processing power being used) and memory usage of the memory units (e.g., tracking memory consumption). In some examples, measuring the computing resources can also include measuring network bandwidth available to the docking station and also measuring execution time of current workload. Such execution time measurement can be based on by averaging current workload (or task) completion time. In some cases, docking station 110 can provide an instruction to transmit the monitoring results of the available utilization rate of the computing resources to the remote server 150 (e.g., distributed artificial intelligence accelerator 152) via the network 170.
[0097] It is to be understood that not necessarily all objects or advantages may be achieved in accordance with any particular example described herein. Thus, some examples may be configured to operate in a manner that achieves or optimizes one advantage or groupof advantages as taught herein without necessarily achieving other objects or advantages as may be taught or suggested herein.
[0098] All of the processes described herein may be embodied in, and fully automated via, software code modules, including specific computer-executable instructions, which are executed by a computing system. The computing system may include at least one computer or processor. The code modules may be stored in any type of non-transitory computer-readable medium or other computer storage device. Some or all the methods may be embodied in specialized computer hardware.
[0099] Many other variations than those described herein will be apparent from this disclosure. For example, depending on the example, some acts, events, or functions of any of the algorithms described herein can be performed in a different sequence, can be added, merged, or left out altogether (e.g., not all described acts or events are necessary for the practice of the algorithms). Moreover, in some examples, acts or events can be performed concurrently, e.g., through multi-threaded processing, interrupt processing, or multiple processors or processor cores or on other parallel architectures, rather than sequentially. In addition, different tasks or processes can be performed by different machines and / or computing systems that can function together.
[0100] The various example logical blocks, components and modules described in connection with the examples disclosed herein can be implemented or performed by a machine, such as a processing unit or processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A processor can be a microprocessor, but in the alternative, the processor can be a controller, microcontroller, or state machine, combinations of the same, or the like. A processor can include electrical circuitry configured to process computer-executable instructions. In another example, a processor includes an FPGA or other programmable device that performs logic operations without processing computer-executable instructions. A processor can also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, at least one microprocessor in conjunction with a DSP core, or any other such configuration. Although described herein primarily with respect to digitaltechnology, a processor may also include primarily analog components. A computing environment can include any type of computer system, including, but not limited to, a computer system based on a microprocessor, a mainframe computer, a digital signal processor, a portable computing device, a device controller, or a computational engine within an appliance, to name a few.
[0101] Conditional language such as, among others, “can,” “could,” “might,” or “may,” unless specifically stated otherwise, are otherwise understood within the context as used in general to convey that some examples include, while other examples do not include, some features, elements, and / or blocks. Thus, such conditional language is not generally intended to imply that features, elements, and / or blocks are in any way required for any examples or that any example necessarily includes logic for deciding, with or without user input or prompting, whether these features, elements, and / or blocks are included or are to be performed in any particular example.
[0102] Disjunctive language such as the phrase “at least one of X, Y, or Z,” unless specifically stated otherwise, is otherwise understood with the context as used in general to present that an item, term, etc., may be either X, Y, or Z, or any combination thereof (e g., X, Y, and / or Z). Thus, such disjunctive language is not generally intended to, and should not, imply that some examples require at least one of X, at least one of Y, or at least one of Z to each be present.
[0103] Any process descriptions, elements or blocks in the flow diagrams described herein and / or depicted in the attached figures should be understood as potentially representing modules, segments, or portions of code which include executable instructions for implementing specific logical functions or elements in the process. Alternate implementations are included within the scope of the examples described herein in which elements or functions may be deleted, executed out of order from that shown, or discussed, including substantially concurrently or in reverse order, depending on the functionality involved.
[0104] Unless otherwise explicitly stated, articles such as “a” or “an” should generally be interpreted to include one or more described items. Accordingly, phrases such as “a device configured to” are intended to include one or more recited devices. Such one or more recited devices can also be collectively configured to carry out the stated recitations. For example, “a processor configured to carry out recitations A, B, and C” can include a firstprocessor configured to carry out recitation A working in conjunction with a second processor configured to carry out recitations B and C.
Claims
WHAT IS CLAIMED IS:
1. A system comprising:a plurality of docking stations in communication with each other, each docking stations, comprising:computing resources for execution of an artificial intelligence (Al) workload of a user computing device connected to the docking station; and an instance of a distributed Al accelerator to manage utilization of the computing resources of each docking station; andat least one docking station of the plurality of docking stations further comprises a controller to:collect a context data related to the Al workload;identify an expected utilization rate of the computing resources based on the context data;identify a target docking station having the expected utilization rate among the plurality of docking stations via the distributed Al accelerator; and transfer the Al workload of the user computing device to the target docking station.
2. The system of Claim 1, wherein the controller is to receive execution results of the Al workload from the target docking station of the plurality of docking stations, wherein the controller is further to authenticate the user computing device by receiving user authentication information from a trusted platform module of the user computing device, and provide the received execution results to the user computing device.
3. The system of Claim 1, wherein the context data includes number of tasks associated with the Al workload, demanded computing resources for processing the Al workload, and demanded execution time for processing the Al workload.
4. The system of Claim 1, wherein the Al workload includes multiple tasks, and wherein the controller is to determine at least one task to transfer to the target docking station based on historical usage of each task, and wherein the at least one task is less frequently executed tasks based on the historical usage of the tasks.
5. The system of Claim 1, wherein the expected utilization rate of the computing resources of the docking station is determined based on threshold conditions, includingthreshold of number of Al tasks, docking station operating time, and execution time for processing the Al workload.
6. The system of Claim 5, wherein the threshold conditions are dynamically updated based on user task execution preferences of the user computing device and user priority of processing the Al workload.
7. The system of Claim 1, wherein the controller is further configured to:determine sets of tasks in the Al workload;determine expected utilization rate for each of the sets of tasks; identify a first and a second target docking stations, having the expected utilization rate to execute a first set and a second set of the Al tasks, respectively;transfer the first set of tasks to the first target docking station;andtransfer the second set of tasks to the second target docking station.
8. A docking station comprising:computing resources to process an artificial intelligence (Al) workload received from a user computing device; anda controller comprising:a processor; anda memory to store instructions that, when executed by the processor, cause the processor to implement:an information policy to monitor an available utilization rate of the computing resources;a transfer policy to determine an expected utilization rate to process the Al workload by using a context data related to the Al workload;a selection policy to select a target docking station from a plurality of docking stations in communication with the docking station, the target docking station having an available utilization rate greater than the expected utilization rate; and a deployment policy to transfer the Al workload to the target docking station for execution of the Al workload.
9. The docking station of Claim 8, wherein the memory further stores an instruction to implement an authentication manager to authenticate a user computing device connected to the docking station by obtaining user authentication information from a trusted platform module of the user computing device.
10. The docking station of Claim 8, wherein the memory further stores an instruction to implement a receiving Al workload execution policy to receive executed results of the Al workload from the target docking station.
11. The docking station of Claim 8, wherein the selection policy is further to select the target docking station by iterating through each docking station to identify available computing resources of each docking station.
12. The docking station of Claim 8, wherein the memory further includes a termination policy to:identify a secondary target station having the available utilization rate of the computing resources to execute the Al workload based on the received available computing resources of each docking station;detect connection to the target docking station from a third party computing device; andin response to detecting the third party computing device connection, transmit the Al workload to the secondary target docking station.
13. A method comprising:collecting a context data related to an artificial intelligence (Al) workload, the Al workload transmitted from a user computing device;determining an expected utilization rate of computing resources to process the Al workload in a docking station based on the context data;identifying a set of target docking stations having available computing resources above the expected utilization rate of computing resources by:iterating through other docking stations communicatively coupled with the docking station; ortransmitting a request to a distributed Al accelerator by:iterating through the other docking stations; andupon failure of receiving an acknowledgement from the other docking stations, transmitting the request to the distributed Al accelerator; andtransferring the Al workload to one docking station of the set of target docking stations.
14. The method of Claim 13, wherein the method further comprises obtaining, from the other docking stations, available computing resources, and wherein iterating through the other docking stations comprises:transmitting a request to transfer the Al workload; andreceiving an acknowledgement from one of the other docking stations, wherein the one of the other docking stations is the target docking station.
15. The method of Claim 13, further comprising:identifying a plurality of tasks included in the Al workload; categorizing the plurality of tasks into sets of tasks;transferring each set of tasks to a corresponding one docking station of the set of target docking stations; andobtaining, from the set of docking stations, an execution result of each portion of the Al tasks executed at the corresponding docking station.