Patent classifications
G06F2209/485
SCHEDULING STORAGE TASKS
A method for managing tasks in a storage system, the method may include: (a) obtaining, by a scheduler, a shared budget for background storage tasks and foreground storage tasks; (b) obtaining, by the scheduler, a background budget for background storage tasks; wherein the background budget is a fraction of the shared budget; (c) allocating, by the scheduler, resources to pending storage tasks according to the shared budget and the background budget; wherein the allocating comprises (i) allocating the shared budget while prioritizing foreground storage tasks over background storage tasks; and (ii) allocating the background budget to background storage tasks; and (d) participating, by the scheduler, in executing of storage tasks according to the allocation.
Database management system, computer, and database management method
A database management system (DBMS) generates a query execution plan including information indicating one or more database (DB) operations necessary to execute the query. The DBMS dynamically generates a task for executing the DB operation in execution of the query. The DBMS performs a determination processing of simultaneous-task-generation number when newly creating a task. The determination processing of simultaneous-task-generation number is to calculate the number of simultaneous task generation, which is the number of tasks that can be generated simultaneously, based on the number of tasks which can be newly generated, a first memory resource amount which is the amount of memory resources necessary to be allocated per task newly generated, and a second memory resource amount which is the number of memory resources that can be newly allocated. The number of tasks generated dynamically and simultaneously is equal to or smaller than the calculated number of simultaneously generatable tasks.
System and method for deterministic time partitioning of asynchronous tasks in a computing environment
A method of scheduling and controlling asynchronous tasks to provide deterministic behavior in time-partitioned operating systems, such as an ARINC 653 partitioned operating environment. The asynchronous tasks are allocated CPU time in a deterministic but dynamically decreasing manner. In one embodiment, the asynchronous tasks may occur in any order within a major time frame (that is, their sequencing is not statically deterministic); however, the dynamic time allotment prevents any task from overrunning its allotment and prevents any task from interfering with other tasks (whether synchronous or asynchronous).
Usage checks for code running within a secure sub-environment of a virtual machine
A system may include an application server and one or more tenants served by the application server. The application server may host a virtual machine with multiple isolated sub-environments. Each tenant of the application server may request to run a program in a tenant-specific sub-environment of the virtual machine. The sub-environments may be configured so the execution of one tenant's code does not affect execution of another tenant's code or the hosting virtual machine, for example, by considering the resources used to execute the code. The application server may implement techniques to securely execute “untrusted” code, programmed using one or more different programming languages, in the sub-environments by enforcing resource restrictions and restricting the sub-environments from accessing the host's local file system. In this way, one tenant's code does not negatively impact execution of another tenant's code by using too many resources of the virtual machine.
Dynamic sequencing of data partitions for optimizing memory utilization and performance of neural networks
Optimized memory usage and management is crucial to the overall performance of a neural network (NN) or deep neural network (DNN) computing environment. Using various characteristics of the input data dimension, an apportionment sequence is calculated for the input data to be processed by the NN or DNN that optimizes the efficient use of the local and external memory components. The apportionment sequence can describe how to parcel the input data (and its associated processing parameters—e.g., processing weights) into one or more portions as well as how such portions of input data (and its associated processing parameters) are passed between the local memory, external memory, and processing unit components of the NN or DNN. Additionally, the apportionment sequence can include instructions to store generated output data in the local and/or external memory components so as to optimize the efficient use of the local and/or external memory components.
Rescheduling of virtual machine migrations with less impact on an existing migration schedule
An apparatus, for an existing schedule indicating time slots during which virtual-machines are to be migrated between physical-machines, acquires change information indicating a change of first time slots during which first virtual-machines are to be migrated, and generates constraint information including a group of constraints regarding the change information and second time slots during which second virtual-machines other than the first virtual-machines are to be migrated. The apparatus generates semi-constraint information items each generated by excluding, from the constraint information, an exclusion target constraint that is selected in turn from among the group of constraints, and generates, for each semi-constraint information item, a rescheduling result by rescheduling migrations of the virtual-machines. The apparatus outputs a first rescheduling result that is one of the generated rescheduling results which reduces a difference between a scheduled migration time indicated by the first rescheduling result and scheduled migration times of the second virtual-machines.
Job scheduling method
A method for scheduling a single subset of jobs of a set of jobs satisfying a range constraint of number of jobs, wherein the jobs of the set of jobs share resources in a computing system, each job being assigned a weight, w, indicative of the memory usage of the job in case of its execution in the computer system, the method including: for each number of jobs, x, satisfying the range constraint, determining from the set of jobs a first subset of jobs using a knapsack problem, wherein the knapsack problem is adapted to select by using the weights the first subset of jobs having the number of jobs and having a maximal total memory usage below the current available memory of the computer system, and selecting the single subset from the first subset.
Memory nest efficiency with cache demand generation
Embodiments of the disclosure relate to optimizing a memory nest for a workload. Aspects include an operating system determining the cache/memory footprint of each work unit of the workload and assigning a time slice to each work unit of the workload based on the cache/memory footprint of each work unit. Aspects further include executing the workload on a processor by providing each work unit access to the processor for the time slice assigned to each work unit.
Methods and systems for image processing
A method for image processing is provided. The method may include: obtaining a plurality of frames, each of the plurality of frames comprising a plurality of pixels; determining, based on the plurality of frames, whether a current frame of the plurality of frames comprises a moving object; in response to determining that the current frame includes no moving object, obtaining a first count of frames, and generating a target image by superimposing the first count of frames; in response to determining that the current frame includes a moving object, obtaining a second count of frames, and generating the target image by superimposing the second count of frames.
Multiple stage workload management system
Provided are techniques for multiple stage workload management. A staging queue and a run queue are provided. A workload is received. In response to determining that application resources are not available and that the workload has not been previously semi-started, the workload is added to the staging queue. In response to determining that the application resources are not available and that the workload has been semi-started, and, in response to determining that run resources are available, the workload is started. In response to determining that the application resources are not available and that the workload has been semi-started, and, in response to determining that the run resources are not available, adding the workload to the run queue.