Patent classifications
G06F9/544
System and method for performing erasure coding in a distributed storage system
A method and a hardware accelerator device are provided for performing erasure coding on the hardware accelerator device that includes a dedicated buffer memory that is resident on the hardware accelerator device and that is connected to a second device via a bus, the method includes receiving, at the dedicated buffer memory, write data directly from the second device via the bus such that receiving the data at the dedicated buffer memory bypasses a buffer memory connected to a central processing unit (CPU), performing, at the hardware accelerator, an erasure coding operation on the write data received at the dedicated buffer memory to generate parity data based on the received write data, transmitting the parity data directly to a storage device connected to the hardware accelerator device via the bus such that transmitting the parity data bypasses the buffer memory connected to the CPU.
Geo-spatial workload scheduling in distributed systems
Workload scheduling allows geospatial dependencies between workload items, which may vary in size, grouping or composition from workflow step to workflow step and can automatically adjoin existing data. By allowing dependencies between workload items in different steps, processing (and finish processing) of a dependent workload item begins in a subsequent step once its required workload items in a previous step have finished, thus enabling the processing of that dependent workload item before the previous step has completely processed all of its workload items. A dependency may be created because an item in a subsequent step intersects spatially with an item from a previous step, or because within a current step items have a buffer, necessitating that one item may depend upon spatially neighboring items. Workloads in two dimensions, three dimensions and higher may be used, and may be grid based, general polygons, or other in shape.
Virtualised Gateways
A system comprising a gateway for interfacing external data sources with one or more accelerators. The gateway comprises a plurality of virtual gateways, each of which is configured to stream data from the external data sources to one or more associated accelerators. The plurality of virtual gateways are each configured to stream data from external data sources so that the data is received at an associated accelerator in response to a synchronisation point being obtained by a synchronisation zone. Each of the virtual gateways is assigned a virtual ID so that when data is received at the gateway, data can be delivered to the appropriate gateway.
PROCESSING PIPELINE WITH ZERO LOOP OVERHEAD
Techniques are disclosed for reducing or eliminating loop overhead caused by function calls in processors that form part of a pipeline architecture. The processors in the pipeline process data blocks in an iterative fashion, with each processor in the pipeline completing one of several iterations associated with a processing loop for a commonly-executed function. The described techniques leverage the use of message passing for pipelined processors to enable an upstream processor to signal to a downstream processor when processing has been completed, and thus a data block is ready for further processing in accordance with the next loop processing iteration. The described techniques facilitate a zero loop overhead architecture, enable continuous data block processing, and allow the processing pipeline to function indefinitely within the main body of the processing loop associated with the commonly-executed function where efficiency is greatest.
Multi-Chamber Hosted Computing Environment For Collaborative Development Between Untrusted Partners
A collaboration computing environment can be established for facilitating collaboration among multiple users where is distrust between them. The collaboration computing environment comprises one or more chambers that provide data security by limiting data access pathways, deactivating data access functionality and providing an indirect data upload path. Individual users, or defined groups of users, such as users associated with a specific entity, can utilize computing functionality provided within the confines of a single chamber to execute computer-executable instructions and, thereby, consume existing data and generate modified and/or new data. To facilitate collaboration, a shared storage can be enabled in the collaboration computing environment to which multiple chambers can be provided at least some form of access. Further collaboration is facilitated through a collaboration chamber, which can comprise computing environments, such as virtual machines, that can be established to require multiple simultaneous logins.
TRAINING A NEURAL NETWORK USING A NON-HOMOGENOUS SET OF RECONFIGURABLE PROCESSORS
A system for training parameters of a neural network includes a processing node with a processor reconfigurable at a first level of configuration granularity and a controller reconfigurable at a finer level of configuration granularity. The processor is configured to execute a first dataflow segment of the neural network with training data to generate a predicted output value using a set of neural network parameters, calculate a first intermediate result for a parameter based on the predicted output value, a target output value, and a parameter gradient, and provide the first intermediate result to the controller. The controller is configured to receive a second intermediate result over a network, and execute a second dataflow segment, dependent upon the first intermediate result and the second intermediate result, to generate a third intermediate result indicative of an update of the parameter.
NATIVE-IMAGE IN-MEMORY CACHE FOR CONTAINERIZED AHEAD-OF-TIME APPLICATIONS
A method includes identifying an ahead-of-time (AOT) native-image application to be compiled and during AOT compilation of the AOT native-image application; bypassing an operating system page cache corresponding to the AOT native-image application; and accessing, by a processing device, the native-image application from an in-memory cache shared using inter-process-communication.
SYSTEMS AND METHODS FOR PERFORMING URL CLOSURE CHECK IN DISTRIBUTED SYSTEMS
Described embodiments provide systems and methods for validating a request to access a resource. A device can receive a first request from the client that includes a first resource of the server. The device may add the first resource to an accessed-resource list of a session between the client and the server. The device may receive a response from the server to the first request that includes a second resource. The device may incorporate a mapping between an indication of the second resource and the first resource, to a shared data structure. The device within the session may receive a second request that includes a third resource of the server. The device may determine to allow the server to receive the second request when an indication of the third resource is mapped to at least one resource in the shared data structure that is present in the accessed-resource list.
EXECUTION OF A SYNCHRONOUS OPERATION IN AN ASYNCHRONOUS OPERATIONAL ENVIRONMENT
A method for execution of a synchronous operation in an asynchronous operational environment includes receiving, by a processor, a first operation from program code executing within the asynchronous operational environment with the program code being run on an execution thread and a communication thread. The method also includes determining, by the processor, if the first operation is a synchronous operation. The method further includes that if the first operation is a synchronous operation, sending a request from the execution thread to the communication thread to perform the first operation and blocking execution of a subsequent operation until a response to the request from the communication thread for the first operation has been completed.
SERVER INSTANCE INTROSPECTION FOR SHARED RESOURCE COLLISIONS USING CALL STACK DEPENDENCIES
A tool may provide a real-time analysis of potential bottlenecks while threads wait on locks held by other threads. For each job currently operating on the server instance, the tool may access a list of threads and retrieve call stacks associated with those threads. The call stacks may then be analyzed to identify threads that are holding a lock, along with any corresponding threads that are waiting on the lock. The locks may be held on memory resources or any other type of computing resource. These bottlenecks may be identified and an adjustment of the configuration of the server instance may be triggered in response that is configured to reduce the likelihood that these types of bottlenecks may occur in the future.