Systems and Methods for Efficient Data Preprocessing of Machine Learning Workloads
US-2024403138-A1 · Dec 5, 2024 · US
US9785467B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-9785467-B1 |
| Application number | US-201715465287-A |
| Country | US |
| Kind code | B1 |
| Filing date | Mar 21, 2017 |
| Priority date | Mar 22, 2016 |
| Publication date | Oct 10, 2017 |
| Grant date | Oct 10, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
An apparatus includes a processor and a storage storing instructions causing the processor to determine whether an analysis routine is multi-threaded and calls a library function of a non-threadsafe library, and if so, causes the processor to: instantiate an analysis process for executing the analysis routine on multiple threads; instantiate an instance of the library for execution within a isolated library process; instantiate another instance of the library for execution within another isolated library process; retrieve library metadata providing a function prototype of the library function; employ the function prototype to generate an instance of a bridge routine to enable a call from the analysis routine on a first thread to the library function; employ the function prototype to generate another instance of the bridge routine to enable a call from the analysis routine on a second thread to the library function; and begin execution of the analysis routine.
Opening claim text (preview).
The invention claimed is: 1. An apparatus comprising a processor and a storage to store instructions that, when executed by the processor, cause the processor to perform operations comprising: parse declaration code of an analysis routine to determine whether the analysis routine is multi-threaded and is to make at least one function call to at least one non-threadsafe library routine; and in response to a determination that the analysis routine is multithreaded and is to make at least one function call to at least one non-threadsafe library routine, cause the processor to perform operations comprising: instantiate a single analysis process to support execution of the analysis routine on multiple threads; instantiate a first instance of a first non-threadsafe library routine of the at least one non-threadsafe library routine for execution by the processor within a first library process, wherein the first library process is isolated from the analysis process; instantiate a second instance of the first non-threadsafe library routine for execution by the processor within a second library process, wherein the second library process is isolated from the analysis process and the first library process; retrieve first library metadata providing at least one function prototype of at least one library function of the first non-threadsafe library routine; employ the at least one function prototype of the first library metadata to generate a first instance of a first bridge routine to enable a function call from the execution of the analysis routine on a first thread of the multiple threads to the at least one library function of the first instance of the first non-threadsafe library routine; employ the at least one function prototype of the first library metadata to generate a second instance of the first bridge routine to enable a function call from the execution of the analysis routine on a second thread of the multiple threads to the at least one library function of the second instance of the first non-threadsafe library routine; and begin execution of the analysis routine on the multiple threads within the analysis process. 2. The apparatus of claim 1 , wherein the processor is caused to generate the first and second instances of the first bridge routine to enable a return of a value, to the analysis routine, that results from execution of the at least one library function. 3. The apparatus of claim 1 , wherein the processor is caused to perform operations comprising: instantiate an instance of a second non-threadsafe library routine of the at least one non-threadsafe library routine to execute within a third library process, wherein the third library process is isolated from the analysis process and is isolated from the first and second library processes; retrieve second library metadata that provides at least one function prototype of at least one library function of the second non-threadsafe library routine; and employ the at least one function prototype of the second library metadata to generate an instance of a second bridge routine to enable a function call from the execution of the analysis routine on the first thread to the at least one library function of the instance of the second non-threadsafe library routine. 4. The apparatus of claim 3 , wherein the processor is caused to perform operations comprising: retrieve bridge routine code; employ the at least one function prototype of the first library metadata to generate the first and second instances of the first bridge routine from the bridge routine code; and employ the at least one function prototype of the second library metadata to generate the instance of the second bridge routine from the bridge routine code. 5. The apparatus of claim 3 , wherein: the first non-threadsafe library routine comprises a first version of a callable library function; the second non-threadsafe library routines comprises a second version of the callable library function; the first version and the second version of the callable library function are each callable with an identical single function call; the analysis routine comprises a first function call that specifies the first version of the callable library function and a second function call that specifies the second version of the callable library function; and the processor is caused to perform operations comprising: generate the first instance of the first bridge routine to convert the first function call into the single function call directed to the first version of the callable library function within the first non-threadsafe library routine; and generate the instance of the second bridge routine to convert the second function call into the single function call directed to the second version of the callable library function within the second non-threadsafe library routine. 6. The apparatus of claim 1 , wherein the processor is caused to instantiate the analysis process, instantiate the first and second instances of the first non-threadsafe library routine, and generate the first and second instances of the first bridge routine dynamically at runtime of the analysis routine. 7. The apparatus of claim 6 , wherein the processor is caused to perform operations comprising: monitor execution of the analysis routine at runtime to determine whether there is an occurrence of a function call from execution of the analysis routine on the first thread to the at least one library function of the first non-threadsafe library routine; and in response to a determination that there is an occurrence of a function call to the at least one library function of the first non-threadsafe library routine, instantiate the first and second instances of the first non-threadsafe library routine, and generate the first and second instances of the first bridge routine. 8. The apparatus of claim 1 , wherein the processor begins execution of the analysis routine on the multiple threads within the analysis process after instantiation of the analysis process, after instantiation of the first and second instances of the first non-threadsafe library routine, and after generation of the first and second instances of the first bridge routine. 9. The apparatus of claim 8 , wherein the processor is caused to perform operations comprising: parse the analysis routine to determine whether there is at least one occurrence of a function call to the at least one library function of the first non-threadsafe library routine; and in response to a determination that there is at least one function call to at least one library function of the first non-threadsafe library routine, instantiate the first and second instances of the first non-threadsafe library routine, and generate the first and second instances of the first bridge routine. 10. The apparatus of claim 1 , wherein the processor is caused to perform operations comprising: monitor execution of the analysis routine to determine whether execution of the analysis routine has ceased; and in response to a determination that execution of the analysis routine has ceased, uninstantiate the analysis process, and uninstantiate the first and second instances of the first non-threadsafe library routine. 11. A transitory machine-readable storage medium, the machine-readable storage medium storing instructions executable by a processor to cause the processor to perform operations comprising: parse declaration code of an analysis routine to determine whether the analysis routine is multi-threaded and is to make at least one function call to at least one non-threadsafe library routine; and in response to a determination that the analysis routine is multithreaded and is to make at
Adapting program code to run in a different environment; Porting · CPC title
Communication (intertask communication G06F9/54) · CPC title
via adapters, e.g. between incompatible applications · CPC title
Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.