Patents by Inventor Sameh Elnikety

Sameh Elnikety 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: 20240394167
    Abstract: A system may receive a first directed acyclic graphic (DAG) for an application. The system may model performance of each function in the DAG to generate a performance model. The system may generate a plurality of variant DAGs. For each of the variant DAGs, the system may obtain a configuration vector and forecast, based on the performance model and the configuration vector, a plurality of end-to-end latency distributions for the variant DAGS. The system may select the variant DAG and configuration vector based on a selection criteria. The system may cause an application to be executed according to the variant DAG and configuration vector.
    Type: Application
    Filed: May 28, 2024
    Publication date: November 28, 2024
    Applicant: Purdue Research Foundation
    Inventors: Somali Chaterji, Saurabh Bagchi, Ashraf Mahgoub, Sameh Elnikety
  • Publication number: 20240394091
    Abstract: A system may receive a directed acyclic graphic (DAG) for an application. The system may profile the DAG with a plurality of computer resource allocations to generate an end-to-end (E2E) latency model. The system may generate, based on the E2E latency model, an execution plan comprising optimized computer resource allocations and timing information. The system may cause a computing infrastructure to execute a function in a first stage of the DAG model on a first virtual machine right sized according to the execution plan. The system may cause the computing infrastructure to initialize, at a time determined specified by the execution plan, a second virtual machine for a function in a second stage in the DAG model. The system may cause the FaaS infrastructure to execute the function in the second stage on the second virtual machine after completion of the function in the first stage.
    Type: Application
    Filed: May 28, 2024
    Publication date: November 28, 2024
    Applicant: Purdue Research Foundation
    Inventors: Somali Chaterji, Saurabh Bagchi, Ashraf Mahgoub, Sameh Elnikety
  • Patent number: 11829804
    Abstract: A processing system is described which assigns jobs to heterogeneous processing modules. The processing system assigns jobs to the processing modules in a manner that attempts to accommodate the service demands of the jobs, but without advance knowledge of the service demands. In one case, the processing system implements the processing modules as computing units that have different physical characteristics. Alternatively, or in addition, the processing system may implement the processing modules as threads that are executed by computing units. Each thread which runs on a computing unit offers a level of performance that depends on a number of other threads that are simultaneously being executed by the same computing unit.
    Type: Grant
    Filed: September 15, 2021
    Date of Patent: November 28, 2023
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Yuxiong He, Sameh Elnikety, Kathryn S. McKinley, Shaolei Ren
  • Patent number: 11403141
    Abstract: Systems and methods related to harvesting of the unused resources in a distributed computing system are described. An example method, in a system including a host server, having a first instruction set architecture (ISA), and an interface card, having a second ISA is provided. The method includes designating at least one type of resource, associated with the host server for harvesting by compute entities configured for execution using the processor having the second ISA, where the host server is configured to execute compute entities requiring execution by the processor having the first ISA. The method further includes in response to a request for accessing the at least one type of resource by a compute entity, executing on the processor having the second ISA, automatically allowing the compute entity to access the at least one type of resource associated with the host server.
    Type: Grant
    Filed: May 4, 2020
    Date of Patent: August 2, 2022
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Stanko Novakovic, Íñigo Goiri Presa, Sameh Elnikety, Ricardo G. Bianchini
  • Publication number: 20220004441
    Abstract: A processing system is described which assigns jobs to heterogeneous processing modules. The processing system assigns jobs to the processing modules in a manner that attempts to accommodate the service demands of the jobs, but without advance knowledge of the service demands. In one case, the processing system implements the processing modules as computing units that have different physical characteristics. Alternatively, or in addition, the processing system may implement the processing modules as threads that are executed by computing units. Each thread which runs on a computing unit offers a level of performance that depends on a number of other threads that are simultaneously being executed by the same computing unit.
    Type: Application
    Filed: September 15, 2021
    Publication date: January 6, 2022
    Inventors: Yuxiong HE, Sameh ELNIKETY, Kathryn MCKINLEY, Shaolei REN
  • Publication number: 20210342188
    Abstract: Systems and methods related to harvesting of the unused resources in a distributed computing system are described. An example method, in a system including a host server, having a first instruction set architecture (ISA), and an interface card, having a second ISA is provided. The method includes designating at least one type of resource, associated with the host server for harvesting by compute entities configured for execution using the processor having the second ISA, where the host server is configured to execute compute entities requiring execution by the processor having the first ISA. The method further includes in response to a request for accessing the at least one type of resource by a compute entity, executing on the processor having the second ISA, automatically allowing the compute entity to access the at least one type of resource associated with the host server.
    Type: Application
    Filed: May 4, 2020
    Publication date: November 4, 2021
    Inventors: Stanko NOVAKOVIC, Íñigo GOIRI PRESA, Sameh ELNIKETY, Ricardo G. BIANCHINI
  • Patent number: 11126473
    Abstract: A processing system is described which assigns jobs to heterogeneous processing modules. The processing system assigns jobs to the processing modules in a manner that attempts to accommodate the service demands of the jobs, but without advance knowledge of the service demands. In one case, the processing system implements the processing modules as computing units that have different physical characteristics. Alternatively, or in addition, the processing system may implement the processing modules as threads that are executed by computing units. Each thread which runs on a computing unit offers a level of performance that depends on a number of other threads that are simultaneously being executed by the same computing unit.
    Type: Grant
    Filed: March 15, 2019
    Date of Patent: September 21, 2021
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Yuxiong He, Sameh Elnikety, Kathryn S. Mckinley, Shaolei Ren
  • Publication number: 20190213053
    Abstract: A processing system is described which assigns jobs to heterogeneous processing modules. The processing system assigns jobs to the processing modules in a manner that attempts to accommodate the service demands of the jobs, but without advance knowledge of the service demands. In one case, the processing system implements the processing modules as computing units that have different physical characteristics. Alternatively, or in addition, the processing system may implement the processing modules as threads that are executed by computing units. Each thread which runs on a computing unit offers a level of performance that depends on a number of other threads that are simultaneously being executed by the same computing unit.
    Type: Application
    Filed: March 15, 2019
    Publication date: July 11, 2019
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Yuxiong HE, Sameh ELNIKETY, Kathryn S. MCKINLEY, Shaolei REN
  • Patent number: 10303524
    Abstract: A processing system is described which assigns jobs to heterogeneous processing modules. The processing system assigns jobs to the processing modules in a manner that attempts to accommodate the service demands of the jobs, but without advance knowledge of the service demands. In one case, the processing system implements the processing modules as computing units that have different physical characteristics. Alternatively, or in addition, the processing system may implement the processing modules as threads that are executed by computing units. Each thread which runs on a computing unit offers a level of performance that depends on a number of other threads that are simultaneously being executed by the same computing unit.
    Type: Grant
    Filed: April 6, 2016
    Date of Patent: May 28, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Yuxiong He, Sameh Elnikety, Kathryn S. McKinley, Shaolei Ren
  • Patent number: 9817698
    Abstract: The subject disclosure is directed towards scheduling requests using quality values that are defined for partial responses to the requests. For each request in a queue, an associated processing time is determined using a system load and/or the quality values. The associated processing time is less than or equal to a service demand, which represents an amount of time to produce a complete response.
    Type: Grant
    Filed: June 17, 2011
    Date of Patent: November 14, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Yuxiong He, Sameh Elnikety, James R. Larus, Chenyu Yan
  • Publication number: 20160217015
    Abstract: A processing system is described which assigns jobs to heterogeneous processing modules. The processing system assigns jobs to the processing modules in a manner that attempts to accommodate the service demands of the jobs, but without advance knowledge of the service demands. In one case, the processing system implements the processing modules as computing units that have different physical characteristics. Alternatively, or in addition, the processing system may implement the processing modules as threads that are executed by computing units. Each thread which runs on a computing unit offers a level of performance that depends on a number of other threads that are simultaneously being executed by the same computing unit.
    Type: Application
    Filed: April 6, 2016
    Publication date: July 28, 2016
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Yuxiong HE, Sameh ELNIKETY, Kathryn S. MCKINLEY, Shaolei REN
  • Patent number: 9336057
    Abstract: A processing system is described which assigns jobs to heterogeneous processing modules. The processing system assigns jobs to the processing modules in a manner that attempts to accommodate the service demands of the jobs, but without advance knowledge of the service demands. In one case, the processing system implements the processing modules as computing units that have different physical characteristics. Alternatively, or in addition, the processing system may implement the processing modules as threads that are executed by computing units. Each thread which runs on a computing unit offers a level of performance that depends on a number of other threads that are simultaneously being executed by the same computing unit.
    Type: Grant
    Filed: December 21, 2012
    Date of Patent: May 10, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Yuxiong He, Sameh Elnikety, Kathryn S. McKinley, Shaolei Ren
  • Patent number: 9053210
    Abstract: Graph queries are processed using a plurality of independent query execution engines. A graph query submitted to a graph database which is modeled by an attributed graph is received. The graph query is decomposed into a plurality of query components. For each of the query components, a one of the query execution engines that is available to process the query component is identified, a sub-query representing the query component is generated, the sub-query is sent to the identified query execution engine for processing, and results for the sub-query are received from the identified query execution engine. The results received are then combined to generate a response to the graph query.
    Type: Grant
    Filed: December 14, 2012
    Date of Patent: June 9, 2015
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Sameh Elnikety, Yuxiong He, Sherif Sakr
  • Publication number: 20140181825
    Abstract: A processing system is described which assigns jobs to heterogeneous processing modules. The processing system assigns jobs to the processing modules in a manner that attempts to accommodate the service demands of the jobs, but without advance knowledge of the service demands. In one case, the processing system implements the processing modules as computing units that have different physical characteristics. Alternatively, or in addition, the processing system may implement the processing modules as threads that are executed by computing units. Each thread which runs on a computing unit offers a level of performance that depends on a number of other threads that are simultaneously being executed by the same computing unit.
    Type: Application
    Filed: December 21, 2012
    Publication date: June 26, 2014
    Applicant: Microsoft Corporation
    Inventors: Yuxiong He, Sameh Elnikety, Kathryn S. McKinley, Shaolei Ren
  • Publication number: 20140172914
    Abstract: Graph queries are processed using a plurality of independent query execution engines. A graph query submitted to a graph database which is modeled by an attributed graph is received. The graph query is decomposed into a plurality of query components. For each of the query components, a one of the query execution engines that is available to process the query component is identified, a sub-query representing the query component is generated, the sub-query is sent to the identified query execution engine for processing, and results for the sub-query are received from the identified query execution engine. The results received are then combined to generate a response to the graph query.
    Type: Application
    Filed: December 14, 2012
    Publication date: June 19, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Sameh Elnikety, Yuxiong He, Sherif Sakr
  • Publication number: 20120324466
    Abstract: The subject disclosure is directed towards scheduling requests using quality values that are defined for partial responses to the requests. For each request in a queue, an associated processing time is determined using a system load and/or the quality values. The associated processing time is less than or equal to a service demand, which represents an amount of time to produce a complete response.
    Type: Application
    Filed: June 17, 2011
    Publication date: December 20, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Yuxiong He, Sameh Elnikety, James R. Larus, Chenyu Yan
  • Patent number: 8074014
    Abstract: Improved storage systems which use write off-loading are described. When a request to store some data in a particular storage location is received, if the particular storage location is unavailable, the data is stored in an alternative location. In an embodiment, the particular storage location may be unavailable because it is powered down or because it is overloaded. The data stored in the alternative location may be subsequently recovered and written to the particular storage location once it becomes available.
    Type: Grant
    Filed: March 31, 2008
    Date of Patent: December 6, 2011
    Assignee: Microsoft Corporation
    Inventors: Dushyanth Narayanan, Austin Donnelly, Antony Rowstron, Sameh Elnikety, Eno Thereska
  • Publication number: 20090249001
    Abstract: Improved storage systems which use write off-loading are described. When a request to store some data in a particular storage location is received, if the particular storage location is unavailable, the data is stored in an alternative location. In an embodiment, the particular storage location may be unavailable because it is powered down or because it is overloaded. The data stored in the alternative location may be subsequently recovered and written to the particular storage location once it becomes available.
    Type: Application
    Filed: March 31, 2008
    Publication date: October 1, 2009
    Applicant: Microsoft Corporation
    Inventors: Dushyanth Narayanan, Austin DONNELLY, Anthony ROWSTRON, Sameh ELNIKETY, Eno THERESKA