Patents by Inventor Aidan Cully

Aidan Cully 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: 12293198
    Abstract: A method for executing an application over a plurality of nodes in each of which an application monitor and a runtime are executing includes executing a first portion of the application by first threads of the runtime of the first node and a second portion of the application by second threads of the runtime of the second node, and under control of the application monitors of the first and second nodes and while executing the first portions and second portions of the application, migrating workloads of one or more of the first threads from the first node to the second node for execution by the second threads.
    Type: Grant
    Filed: October 4, 2021
    Date of Patent: May 6, 2025
    Assignee: VMware LLC
    Inventors: Aidan Cully, Vance Miller, Dušan Veljko, Mazhar Memon
  • Publication number: 20250013566
    Abstract: Thread local storage is allocated to a thread that is executed in different link domains that share a memory address space by initially allocating a thread local storage having a first base address in the shared memory address space to the thread and a thread local storage having a second base address in the shared memory address space to a second thread that is created as a watcher thread of the first thread. When it is determined that the first thread has made a transition from executing code from the first link domain to executing code from the second link domain, the thread local storage having the second base address is allocated to the first thread. Thereafter, when it is determined that the first thread has resumed executing code from the first link domain, the thread local storage having the first base address is allocated to the first thread.
    Type: Application
    Filed: July 3, 2024
    Publication date: January 9, 2025
    Inventors: Aidan Cully, Dušan Veljko
  • Patent number: 12072804
    Abstract: A coherence protocol applied to memory pages maintains coherence between memory spaces on a plurality of nodes so that the threads of the runtime are operable on any of the nodes. The nodes operating according to the coherence protocol track a state and an epoch number for each memory page residing therein. The states include a modified state in which only one particular node has an up-to-date copy of the memory page, an exclusive state in which only one particular node owns the memory page, a shared state in which all nodes that have the memory page in the shared state have the same copy, and a lost state in which the memory page cannot be either read or written. The epoch number is a number that is incremented each time the page enters the modified state and is used to determine whether the page contains data that is stale.
    Type: Grant
    Filed: December 16, 2022
    Date of Patent: August 27, 2024
    Assignee: VMware LLC
    Inventors: Aidan Cully, Duan Veljko, Husheng Zhou, Hyojong Kim
  • Publication number: 20240241760
    Abstract: Example methods and systems for elastic provisioning of container-based graphics processing unit (GPU) nodes are described. In one example, a computer system may monitor usage information associated with a pool of multiple container-based GPU nodes. Based on the usage information, the computer system may apply rule(s) to determine whether capacity adjustment is required. In response to determination that capacity expansion is required, the computer system may configure the pool to expand by adding (a) at least one container-based GPU node to the pool, or (b) at least one container pod to one of the multiple container-based GPU nodes. Otherwise, in response to determination that capacity shrinkage is required, the computer system may configure the pool to shrink by removing (a) at least one container-based GPU node, or (b) at least one container pod from the pool.
    Type: Application
    Filed: May 2, 2023
    Publication date: July 18, 2024
    Applicant: VMware, Inc.
    Inventors: Yisan ZHAO, Xiaoyu HU, Robert RIEMER, Aidan CULLY
  • Publication number: 20240202122
    Abstract: A coherence protocol applied to memory pages maintains coherence between memory spaces on a plurality of nodes so that the threads of the runtime are operable on any of the nodes. The nodes operating according to the coherence protocol track a state and an epoch number for each memory page residing therein. The states include a modified state in which only one particular node has an up-to-date copy of the memory page, an exclusive state in which only one particular node owns the memory page, a shared state in which all nodes that have the memory page in the shared state have the same copy, and a lost state in which the memory page cannot be either read or written. The epoch number is a number that is incremented each time the page enters the modified state and is used to determine whether the page contains data that is stale.
    Type: Application
    Filed: December 16, 2022
    Publication date: June 20, 2024
    Inventors: Aidan CULLY, Dušan VELJKO, Husheng ZHOU, Hyojong KIM
  • Patent number: 11907589
    Abstract: At least one application of a client executes via system software on a hardware computing system that includes at least one CPU and at least one coprocessor. A virtualization layer establishes unified memory address space between the client and the hardware computing system, which also includes memory associated with the at least one coprocessor. The virtualization layer then synchronizes memory associated with the client and memory associated the at least one coprocessor. The virtualization layer may be installed and run in a non-privileged, user space, without modification of the application or of the system software running on the hardware computing system.
    Type: Grant
    Filed: July 8, 2019
    Date of Patent: February 20, 2024
    Assignee: VMware, Inc.
    Inventors: Aidan Cully, Mazhar Memon
  • Publication number: 20230393898
    Abstract: A pre-emptive scheduling of workloads enables improved sharing of resources of a cluster of hosts. The steps of this pre-emptive scheduling method include: adjusting priority of active workloads that are each running on one of the nodes and idle workloads that have been suspended; determining that a priority of a first workload, which is one of the idle workloads, exceeds a priority of a second workload, which is one of the active workloads and is executing on a first node of the cluster of nodes; and suspending the second workload and resuming the first workload to run on the first node.
    Type: Application
    Filed: March 20, 2023
    Publication date: December 7, 2023
    Inventors: Aidan CULLY, Earl Campbell RUBY, III
  • Patent number: 11822925
    Abstract: Execution of multiple execution streams is scheduled on at least one coprocessor. A software layer located logically between applications and the at least one coprocessor intercepts a first API call from an application and determines that a first execution stream is to be executed. Before scheduling the first execution stream, the software layer transmits a response to the application indicating that the at least one coprocessor is ready to execute another execution stream. The software layer intercepts a second API call from the application and determines that a second execution stream including one or more kernels is to be executed. The software layer determines that the one or more kernels does not have a dependency on the first execution stream. The software layer schedules the one or more kernels for execution prior to when the at least one coprocessor has completed execution of the first execution stream.
    Type: Grant
    Filed: March 15, 2021
    Date of Patent: November 21, 2023
    Assignee: VMware, Inc.
    Inventors: Mazhar Memon, Aidan Cully
  • Patent number: 11762672
    Abstract: A method for a dynamic linker to load and run an application that is executed over a plurality of nodes, includes relocating a primary binary of the application from an initial location to an executable location, loading library dependencies, altering a system call table used during execution of the application for the dynamic linker to catch all system calls made by the application, and executing the relocated primary binary from the executable location.
    Type: Grant
    Filed: October 4, 2021
    Date of Patent: September 19, 2023
    Assignee: VMware, Inc.
    Inventor: Aidan Cully
  • Publication number: 20220308936
    Abstract: A method for executing an application over a plurality of nodes in each of which an application monitor and a runtime are executing includes executing a first portion of the application by first threads of the runtime of the first node and a second portion of the application by second threads of the runtime of the second node, and under control of the application monitors of the first and second nodes and while executing the first portions and second portions of the application, migrating workloads of one or more of the first threads from the first node to the second node for execution by the second threads.
    Type: Application
    Filed: October 4, 2021
    Publication date: September 29, 2022
    Inventors: Aidan CULLY, Vance MILLER, Dusan VELJKO, Mazhar MEMON
  • Publication number: 20220308898
    Abstract: A method for a dynamic linker to load and run an application that is executed over a plurality of nodes, includes relocating a primary binary of the application from an initial location to an executable location, loading library dependencies, altering a system call table used during execution of the application for the dynamic linker to catch all system calls made by the application, and executing the relocated primary binary from the executable location.
    Type: Application
    Filed: October 4, 2021
    Publication date: September 29, 2022
    Inventor: Aidan CULLY
  • Publication number: 20220308950
    Abstract: A method for handling system calls during execution of an application over a plurality of nodes including a first node and a second node, includes receiving a system call from a thread running on the first node, determining that executing the system call involves resources present on the second node, sending the system call and arguments of the system call to the second node for the second node to execute the system call, receiving the results of the system call from the second node, and returning the results of the system call to the thread.
    Type: Application
    Filed: October 4, 2021
    Publication date: September 29, 2022
    Inventors: Aidan CULLY, Mazhar MEMON
  • Publication number: 20220308940
    Abstract: A method for allocating and using file descriptors for an application executing over a plurality of nodes, each having a file system, includes receiving a system call from the application running on a first node to access a file in a file system, determining whether the file resides in a file system of a first node or the second node, and upon determining that the file resides on the second node, sending the system call and arguments of the system call to the one of the second nodes for execution on the one of the second nodes and returning a result of the system call executed on the second node to the application on the first node.
    Type: Application
    Filed: October 4, 2021
    Publication date: September 29, 2022
    Inventors: Aidan CULLY, Vance MILLER
  • Publication number: 20210200553
    Abstract: Execution of multiple execution streams is scheduled on at least one coprocessor. A software layer located logically between applications and the at least one coprocessor intercepts a first API call from an application and determines that a first execution stream is to be executed. Before scheduling the first execution stream, the software layer transmits a response to the application indicating that the at least one coprocessor is ready to execute another execution stream. The software layer intercepts a second API call from the application and determines that a second execution stream including one or more kernels is to be executed. The software layer determines that the one or more kernels does not have a dependency on the first execution stream. The software layer schedules the one or more kernels for execution prior to when the at least one coprocessor has completed execution of the first execution stream.
    Type: Application
    Filed: March 15, 2021
    Publication date: July 1, 2021
    Inventors: Mazhar MEMON, Aidan CULLY
  • Patent number: 10949211
    Abstract: Execution of multiple execution streams is scheduled on a plurality of coprocessors. A software layer located logically between applications and the coprocessors determines dependencies within the execution streams, each said dependency being a condition in one of the execution streams that must be satisfied in order for execution of at least one other of the execution streams to proceed on corresponding ones of the coprocessors. The dependencies are then represented in a data structure and an optimized execution schedule is determined for the execution streams according to the dependencies. Simultaneous execution of a plurality of the execution streams is then dynamically reordered according to the optimized execution schedule.
    Type: Grant
    Filed: December 20, 2018
    Date of Patent: March 16, 2021
    Assignee: VMware, Inc.
    Inventors: Mazhar Memon, Aidan Cully
  • Publication number: 20210011666
    Abstract: At least one application of a client executes via system software on a hardware computing system that includes at least one CPU and at least one coprocessor. A virtualization layer establishes unified memory address space between the client and the hardware computing system, which also includes memory associated with the at least one coprocessor. The virtualization layer then synchronizes memory associated with the client and memory associated the at least one coprocessor. The virtualization layer may be installed and run in a non-privileged, user space, without modification of the application or of the system software running on the hardware computing system.
    Type: Application
    Filed: July 8, 2019
    Publication date: January 14, 2021
    Applicant: Bitfusion.io, Inc.
    Inventors: Aidan CULLY, Mazhar MEMON
  • Publication number: 20200201648
    Abstract: Execution of multiple execution streams is scheduled on a plurality of coprocessors. A software layer located logically between applications and the coprocessors determines dependencies within the execution streams, each said dependency being a condition in one of the execution streams that must be satisfied in order for execution of at least one other of the execution streams to proceed on corresponding ones of the coprocessors. The dependencies are then represented in a data structure and an optimized execution schedule is determined for the execution streams according to the dependencies. Simultaneous execution of a plurality of the execution streams is then dynamically reordered according to the optimized execution schedule.
    Type: Application
    Filed: December 20, 2018
    Publication date: June 25, 2020
    Applicant: Bitfusion.io, Inc.
    Inventors: Mazhar MEMON, Aidan CULLY
  • Patent number: 10455476
    Abstract: In accordance with an embodiment, a network device includes a network controller and at least one network interface coupled to the network controller that includes at least one media access control (MAC) device configured to be coupled to at least one physical layer interface (PHY). The network controller may be configured to determine a network path comprising the at least one network interface that has a lowest power consumption and minimum security attributes of available media types coupled to the at least one PHY.
    Type: Grant
    Filed: October 4, 2017
    Date of Patent: October 22, 2019
    Assignee: STMICROELECTRONICS, INC.
    Inventors: Oleg Logvinov, Aidan Cully, James D. Allen
  • Patent number: 10420140
    Abstract: Multicast transmissions are efficient but do not allow for individual acknowledgement that the data was received by each receiver. This is not acceptable for isochronous systems that require specific levels of QoS for each device. A multimedia communications protocol is provided that uses a novel multi-destination burst transmission protocol in multimedia isochronous systems. The transmitter establishes a bi-directional burst mode for multicasting data to multiple devices and receiving Reverse Start of Frame (RSOF) delimiters from each multicast-destination receiver in response to multiple SOF delimiters, thus providing protocol-efficient multi-destination acknowledgements.
    Type: Grant
    Filed: October 10, 2017
    Date of Patent: September 17, 2019
    Assignee: STMicroelectronics, Inc.
    Inventors: Oleg Logvinov, Aidan Cully, David Lawrence, Michael J. Macaluso
  • Publication number: 20190028853
    Abstract: Multicast transmissions do not allow for individual receivers to acknowledge that data was received by each receiver in the network. This is not acceptable for isochronous systems that require specific levels of QoS for each device. A multimedia communications protocol supports using multicast transmissions (one-to-many) in multimedia isochronous systems. A transmitter establishes a Multi-ACKed Multicast protocol within which a group of receiving devices can acknowledge the multicast transmission during a multi-acknowledgment period.
    Type: Application
    Filed: September 21, 2018
    Publication date: January 24, 2019
    Applicant: STMicroelectronics, Inc.
    Inventors: Oleg Logvinov, Aidan Cully, David Lawrence, Michael Macaluso