Patents by Inventor Aleksandar Micic

Aleksandar Micic 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).

  • Publication number: 20250103466
    Abstract: Dynamic trace sizing for tracing just-in-time compilation is provided. A trace of a program is generated during a tracing phase of the just-in-time compilation. The trace of the program is profiled to determine an estimated effective trace size prior to compiling the trace. Additional profiling is performed to determine a garbage collection time and consequently a total execution time of the program based on the estimated effective trace size determined prior to compiling the trace. It is determined whether to continue formation of the trace or trigger termination of the trace based on the garbage collection time of the program. Triggering the termination of the trace dynamically sizes the trace at runtime of the program.
    Type: Application
    Filed: September 21, 2023
    Publication date: March 27, 2025
    Inventors: Joannah Nanjekye, David D. Bremner, Aleksandar Micic
  • Patent number: 12253930
    Abstract: An embodiment includes initiating a first cycle of a process using a first number of threads that operate in parallel to collectively execute the process and collect performance data. The embodiment aggregates the performance data and computes a first idle duration based at least in part on the aggregated performance data. The embodiment projects a thread-count recommendation based at least in part on a mathematical model that includes the first number of threads as an input number of threads, the first idle and cycle durations as input idle and cycle durations, respectively, and a second number of threads as an output variable representative of an output number of threads, where the output number of threads is determined as a function of the input idle duration. The embodiment initiates a second cycle of the process using the second number of threads output as a projection by the mathematical model.
    Type: Grant
    Filed: October 19, 2021
    Date of Patent: March 18, 2025
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Salman Zia Rana, Aleksandar Micic
  • Patent number: 11714676
    Abstract: A value profiling method, system and computer program product that leverages a guarded storage facility. During code execution, a first instruction is loaded. The first instruction has a first value designating a first region of memory and the first instruction is related to a first section of the code. A determination is made as to whether a guarded mode is enabled at the first region. Responsive to an enabled guarded mode at the first region, a secondary operation is triggered. The secondary operation is in addition to a primary operation of the first instruction. The primary operation is relative to the first region of the memory. The secondary operation causes a profiling of the first section of the code.
    Type: Grant
    Filed: January 3, 2020
    Date of Patent: August 1, 2023
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Joran S. C. Siu, Irwin D'Souza, Filip Jeremic, Aleksandar Micic, Evgenia Badiyanova
  • Publication number: 20230122295
    Abstract: An embodiment includes initiating a first cycle of a process using a first number of threads that operate in parallel to collectively execute the process and collect performance data. The embodiment aggregates the performance data and computes a first idle duration based at least in part on the aggregated performance data. The embodiment projects a thread-count recommendation based at least in part on a mathematical model that includes the first number of threads as an input number of threads, the first idle and cycle durations as input idle and cycle durations, respectively, and a second number of threads as an output variable representative of an output number of threads, where the output number of threads is determined as a function of the input idle duration. The embodiment initiates a second cycle of the process using the second number of threads output as a projection by the mathematical model.
    Type: Application
    Filed: October 19, 2021
    Publication date: April 20, 2023
    Applicant: International Business Machines Corporation
    Inventors: SALMAN Zia RANA, Aleksandar Micic
  • Patent number: 11204866
    Abstract: A first thread of a garbage collector can determine fields, in class metadata assigned to objects contained in a local memory, that are self-referencing fields. For a plurality of the objects, recursively, the first thread can determine whether the object has at least one child object, indicated by a self-referencing field of the object, that has not been assigned to a destination cache or a previously generated source cache. If so, the first thread can assign the child object to the destination cache to indicate that the child object is live. The first thread can add the destination cache to a global scan queue as a source cache. A second thread of the garbage collector can initiate object scanning on objects indicated in the first source cache. Memory locations where live objects are not located can be reclaimed.
    Type: Grant
    Filed: December 23, 2020
    Date of Patent: December 21, 2021
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Aleksandar Micic, Salman Zia Rana
  • Patent number: 11194714
    Abstract: A first thread of a garbage collector can determine fields, in class metadata assigned to objects contained in a local memory, that are self-referencing fields. For a plurality of the objects, recursively, the first thread can determine whether the object has at least one child object, indicated by a self-referencing field of the object, that has not been assigned to a destination cache or a previously generated source cache. If so, the first thread can assign the child object to the destination cache to indicate that the child object is live. The first thread can add the destination cache to a global scan queue as a source cache. A second thread of the garbage collector can initiate object scanning on objects indicated in the first source cache. Memory locations where live objects are not located can be reclaimed.
    Type: Grant
    Filed: March 31, 2020
    Date of Patent: December 7, 2021
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Aleksandar Micic, Salman Zia Rana
  • Publication number: 20210303462
    Abstract: A first thread of a garbage collector can determine fields, in class metadata assigned to objects contained in a local memory, that are self-referencing fields. For a plurality of the objects, recursively, the first thread can determine whether the object has at least one child object, indicated by a self-referencing field of the object, that has not been assigned to a destination cache or a previously generated source cache. If so, the first thread can assign the child object to the destination cache to indicate that the child object is live. The first thread can add the destination cache to a global scan queue as a source cache. A second thread of the garbage collector can initiate object scanning on objects indicated in the first source cache. Memory locations where live objects are not located can be reclaimed.
    Type: Application
    Filed: December 23, 2020
    Publication date: September 30, 2021
    Inventors: Aleksandar Micic, Salman Zia Rana
  • Publication number: 20210303461
    Abstract: A first thread of a garbage collector can determine fields, in class metadata assigned to objects contained in a local memory, that are self-referencing fields. For a plurality of the objects, recursively, the first thread can determine whether the object has at least one child object, indicated by a self-referencing field of the object, that has not been assigned to a destination cache or a previously generated source cache. If so, the first thread can assign the child object to the destination cache to indicate that the child object is live. The first thread can add the destination cache to a global scan queue as a source cache. A second thread of the garbage collector can initiate object scanning on objects indicated in the first source cache. Memory locations where live objects are not located can be reclaimed.
    Type: Application
    Filed: March 31, 2020
    Publication date: September 30, 2021
    Inventors: Aleksandar Micic, Salman Zia Rana
  • Patent number: 11080182
    Abstract: Systems and methods for object load introspection using guarded storage are disclosed. In embodiments, a computer-implemented method includes: determining objects of interest designated by a user; splitting a first subset of a predetermined memory heap into guarded regions based on a number of objects of interest; allocating each of the objects of interest to a respective one of the guarded regions and remaining objects to a second subset of the predetermined memory heap; executing a program; detecting one of the objects of interest is loaded from one of the guarded regions; generating a trap that transfers control of the executing the program to a signal handler, wherein the signal handler is designated to perform a user-defined task associated with the one of the objects of interest; and executing, by the signal handler of the computing device, the user-defined task.
    Type: Grant
    Filed: January 7, 2019
    Date of Patent: August 3, 2021
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Irwin D'Souza, Joran S. C. Siu, Filip Jeremic, Aleksandar Micic, Evgenia Badiyanova
  • Publication number: 20210208927
    Abstract: A value profiling method, system and computer program product that leverages a guarded storage facility. During code execution, a first instruction is loaded. The first instruction has a first value designating a first region of memory and the first instruction is related to a first section of the code. A determination is made as to whether a guarded mode is enabled at the first region. Responsive to an enabled guarded mode at the first region, a secondary operation is triggered. The secondary operation is in addition to a primary operation of the first instruction. The primary operation is relative to the first region of the memory. The secondary operation causes a profiling of the first section of the code.
    Type: Application
    Filed: January 3, 2020
    Publication date: July 8, 2021
    Applicant: International Business Machines Corporation
    Inventors: Joran S.C. Siu, Irwin D'Souza, Filip Jeremic, Aleksandar Micic, Evgenia Badiyanova
  • Patent number: 10877884
    Abstract: An approach for optimizing a copying of a data object in a concurrent copying garbage collection operation is provided. In an embodiment, a source copy of the data object to be copied as part of the garbage collection operation is identified. A copying of the source copy to a target location is initiated by a primary accessing thread. This initiating of the copying includes the creation of a temporary target object header for the target object in the target location that contains an indicator set to indicate that the copying is ongoing. As the copying is occurring, the execution of any other accessing threads that are attempting to use the data object are held for as long as the indicator indicates that the copying is ongoing. Once the copying has completed, the target object header is replaced with a copy of the source object header, resetting the indicator.
    Type: Grant
    Filed: January 9, 2018
    Date of Patent: December 29, 2020
    Assignee: International Business Machines Corporation
    Inventors: Aleksandar Micic, Joran S. C. Siu, Irwin D'Souza, Filip Jeremic, Charles R. Gracie, Dmitri Pivkine
  • Patent number: 10747515
    Abstract: Objects are managed in a virtual machine. A frequency of access to fields in objects for an application is identified while the application runs in the virtual machine. An object in the objects is split into a hot object and a cold semi-object based on the frequency of access to the fields in the object as identified while the application runs in the virtual machine, wherein cache misses are reduced from splitting objects based of the frequency of access.
    Type: Grant
    Filed: January 25, 2019
    Date of Patent: August 18, 2020
    Assignee: International Business Machines Corporation
    Inventors: Taees Eimouri, Kenneth Blair Kent, Aleksandar Micic
  • Publication number: 20200218651
    Abstract: Systems and methods for object load introspection using guarded storage are disclosed. In embodiments, a computer-implemented method includes: determining objects of interest designated by a user; splitting a first subset of a predetermined memory heap into guarded regions based on a number of objects of interest; allocating each of the objects of interest to a respective one of the guarded regions and remaining objects to a second subset of the predetermined memory heap; executing a program; detecting one of the objects of interest is loaded from one of the guarded regions; generating a trap that transfers control of the executing the program to a signal handler, wherein the signal handler is designated to perform a user-defined task associated with the one of the objects of interest; and executing, by the signal handler of the computing device, the user-defined task.
    Type: Application
    Filed: January 7, 2019
    Publication date: July 9, 2020
    Inventors: Irwin D'SOUZA, Joran S.C. SIU, Filip JEREMIC, Aleksandar MICIC, Evgenia BADIYANOVA
  • Publication number: 20200142677
    Abstract: Objects are managed in a virtual machine. A frequency of access to fields in objects for an application is identified while the application runs in the virtual machine. An object in the objects is split into a hot object and a cold semi-object based on the frequency of access to the fields in the object as identified while the application runs in the virtual machine, wherein cache misses are reduced from splitting objects based of the frequency of access.
    Type: Application
    Filed: January 25, 2019
    Publication date: May 7, 2020
    Inventors: Taees Eimouri, Kenneth Blair Kent, Aleksandar Micic
  • Patent number: 10606629
    Abstract: A first execution of an application is performed on a virtual machine. A set of virtual machine parameters associated with the first execution is determined. One or more command lines of the application are mapped to the set of virtual machine parameters. The mapping is stored in a cache. A second execution of the application is performed on the virtual machine. The second execution retrieves the set of virtual machine parameters from the cache.
    Type: Grant
    Filed: December 15, 2017
    Date of Patent: March 31, 2020
    Assignee: International Business Machines Corporation
    Inventors: Daniel Heidinga, Peter D. Shipton, Aleksandar Micic, Devarghya Bhattacharya, Kenneth B. Kent
  • Patent number: 10585692
    Abstract: A first execution of an application is performed on a virtual machine. A set of virtual machine parameters associated with the first execution is determined. One or more command lines of the application are mapped to the set of virtual machine parameters. The mapping is stored in a cache. A second execution of the application is performed on the virtual machine. The second execution retrieves the set of virtual machine parameters from the cache.
    Type: Grant
    Filed: August 15, 2017
    Date of Patent: March 10, 2020
    Assignee: International Business Machines Corporation
    Inventors: Daniel Heidinga, Peter D. Shipton, Aleksandar Micic, Devarghya Bhattacharya, Kenneth B. Kent
  • Publication number: 20190213125
    Abstract: An approach for optimizing a copying of a data object in a concurrent copying garbage collection operation is provided. In an embodiment, a source copy of the data object to be copied as part of the garbage collection operation is identified. A copying of the source copy to a target location is initiated by a primary accessing thread. This initiating of the copying includes the creation of a temporary target object header for the target object in the target location that contains an indicator set to indicate that the copying is ongoing. As the copying is occurring, the execution of any other accessing threads that are attempting to use the data object are held for as long as the indicator indicates that the copying is ongoing. Once the copying has completed, the target object header is replaced with a copy of the source object header, resetting the indicator.
    Type: Application
    Filed: January 9, 2018
    Publication date: July 11, 2019
    Inventors: Aleksandar Micic, Joran S.C. Siu, Irwin D'Souza, Filip Jeremic, Charles R. Gracie, Dmitri Pivkine
  • Publication number: 20190056965
    Abstract: A first execution of an application is performed on a virtual machine. A set of virtual machine parameters associated with the first execution is determined. One or more command lines of the application are mapped to the set of virtual machine parameters. The mapping is stored in a cache. A second execution of the application is performed on the virtual machine. The second execution retrieves the set of virtual machine parameters from the cache.
    Type: Application
    Filed: August 15, 2017
    Publication date: February 21, 2019
    Inventors: Daniel Heidinga, Peter D. Shipton, Aleksandar Micic, Devarghya Bhattacharya, Kenneth B. Kent
  • Publication number: 20190056967
    Abstract: A first execution of an application is performed on a virtual machine. A set of virtual machine parameters associated with the first execution is determined. One or more command lines of the application are mapped to the set of virtual machine parameters. The mapping is stored in a cache. A second execution of the application is performed on the virtual machine. The second execution retrieves the set of virtual machine parameters from the cache.
    Type: Application
    Filed: December 15, 2017
    Publication date: February 21, 2019
    Inventors: Daniel Heidinga, Peter D. Shipton, Aleksandar Micic, Devarghya Bhattacharya, Kenneth B. Kent
  • Patent number: 9870317
    Abstract: A technique for incrementally unloading classes using a region-based garbage collector is described. One aspect of such a technique includes maintaining a remembered set for a class set. The remembered set indicates whether instances of the class set are contained in one or more regions in memory, and in which regions the instances are contained. Upon performing an incremental garbage collection process for a subset of the regions in memory, the technique examines the remembered set to determine whether the class set includes instances in regions outside of the subset. If the remembered set indicates that the class set includes instances outside of the subset of regions, the technique identifies the class set as “live.” This will preclude unloading the class set from the subset of regions.
    Type: Grant
    Filed: June 14, 2013
    Date of Patent: January 16, 2018
    Assignee: International Business Machines Corporation
    Inventors: Peter Wiebe Burka, Jeffrey Michael Disher, Daryl James Maier, Aleksandar Micic, Ryan Andrew Sciampacone