G06F9/544

Throttling using message partitioning and buffering

Provided are techniques for throttling using message partitioning and buffering. A plurality of messages are stored in an input topics buffer, where the input topics buffer is stored in a plurality of partitions, and where each of the partitions of the plurality of partitions is associated with a tenant subgroup of a plurality of tenant subgroups of a tenant. A message of the plurality of messages from the tenant subgroup of the tenant is selected. A throttle count for the tenant subgroup is retrieved. A maximum message threshold for the tenant is retrieved. In response to determining that the throttle count is less than the maximum message threshold, the message is moved from the input topics buffer to a work topics buffer. In response to determining that the throttle count is equal to or greater than the maximum message threshold, throttling the tenant subgroup.

SYSTEM AND METHOD FOR MANAGING MULTI-CORE ACCESSES TO SHARED PORTS

A port is provided that utilized various techniques to manage contention for the same by controlling data that is written to and read from the port in multi-core assembly within a usable computing system. When the port is a sampling port, the assembly may include at least two cores, a plurality of buffers in operative communication with the at least one sampling ports, a non-blocking contention management unit comprising a plurality of pointers that collectively operate to manage contention of shared ports in a multi-core computing system. When the port is queuing port, the assembly may include buffers in communication with the queuing port and the buffers are configured to hold multiple messages in the queuing port. The assembly may manage contention of shared queuing ports in a multi-core computing system.

METHODS OF OPERATING SERVICE INSTANCE SETS AND/OR SET RESTORATION STORAGE RESOURCES AND RELATED NETWORK NODES
20210329098 · 2021-10-21 ·

An operation request, including a context identifier, is received for an instance of a service in a service instance set. An update is transmitted for information relating to a context associated with the context identifier at a set restoration storage resource node using the instance of the service responsive to receiving the operation request. Responsive to determining that a context associated with the context identifier is unavailable from a storage resource associated with the service instance set, information relating to the context is accessed from a set restoration storage resource. The context is updated at the storage resource associated with the service instance set responsive to receiving the operation request and responsive to receiving the information relating to the context from the set restoration storage resource.

TECHNIQUES FOR EFFICIENTLY TRANSFERRING DATA TO A PROCESSOR

A technique for block data transfer is disclosed that reduces data transfer and memory access overheads and significantly reduces multiprocessor activity and energy consumption. Threads executing on a multiprocessor needing data stored in global memory can request and store the needed data in on-chip shared memory, which can be accessed by the threads multiple times. The data can be loaded from global memory and stored in shared memory using an instruction which directs the data into the shared memory without storing the data in registers and/or cache memory of the multiprocessor during the data transfer.

PARALLELISM IN SERIAL PIPELINE PROCESSING
20210326175 · 2021-10-21 ·

A system and method that provides fine grained parallelization to serial pipelines and serial data processing with one or more threading and synchronization models whereby data object or packet processing is orchestrated by a parser identifying the various layers of the input data object and dispatching worker threads to perform the processing of the various layers of the data object, wherein the worker threads may execute in parallel.

SCALABLE HARDWARE THREAD SCHEDULER
20210326174 · 2021-10-21 ·

A device includes a hardware data processing node configured to execute a respective task, and a hardware thread scheduler including a hardware task scheduler. The hardware task scheduler is coupled to the hardware data processing node and has a producer socket, a consumer socket, and a spare socket. The spare socket is configured to provide data control signals also provided by a first socket of the producer and consumer sockets responsive to a memory-mapped register being a first value. The spare socket is configured to provide data control signals also provided by a second socket of the producer and consumer sockets responsive to the memory-mapped register being a second value.

Managing programmable logic-based processing unit allocation on a parallel data processing platform
11150948 · 2021-10-19 · ·

Systems and methods provide an extensible, multi-stage, realtime application program processing load adaptive, manycore data processing architecture shared dynamically among instances of parallelized and pipelined application software programs, according to processing load variations of said programs and their tasks and instances, as well as contractual policies. The invented techniques provide, at the same time, both application software development productivity, through presenting for software a simple, virtual static view of the actually dynamically allocated and assigned processing hardware resources, together with high program runtime performance, through scalable pipelined and parallelized program execution with minimized overhead, as well as high resource efficiency, through adaptively optimized processing resource allocation.

Information processing apparatus, control method of information processing, and non-transitory computer-readable storage medium for storing program
11150968 · 2021-10-19 · ·

An apparatus includes: a first memory configured to store thread information to be used in thread execution; a second memory configured to store the thread information saved from the first memory; and a processor configured to execute allocation processing. In an example, the allocation processing includes: judging based on an instruction to generate a thread whether the first memory has an empty area to store the thread information of the thread; allocating the empty area to the thread information of the thread when the first memory has the empty area; and generating identification information in response that the thread is generated, by using a first index and discrimination information, the first index being an index for identifying the thread information stored in the first memory, the discrimination information being information for discriminating the thread information stored in the first memory from the thread information saved to the second memory.

Overlapped rendezvous memory registration

Methods, software, and systems for improved data transfer operations using overlapped rendezvous memory registration. Techniques are disclosed for transferring data between a first process operating as a sender and a second process operating as a receiver. The sender sends a PUT request message to the receiver including payload data stored in a send buffer and first and second match indicia. The first match indicia is used to determine whether the PUT request is expected or unexpected. If the PUT request is unexpected, an RMA GET operation is performed using the second matching indicia to pull data from the send buffer and write the data to a memory region in the user space of the process associated with the receiver. If the PUT request message is expected, the data payload with the PUT request is written to a receive buffer on the receiver determined using the first match indicia.

Sequential processing of changes in a distributed system
11150964 · 2021-10-19 · ·

Systems and methods include reception of a request for changed data of an object from a subscriber, determination of a logging table associated with the object, determination of a pointer to a last-processed entry of the logging table based on the object and the subscriber, determination of one or more entries of the logging table subsequent to the last-processed entry, determination of a last entry of the determined one or more entries, buffering of a pointer to the last entry, transferring of data reconstructed based on the one or more entries to the subscriber, and, in response to a determination that the transfer of data was successful, updating of the pointer to the last-processed entry of the logging table with the buffered pointer.