Patents by Inventor Mark Robert Funk
Mark Robert Funk 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: 10754749Abstract: Systems, methods and computer program products assess processor performance metrics by monitoring probes constructed using instruction sequences. A first probe value can be determined from execution of a broad spectrum probe in an execution environment. In response to determining that the first probe value is not a first expected probe value, a targeted probe providing a second probe value directed to a subsystem of the execution environment, a feature of the subsystem, or a component of the execution environment is executed. In response to determining that the second probe value is not a second expected probe value, a differential between the second probe value and the second expected probe value can be used to determine that a bottleneck exists in at least one of the subsystem of the execution environment, the feature of the subsystem, or the component of the execution environment.Type: GrantFiled: July 16, 2018Date of Patent: August 25, 2020Assignee: International Business Machines CorporationInventors: Mark Robert Funk, Aaron Christoph Sawdey, Philip Lee Vitale
-
Publication number: 20180341567Abstract: Systems, methods and computer program products assess processor performance metrics by monitoring probes constructed using instruction sequences. A first probe value can be determined from execution of a broad spectrum probe in an execution environment. In response to determining that the first probe value is not a first expected probe value, a targeted probe providing a second probe value directed to a subsystem of the execution environment, a feature of the subsystem, or a component of the execution environment is executed. In response to determining that the second probe value is not a second expected probe value, a differential between the second probe value and the second expected probe value can be used to determine that a bottleneck exists in at least one of the subsystem of the execution environment, the feature of the subsystem, or the component of the execution environment.Type: ApplicationFiled: July 16, 2018Publication date: November 29, 2018Inventors: Mark Robert Funk, Aaron Christoph Sawdey, Philip Lee Vitale
-
Patent number: 10031827Abstract: Systems, methods and computer program products assess processor performance metrics by monitoring probes constructed using instruction sequences. A first probe value can be determined from execution of a broad spectrum probe in an execution environment. In response to determining that the first probe value is not a first expected probe value, a targeted probe providing a second probe value directed to a subsystem of the execution environment, a feature of the subsystem, or a component of the execution environment is executed. In response to determining that the second probe value is not a second expected probe value, a differential between the second probe value and the second expected probe value can be used to determine that a bottleneck exists in at least one of the subsystem of the execution environment, the feature of the subsystem, or the component of the execution environment.Type: GrantFiled: August 14, 2017Date of Patent: July 24, 2018Assignee: International Business Machines CorporationInventors: Mark Robert Funk, Aaron Christoph Sawdey, Philip Lee Vitale
-
Publication number: 20170364429Abstract: Systems, methods and computer program products assess processor performance metrics by monitoring probes constructed using instruction sequences. A first probe value can be determined from execution of a broad spectrum probe in an execution environment. In response to determining that the first probe value is not a first expected probe value, a targeted probe providing a second probe value directed to a subsystem of the execution environment, a feature of the subsystem, or a component of the execution environment is executed. In response to determining that the second probe value is not a second expected probe value, a differential between the second probe value and the second expected probe value can be used to determine that a bottleneck exists in at least one of the subsystem of the execution environment, the feature of the subsystem, or the component of the execution environment.Type: ApplicationFiled: August 14, 2017Publication date: December 21, 2017Inventors: Mark Robert Funk, Aaron Christoph Sawdey, Philip Lee Vitale
-
Patent number: 9760465Abstract: Processor performance metrics are assessed by monitoring probes constructed using instruction sequences. A probe comprising an instruction sequence is selected. The instruction sequence can be configured to measure at least one hardware metric. A first probe value is received. The first probe value can be based, at least in part, on the hardware metric. The first probe value can be determined from execution of the probe in a first execution environment. The probe can be executed a second time to determine a second probe value. The second probe value can be based, at least in part, on the hardware metric. The second probe value is determined in a second execution environment including at least one workload. The first probe value and the second probe value can be compared to produce a performance assessment of the second execution environment.Type: GrantFiled: January 2, 2014Date of Patent: September 12, 2017Assignee: International Business Machines CorporationInventors: Mark Robert Funk, Aaron Christoph Sawdey, Philip Lee Vitale
-
Patent number: 9298580Abstract: Monitoring probes constructed using instruction sequences are used to assess processor performance metrics. A probe comprising an instruction sequence is selected. The instruction sequence can be configured to measure at least one hardware metric. A first probe value is received. The first probe value can be based, at least in part, on the hardware metric. The first probe value can be determined from execution of the probe in a first execution environment. The probe can be executed a second time to determine a second probe value. The second probe value can be based, at least in part, on the hardware metric. The second probe value is determined in a second execution environment including at least one workload. The first probe value and the second probe value can be compared to produce a performance assessment of the second execution environment.Type: GrantFiled: June 16, 2014Date of Patent: March 29, 2016Assignee: International Business Machines CorporationInventors: Mark Robert Funk, Aaron Christoph Sawdey, Philip Lee Vitale
-
Publication number: 20150186241Abstract: Processor performance metrics are assessed by monitoring probes constructed using instruction sequences. A probe comprising an instruction sequence is selected. The instruction sequence can be configured to measure at least one hardware metric. A first probe value is received. The first probe value can be based, at least in part, on the hardware metric. The first probe value can be determined from execution of the probe in a first execution environment. The probe can be executed a second time to determine a second probe value. The second probe value can be based, at least in part, on the hardware metric. The second probe value is determined in a second execution environment including at least one workload. The first probe value and the second. probe value can be compared to produce a performance assessment of the second execution environment.Type: ApplicationFiled: January 2, 2014Publication date: July 2, 2015Applicant: International Business Machines CorporationInventors: Mark Robert Funk, Aaron Christoph Sawdey, Philip Lee Vitale
-
Publication number: 20150186242Abstract: Monitoring probes constructed using instruction sequences are used to assess processor performance metrics. A probe comprising an instruction sequence is selected. The instruction sequence can be configured to measure at least one hardware metric. A first probe value is received. The first probe value can be based, at least in part, on the hardware metric. The first probe value can be determined from execution of the probe in a first execution environment. The probe can be executed a second time to determine a second probe value. The second probe value can be based, at least in part, on the hardware metric. The second probe value is determined in a second execution environment including at least one workload. The first probe value and the second probe value can be compared to produce a performance assessment of the second execution environment.Type: ApplicationFiled: June 16, 2014Publication date: July 2, 2015Inventors: Mark Robert Funk, Aaron Christoph Sawdey, Philip Lee Vitale
-
Patent number: 8312462Abstract: Disclosed is an apparatus, method, and program product for identifying and grouping threads that have interdependent data access needs. The preferred embodiment of the present invention utilizes two different constructs to accomplish this grouping. A Memory Affinity Group (MAG) is disclosed. The MAG construct enables multiple threads to be associated with the same node without any foreknowledge of which threads will be involved in the association, and without any control over the particular node with which they are associated. A Logical Node construct is also disclosed. The Logical Node construct enables multiple threads to be associated with the same specified node without any foreknowledge of which threads will be involved in the association. While logical nodes do not explicitly identify the underlying physical nodes comprising the system, they provide a means of associating particular threads with the same node and other threads with other node(s).Type: GrantFiled: August 31, 2009Date of Patent: November 13, 2012Assignee: International Business Machines CorporationInventors: Lynn Keat Chung, Mark Robert Funk, Richard Karl Kirkman, Angela Mae Newton, Don Darrell Reed
-
Patent number: 8108375Abstract: Multiple database queries are satisfied with the same data in a manner that assures the data is current and without having to interrogate the database for each query. In a first embodiment, all queries that are received during the processing of a first query after interrogation of the database has begun for the first query are evaluated to determine whether the result set returned for the first query will satisfy the queries received during processing of the first query. If so, the result set returned for the first query is used to generate result sets for the subsequent compatible queries received during the processing of the first query. In a second embodiment, queries are delayed and grouped, and a new query is then processed for each group that returns a result set that satisfies all of the queries in the group. In both cases, the result set for one query is used to generate a result set for a different query.Type: GrantFiled: January 10, 2009Date of Patent: January 31, 2012Assignee: International Business Machines CorporationInventors: Eric Lawrence Barsness, Richard Dean Dettinger, Mark Robert Funk, Ross E. Johnson
-
Publication number: 20100229177Abstract: Disclosed is an apparatus, method, and program product for identifying and grouping threads that have interdependent data access needs. The preferred embodiment of the present invention utilizes two different constructs to accomplish this grouping. A Memory Affinity Group (MAG) is disclosed. The MAG construct enables multiple threads to be associated with the same node without any foreknowledge of which threads will be involved in the association, and without any control over the particular node with which they are associated. A Logical Node construct is also disclosed. The Logical Node construct enables multiple threads to be associated with the same specified node without any foreknowledge of which threads will be involved in the association. While logical nodes do not explicitly identify the underlying physical nodes comprising the system, they provide a means of associating particular threads with the same node and other threads with other node(s).Type: ApplicationFiled: August 31, 2009Publication date: September 9, 2010Applicant: International Business Machines CorporationInventors: Lynn Keat Chung, Mark Robert Funk, Richard Karl Kirkman, Angela Mae Newton, Don Darrell Reed
-
Patent number: 7584476Abstract: Disclosed is an apparatus, method, and program product for identifying and grouping threads that have interdependent data access needs. The preferred embodiment of the present invention utilizes two different constructs to accomplish this grouping. A Memory Affinity Group (MAG) is disclosed. The MAG construct enables multiple threads to be associated with the same node without any foreknowledge of which threads will be involved in the association, and without any control over the particular node with which they are associated. A Logical Node construct is also disclosed. The Logical Node construct enables multiple threads to be associated with the same specified node without any foreknowledge of which threads will be involved in the association. While logical nodes do not explicitly identify the underlying physical nodes comprising the system, they provide a means of associating particular threads with the same node and other threads with other node(s).Type: GrantFiled: March 4, 2004Date of Patent: September 1, 2009Assignee: International Business Machines CorporationInventors: Lynn Keat Chung, Mark Robert Funk, Richard Karl Kirkman, Angela Mae Newton, Don Darrell Reed
-
Publication number: 20090138448Abstract: Multiple database queries are satisfied with the same data in a manner that assures the data is current and without having to interrogate the database for each query. In a first embodiment, all queries that are received during the processing of a first query after interrogation of the database has begun for the first query are evaluated to determine whether the result set returned for the first query will satisfy the queries received during processing of the first query. If so, the result set returned for the first query is used to generate result sets for the subsequent compatible queries received during the processing of the first query. In a second embodiment, queries are delayed and grouped, and a new query is then processed for each group that returns a result set that satisfies all of the queries in the group. In both cases, the result set for one query is used to generate a result set for a different query.Type: ApplicationFiled: January 10, 2009Publication date: May 28, 2009Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Eric Lawrence Barsness, Richard Dean Dettinger, Mark Robert Funk, Ross E. Johnson
-
Patent number: 7480238Abstract: A packet control mechanism for a computer data system that dynamically adjusts packet training depending on the utilization load on the processor. The dynamic adjustment of packet training can be to enable and disable packet training, or adjust the number of packets in the packet train. In preferred embodiments, the computer data system includes a processor utilization mechanism that indicates a load on a processor. When the packet control mechanism determines the load on the processor is above a threshold limit, the packet control mechanism reduces the processor load by compressing the packets into the packet train. The compressing of the packets is stopped or reduced when the processor load is below a threshold in order to increase the data throughput on the network interface.Type: GrantFiled: April 14, 2005Date of Patent: January 20, 2009Assignee: International Business Machines CorporationInventors: Mark Robert Funk, Christopher William Gaedke, Travis William Haasch
-
Publication number: 20080259822Abstract: A packet control mechanism for a computer data system that dynamically adjusts packet training depending on the utilization load on the processor. The dynamic adjustment of packet training can be to enable and disable packet training, or adjust the number of packets in the packet train. In preferred embodiments, the computer data system includes a processor utilization mechanism that indicates a load on a processor. When the packet control mechanism determines the load on the processor is above a threshold limit, the packet control mechanism reduces the processor load by compressing the packets into the packet train. The compressing of the packets is stopped or reduced when the processor load is below a threshold in order to increase the data throughput on the network interface.Type: ApplicationFiled: June 27, 2008Publication date: October 23, 2008Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Mark Robert Funk, Christopher William Gaedke, Travis William Haasch
-
Publication number: 20080259821Abstract: A packet control mechanism for a computer data system that dynamically adjusts packet training depending on the utilization load on the processor. The dynamic adjustment of packet training can be to enable and disable packet training, or adjust the number of packets in the packet train. In preferred embodiments, the computer data system includes a processor utilization mechanism that indicates a load on a processor. When the packet control mechanism determines the load on the processor is above a threshold limit, the packet control mechanism reduces the processor load by compressing the packets into the packet train. The compressing of the packets is stopped or reduced when the processor load is below a threshold in order to increase the data throughput on the network interface.Type: ApplicationFiled: June 27, 2008Publication date: October 23, 2008Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Mark Robert Funk, Christopher William Gaedke, Travis William Haasch
-
Publication number: 20080263226Abstract: A packet control mechanism for a computer data system that dynamically adjusts packet training depending on the utilization load on the processor. The dynamic adjustment of packet training can be to enable and disable packet training, or adjust the number of packets in the packet train. In preferred embodiments, the computer data system includes a processor utilization mechanism that indicates a load on a processor. When the packet control mechanism determines the load on the processor is above a threshold limit, the packet control mechanism reduces the processor load by compressing the packets into the packet train. The compressing of the packets is stopped or reduced when the processor load is below a threshold in order to increase the data throughput on the network interface.Type: ApplicationFiled: June 27, 2008Publication date: October 23, 2008Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Mark Robert Funk, Christopher William Gaedke, Travis William Haasch
-
Patent number: 7266540Abstract: Disclosed is an apparatus, method, and program product for observing the nodal workload balance of the system on an ongoing basis, and for dynamically changing the preferred nodes of existing threads in order to improve nodal balance. Workload balance is ascertained on a nodal basis and then thread-based workload information is collected. If the detected imbalance persists, the thread-based information is used to change the assignment of preferred nodes to threads to improve nodal workload balance.Type: GrantFiled: March 4, 2004Date of Patent: September 4, 2007Assignee: International Business Machines CorporationInventors: Lynn Keat Chung, Christopher Francois, Mark Robert Funk, Richard Karl Kirkman, Henry Joseph May, Don Darrell Reed, Kenneth Charles Vossen
-
Publication number: 20050210468Abstract: Disclosed is an apparatus, method, and program product for identifying and grouping threads that have interdependent data access needs. The preferred embodiment of the present invention utilizes two different constructs to accomplish this grouping. A Memory Affinity Group (MAG) is disclosed. The MAG construct enables multiple threads to be associated with the same node without any foreknowledge of which threads will be involved in the association, and without any control over the particular node with which they are associated. A Logical Node construct is also disclosed. The Logical Node construct enables multiple threads to be associated with the same specified node without any foreknowledge of which threads will be involved in the association. While logical nodes do not explicitly identify the underlying physical nodes comprising the system, they provide a means of associating particular threads with the same node and other threads with other node(s).Type: ApplicationFiled: March 4, 2004Publication date: September 22, 2005Applicant: International Business Machines CorporationInventors: Lynn Keat Chung, Mark Robert Funk, Richard Karl Kirkman, Angela Mae Newton, Don Darrell Reed
-
Publication number: 20050198642Abstract: Mechanism for Assigning Home Nodes to Newly Created Threads Disclosed is an apparatus, method, and program product for associating threads with the processing nodes of a multi-nodal computer system. The assignment is accomplished by considering both the relative work capacity of, and the relative amount of ongoing work assigned to, each node. Initiation Weights are used in the preferred embodiment to reflect the desired proportions of threads assigned to each node, from the standpoint of which node should be chosen when a new thread is created.Type: ApplicationFiled: March 4, 2004Publication date: September 8, 2005Applicant: International Business Machines CorporationInventors: Lynn Keat Chung, Christopher Francois, Mark Robert Funk, Richard Karl Kirkman, Henry Joseph May, Don Darrell Reed, Kenneth Charles Vossen