Patents by Inventor Marko Radmilac
Marko Radmilac has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 9384063Abstract: A concurrent data structure allows synchronization to be elided for read accesses. Processing resources that remove one or more elements of the concurrent data structure are allowed to delete the elements only after all other processing resources have reached a safe point. Each processing resource maintains an indicator that indicates whether the processing resource has reached as safe point (i.e., will not access the concurrent data structure). When the indicators indicate that all processing resources have reached a safe point, elements of the data structure may be deleted.Type: GrantFiled: June 18, 2009Date of Patent: July 5, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Paul Ringseth, Michael L. Chu, William R. Messmer, Marko Radmilac, Genevieve Fernandes
-
Patent number: 9378062Abstract: An interface between a resource manager and schedulers in a process executing on a computer system allows the resource manager to manage the resources of the schedulers. The resource manager communicates with the schedulers using the interface to access statistical information from the schedulers. The statistical information describes the amount of use of the resources by the schedulers. The resource manager also communicates with the schedulers to dynamically allocate and reallocate resources among the schedulers in the same or different processes or computer systems in accordance with the statistical information.Type: GrantFiled: June 18, 2009Date of Patent: June 28, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Paul F. Ringseth, William R. Messmer, Niklas Gustafsson, Genevieve Fernandes, Marko Radmilac
-
Monitoring and updating tasks arrival and completion statistics without data locking synchronization
Patent number: 8843927Abstract: Each processing resource in a scheduler of a process executing on a computer system maintains counts of the number of tasks that arrive at the processing resource and the number of tasks that complete on the processing resource. The counts are maintained in storage that is only writeable by the corresponding processing resource. The scheduler collects and sums the counts from each processing resource and provides statistics based on the summed counts and previous summed counts to a resource manager in response to a request from the resource manager. The scheduler does not reset the counts when the counts are collected and stores copies of the summed counts for use with the next request from the resource manager. The counts may be maintained without synchronization and with thread safety to minimize the impact of gathering statistics on the application.Type: GrantFiled: April 23, 2009Date of Patent: September 23, 2014Assignee: Microsoft CorporationInventors: Marko Radmilac, Paul Ringseth, Genevieve Fernandes, William R. Messmer, Niklas Gustafsson -
Patent number: 8843900Abstract: Systems, methods, and computer program products for facilitating a serial debugging experience for programs running in a distributed, non-deterministic, out-of-order (i.e., parallel) fashion are disclosed. Such systems, methods, and computer program products provide a modified combination of breakpoints, stepping, and call stacks that facilitate the ability to improve the debugging experience for out-of-order program execution. In an embodiment, a task scheduler provides a distributed task graph. Then, the user may hit breakpoints sequentially within the graph's execution and use deterministic stepping (i.e., step-in, step-out, and step-over functions) to create a logical call stack from a distributed task graph. Such embodiments allow the program to execute in a distributed and parallel manner, while presenting the user a sequential execution experience in the debugger.Type: GrantFiled: June 12, 2012Date of Patent: September 23, 2014Assignee: Microsoft CorporationInventors: Michael Stall, Marko Radmilac, Krishan Varadarajan
-
Patent number: 8719831Abstract: A resource manager manages processing and other resources of schedulers of one or more processes executing on one or more computer systems. For each scheduler, the resource manager determines an initial allocation of resources based on the policy of the scheduler, the availability of resources, and the policies of other schedulers. The resource manager receives feedback from the schedulers and dynamically changes the allocation of resources of schedulers based on the feedback. The resource manager determines if changes improved the performance of schedulers and commits or rolls back the changes based on the determination.Type: GrantFiled: June 18, 2009Date of Patent: May 6, 2014Assignee: Microsoft CorporationInventors: Marko Radmilac, Genevieve Fernandes, Paul Ringseth
-
Publication number: 20130332908Abstract: Systems, methods, and computer program products for facilitating a serial debugging experience for programs running in a distributed, non-deterministic, out-of-order (i.e., parallel) fashion are disclosed. Such systems, methods, and computer program products provide a modified combination of breakpoints, stepping, and call stacks that facilitate the ability to improve the debugging experience for out-of-order program execution. In an embodiment, a task scheduler provides a distributed task graph. Then, the user may hit breakpoints sequentially within the graph's execution and use deterministic stepping (i.e., step-in, step-out, and step-over functions) to create a logical call stack from a distributed task graph. Such embodiments allow the program to execute in a distributed and parallel manner, while presenting the user a sequential execution experience in the debugger.Type: ApplicationFiled: June 12, 2012Publication date: December 12, 2013Applicant: MICROSOFT CORPORATIONInventors: Michael Stall, Marko Radmilac, Krishan Varadarajan
-
Publication number: 20130173682Abstract: A process for propagating an error in a floating-point calculation is disclosed. A floating-point error occurring from the floating-point arithmetic calculation is trapped, and a special value is generated. Information regarding the error is stored as a payload of the special value. Program operations are resumed with the special value applied to further calculations dependent on the floating-point arithmetic calculation.Type: ApplicationFiled: December 28, 2011Publication date: July 4, 2013Applicant: MICROSOFT CORPORATIONInventor: Marko Radmilac
-
Patent number: 8443373Abstract: Embodiments are directed to dynamically allocating processing resources among a plurality of resource schedulers. A resource manager dynamically allocates resources to a first resource scheduler. The resource manager is configured to dynamically allocate resources among a plurality of resource schedulers, and each scheduler is configured to manage various processing resources. The resource manager determines that at least one of the processing resources dynamically allocated to the first resource scheduler is idle. The resource manager determines that at least one other resource scheduler needs additional processing resources and, based on the determination, loans the determined idle processing resource of the first resource scheduler to a second resource scheduler.Type: GrantFiled: January 26, 2010Date of Patent: May 14, 2013Assignee: Microsoft CorporationInventors: Genevieve Fernandes, Marko Radmilac, Donald James McCrady, Krishnan Varadarajan
-
Publication number: 20110185364Abstract: Embodiments are directed to dynamically allocating processing resources among a plurality of resource schedulers. A resource manager dynamically allocates resources to a first resource scheduler. The resource manager is configured to dynamically allocate resources among a plurality of resource schedulers, and each scheduler is configured to manage various processing resources. The resource manager determines that at least one of the processing resources dynamically allocated to the first resource scheduler is idle. The resource manager determines that at least one other resource scheduler needs additional processing resources and, based on the determination, loans the determined idle processing resource of the first resource scheduler to a second resource scheduler.Type: ApplicationFiled: January 26, 2010Publication date: July 28, 2011Applicant: MICROSOFT CORPORATIONInventors: Genevieve Fernandes, Marko Radmilac, Donald James McCrady, Krishnan Varadarajan
-
Publication number: 20100325637Abstract: A resource manager manages processing and other resources of schedulers of one or more processes executing on one or more computer systems. For each scheduler, the resource manager determines an initial allocation of resources based on the policy of the scheduler, the availability of resources, and the policies of other schedulers. The resource manager receives feedback from the schedulers and dynamically changes the allocation of resources of schedulers based on the feedback. The resource manager determines if changes improved the performance of schedulers and commits or rolls back the changes based on the determination.Type: ApplicationFiled: June 18, 2009Publication date: December 23, 2010Applicant: MICROSOFT CORPORATIONInventors: Marko Radmilac, Genevieve Fernandes, Paul Ringseth
-
Publication number: 20100325098Abstract: A concurrent data structure allows synchronization to be elided for read accesses. Processing resources that remove one or more elements of the concurrent data structure are allowed to delete the elements only after all other processing resources have reached a safe point. Each processing resource maintains an indicator that indicates whether the processing resource has reached as safe point (i.e., will not access the concurrent data structure). When the indicators indicate that all processing resources have reached a safe point, elements of the data structure may be deleted.Type: ApplicationFiled: June 18, 2009Publication date: December 23, 2010Applicant: MICROSOFT CORPORATIONInventors: Paul Ringseth, Michael L. Chu, William R. Messmer, Marko Radmilac, Genevieve Fernandes
-
Publication number: 20100325636Abstract: An interface between a resource manager and schedulers in a process executing on a computer system allows the resource manager to manage the resources of the schedulers. The resource manager communicates with the schedulers using the interface to access statistical information from the schedulers. The statistical information describes the amount of use of the resources by the schedulers. The resource manager also communicates with the schedulers to dynamically allocate and reallocate resources among the schedulers in the same or different processes or computer systems in accordance with the statistical information.Type: ApplicationFiled: June 18, 2009Publication date: December 23, 2010Applicant: MICROSOFT CORPORATIONInventors: Paul F. Ringseth, William R. Messmer, Niklas Gustafsson, Genevieve Fernandes, Marko Radmilac
-
Publication number: 20100275207Abstract: Each processing resource in a scheduler of a process executing on a computer system maintains counts of the number of tasks that arrive at the processing resource and the number of tasks that complete on the processing resource. The counts are maintained in storage that is only writeable by the corresponding processing resource. The scheduler collects and sums the counts from each processing resource and provides statistics based on the summed counts and previous summed counts to a resource manager in response to a request from the resource manager. The scheduler does not reset the counts when the counts are collected and stores copies of the summed counts for use with the next request from the resource manager. The counts may be maintained without synchronization and with thread safety to minimize the impact of gathering statistics on the application.Type: ApplicationFiled: April 23, 2009Publication date: October 28, 2010Applicant: Microsoft CorporationInventors: Marko Radmilac, Paul Ringseth, Genevieve Fernandes, William R. Messmer, Niklas Gustafsson