G06F9/544

Data transfer scheduling for hardware accelerator

A computing device, including a processor configured to perform data transfer scheduling for a hardware accelerator including a plurality of processing areas. Performing data transfer scheduling may include receiving a plurality of data transfer instructions that encode requests to transfer data to respective processing areas. Performing data transfer scheduling may further include identifying a plurality of transfer path conflicts between the data transfer instructions. Performing data transfer scheduling may further include sorting the data transfer instructions into a plurality of transfer instruction subsets. Within each transfer instruction subset, none of the data transfer instructions have transfer path conflicts. For each transfer instruction subset, performing data transfer scheduling may further include conveying the data transfer instructions included in that transfer instruction subset to the hardware accelerator. The data transfer instructions may be conveyed in a plurality of sequential data transfer phases that correspond to the transfer instruction subsets.

PROTEINS, POOLS, AND SLAWX IN PROCESSING ENVIRONMENTS
20180004583 · 2018-01-04 ·

Embodiments described herein include mechanisms for encapsulating data that needs to be shared between or across processes. These mechanisms include slawx (plural of “slaw”), proteins, and pools. Generally, slawx provide the lowest-level of data definition for inter-process exchange, proteins provide mid-level structure and hooks for querying and filtering, and pools provide for high-level organization and access semantics. Slawx includes a mechanism for efficient, platform-independent data representation and access. Proteins provide a data encapsulation and transport scheme using slawx as the payload. Pools provide structured and flexible aggregation, ordering, filtering, and distribution of proteins within a process, among local processes, across a network between remote or distributed processes, and via longer term (e.g. on-disk, etc.) storage.

MULTI-THREADED FLUID PARAMETER SIGNAL PROCESSING

A data receiver thread is continuously executed to receive in which signals indicating a fluid parameter. A predetermined time quantity of the signals is repeatedly buffered. Upon completion of the buffering of each predetermined time quantity of the signals, a data processing thread is initiated that executes on the just completed buffered predetermined time quantity of signals. Upon completion of each data processing thread, data from the just completed data processing thread is passed to a data plotting thread. Results of the data plotting thread are displayed on a portable electronic device while the data receiver thread is being executed.

Methods and systems for memory management in a publish and subscribe system
11709620 · 2023-07-25 · ·

Systems and methods for sharing information between a publisher and a subscriber are disclosed. The system includes a shared memory and a memory broker. The memory broker is configured to receive a request for writing a message relating to a topic from a publisher and determine whether a communication channel corresponding to the topic exists in the shared memory. If the communication channel corresponding to the topic exists, the memory broker then assigns a buffer ring on the communication channel to the publisher, transmits information relating to the buffer ring to the publisher, and transmits information relating to the buffer ring to one or more subscribers of the communication channel.

Low latency distributed counters for quotas
11709707 · 2023-07-25 · ·

A system for managing access to a shared resource includes a plurality of nodes is described. The system may determine a quota for each of a plurality of nodes in view of one or more factors associated with a respective node and set a local counter stored in a memory of each of the nodes to the value of the relevant quota. In response to a request to access a resource made by an end device, the system may serve the request with a first node in the nodes, wherein the local counter stored in the memory of the first node is more than zero, and decrement the local counter stored in the memory of the first node by one after serving the request. Synchronization data is sent from each of the nodes, including the value of the local counter stored in the memory of the relevant node.

Wave throttling based on a parameter buffer

A graphics pipeline includes a first shader that generates first wave groups, a shader processor input (SPI) that launches the first wave groups for execution by shaders, and a scan converter that generates second waves for execution on the shaders based on results of processing the first wave groups the one or more shaders. The first wave groups are selectively throttled based on a comparison of in-flight first wave groups and second waves pending execution on the at least one second shader. A cache holds information that is written to the cache in response to the first wave groups finishing execution on the shaders. Information is read from the cache in response to read requests issued by the second waves. In some cases, the first wave groups are selectively throttled by comparing how many first wave groups are in-flight and how many read requests to the cache are pending.

Memory allocator for I/O operations

Some embodiments provide a novel method for sharing data between user-space processes and kernel-space processes without copying the data. The method dedicates, by a driver of a network interface controller (NIC), a memory address space for a user-space process. The method allocates a virtual region of the memory address space for zero-copy operations. The method maps the virtual region to a memory address space of the kernel. The method allows access to the virtual region by both the user-space process and a kernel-space process.

WRITE ORDER PRESERVING DATA STREAM CONSUMPTION

A system, a method, and a computer program product for scalable processes for write-order preserving data stream consumption. A data partition in a plurality of data partitions of data stream is selected based on a request received from a client processing node. The plurality of data partitions are distributed among a plurality of broker nodes in a distributed messaging system. A broker node in the plurality of broker nodes hosting the selected data partition is identified. The identified broker node provides the selected data partition to the client processing node for performing at least one function.

SYSTEM AND METHOD FOR DATA PROCESSING AND COMPUTATION
20230237340 · 2023-07-27 ·

A data processing device and a computer-implemented method are configured to execute in parallel a data hub process (6) comprising at least a segmentation sub-process (61) which segments input data into data segments and at least one keying sub-process (62) which provides keys to the data segments creating keyed data segments, wherein the data hub process (6) stores the keyed data segments in a shared memory device (4) as shared keyed data segments and a plurality of processes in the form of computation modules (7) wherein each computation module (7) is configured to access the at least one shared memory device (4) to look for modulo-specific data segments which are shared keyed data segments that are keyed with at least one key which is specific for at least one of the computation modules (7) and to execute a machine learning method on the module-specific data segments, said machine learning method comprising data interpretation and classification methods using at least one pre-trained neuronal network (71) and to output the result of the executed machine learning method to the shared memory device (4) or another computation module.

COMPUTING DEVICE COMPATIBLE ENCRYPTION AND DECRYPTION
20230237174 · 2023-07-27 · ·

A computer-implemented method comprising receiving, based on a first user interface of a first application executing on a first device, user input that indicates a recipient, the recipient associated with registration information that indicates a method of communication with the recipient and an encryption key associated with the method of communication. The method causing an encrypted message to be generated based on the encryption key, the encrypted message encrypting clear data based on received user input, causing the encrypted message to be formatted into an encrypted package, that is in an application format compatible with a second application corresponding to the method of communication, wherein the application format is compatible with the second application by at least being a format that is allowed to be sent or to be processed by the second application, and providing the encrypted package to the second application to be sent to the recipient.