US 11,687,369 B2
Flexible optimized data handling in systems with multiple memories
Tong Chen, Yorktown Heights, NY (US); John Kevin O'Brien, South Salem, NY (US); Daniel A. Prener, Croton-On-Hudson, NY (US); and Zehra N. Sura, Yorktown Heights, NY (US)
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION, Armonk, NY (US)
Filed by INTERNATIONAL BUSINESS MACHINES CORPORATION, Armonk, NY (US)
Filed on Mar. 2, 2021, as Appl. No. 17/189,856.
Application 17/189,856 is a continuation of application No. 15/180,756, filed on Jun. 13, 2016, granted, now 10,996,989.
Prior Publication US 2021/0208939 A1, Jul. 8, 2021
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 9/50 (2006.01)
CPC G06F 9/5016 (2013.01) [Y02D 10/00 (2018.01)] 16 Claims
OG exemplary drawing
 
1. A computer-implemented method for optimizing an application for a computing system having multiple distinct memory locations, the method comprising:
selecting a scope from a plurality of scopes in the application, each scope of the plurality of scopes being defined by a section of application code demarcated by syntactic structures in the application code;
determining, by a compiler, one or more data handling properties of a data region accessed in a selected scope;
determining, by the compiler at compile time, one or more data handling policies for the data region based on the one or more data handling properties, wherein the data handling policies perform data transfers implemented by two software libraries, including a policy to at least push data to a next location if the data is written exactly once in the selected scope utilizing a first library pushing the data to other locations after a write access by copying the data and a second library pulling the data from the location where the data was last updated on a read access; and
optimizing, by the compiler, the application by selecting one or memory locations in which to store the data region in accordance with the determined one or more data handling properties and one or more policies for the data region.