Interposer for dynamic mapping of API calls

US9703573B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9703573-B1
Application numberUS-201615139314-A
CountryUS
Kind codeB1
Filing dateApr 26, 2016
Priority dateApr 26, 2016
Publication dateJul 11, 2017
Grant dateJul 11, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Embodiments are directed to a heterogeneous system for dynamically mapping library calls to one of a plurality of processing platforms. The plurality of processing platforms include a central processing unit (CPU) and one or more acceleration units as co-processing units. The system includes an interposer configured to intercept the library calls from an application programming interface (API) and to map the library calls to one of the plurality of processing platforms according to a classification scheme based on an affinity table. The affinity table includes call signatures representing input parameters of sample library calls. Furthermore, the affinity table includes one or more performance parameters of the sample library calls for each of the processing platforms. The performance parameters indicate the performance of the sample library calls on the respective processing platform. Also included are a related method and a related computer program product.

First claim

Opening claim text (preview).

What is claimed is: 1. A heterogeneous system for dynamically mapping library calls to one of a plurality of processing platforms, the plurality of processing platforms comprising a central processing unit (CPU) and one or more acceleration units as co-processing units, the system comprising: an interposer configured to: intercept the library calls from an application programming interface (API); and map the library calls to one of the plurality of processing platforms according to a classification scheme based on an affinity table, the affinity table comprising: call signatures representing input parameters of sample library calls; and one or more performance parameters of the sample library calls for each of the processing platforms, the performance parameters indicating the performance of the sample library calls on the respective processing platform. 2. The system according to claim 1 , wherein the interposer comprises: a system state module for measuring one or more system state parameters of the heterogeneous system; a parameter extraction module for extracting one or more parameters of library calls to be mapped; an affinity table module for storing the affinity table; and a selection module for selecting one of the plurality of processing platforms for the library calls to be mapped. 3. The system according to claim 1 , wherein the interposer is configured to provide: a production mode in which a selection module is adapted to select at runtime the best processing platform for a library call to be mapped based on the affinity table. 4. The system according to claim 1 , wherein a selection module is provided and is configured to select at runtime the best processing platform for a library call based on the affinity table and a weight function representing one or more system state parameters of a current system state. 5. The system according to claim 1 , wherein the interposer is configured to provide an auto-tune mode in which a selection module is provided and is adapted to: select one of the processing platforms for a library call to be mapped; insert profiling code into a current program stream; execute the library call; and update the corresponding call signatures of the affinity table with measured performance parameters of the library call. 6. The system according to claim 5 , wherein the interposer is configured to provide an auto adjust-mode in which the selection module is adapted to run mainly in a production mode and partly in the auto-tune mode. 7. The system according to claim 1 , wherein the interposer comprises: an instrumentation module configured to insert profiling code into a current program stream, the profiling code being configured to initialize the measurement of one or more system parameters for the current library call. 8. The system according to claim 1 , wherein the interposer is configured to generate the call signatures by means of one or more hash functions, wherein the hash functions map input parameters of a library call to parameter classes of the library call. 9. The system according to claim 1 , wherein the input parameters comprise one or more system state parameters and one or more library call parameters. 10. The system according to claim 9 , wherein the system comprises one or more sensors configured to measure one or more of the following parameters as system state parameters and/or performance parameters for the respective library calls: run time of a library call; temperature; electric current; energy and/or power consumed by the processing platforms; utilization of the processing platforms; bandwidth utilization; and network utilization. 11. The system according to claim 10 , wherein the library call parameters are size parameters related to the size of the arguments of a function to be executed by the corresponding library. 12. The system according to claim 1 , wherein the acceleration units are selected from the group consisting of: a graphics processing unit (GPU); and a Field Programmable Gate Array (FPGA). 13. A computer-implemented method for dynamically mapping library calls to one of a plurality of processing platforms, the plurality of processing platforms comprising a central processing unit (CPU) and one or more acceleration units as co-processing units, the method comprising: intercepting the library calls from an application programming interface (API); and mapping the library calls to one of the plurality of processing platforms according to a classification scheme based on an affinity table, the affinity table comprising: call signatures representing input parameters of sample library calls; and one or more performance parameters of the sample library calls for each of the processing platforms, the performance parameters indicating the performance of the sample library calls on the respective processing platform. 14. The computer-implemented method according to claim 13 , further comprising: measuring, by a system state module one or more system state parameters of the heterogeneous system; extracting, by an extraction module, one or more library call parameters, from a library call to be mapped; generating a call signature for the library call; and selecting, by a selection module, one of the plurality of processing platforms for the execution of the library call, thereby mapping the library call to the selected processing platform. 15. The computer-implemented method according to claim 13 , further comprising: selecting, by a selection module, one of the processing platforms for a current library call to be mapped; inserting, by an instrumentation module, profiling code into a current program stream, the profiling code being configured to initialize the measurement of one or more system parameters for the current library call; executing the current library call; and updating the corresponding call signatures of the affinity table with measured performance parameters of the current library call. 16. The computer-implemented method according to claim 13 , further comprising: generating call signatures via one or more hash functions, wherein the hash functions map input parameters of a library call to parameter classes of the library call. 17. The computer-implemented method according to claim 13 , wherein the input parameters comprise one or more system state parameters and one or more library call parameters. 18. A computer program product for dynamically mapping library calls to one of a plurality of processing platforms of a heterogeneous system, the plurality of processing platforms comprising a central processing unit (CPU) and one or more acceleration units as co-processing units, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by the system to cause the system to perform a method comprising: intercepting the library calls from an application programming interface (API); and mapping the library calls to one of the plurality of processing platforms according to a classification scheme based on an affinity table, the affinity table comprising: call signatures representing input parameters of sample library calls; and one or more performance parameters of the sample library calls for each of the processing platforms, the performance parameters indicating the performance of the sample library calls on the respective processing platform. 19. The computer program product according to clai

Assignees

Inventors

Classifications

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9703573B1 cover?
Embodiments are directed to a heterogeneous system for dynamically mapping library calls to one of a plurality of processing platforms. The plurality of processing platforms include a central processing unit (CPU) and one or more acceleration units as co-processing units. The system includes an interposer configured to intercept the library calls from an application programming interface (API) …
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F9/4484. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 11 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).