发明名称 Portable handling of primitives for concurrent execution
摘要 Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for generating portable concurrency primitives. In one aspect, a method includes receiving a set of source code for a module that will execute on a plurality of different types of architectures, the set of source code including a first set of concurrency primitives, generating a second set of concurrency primitives from the first set of concurrency primitives, wherein each concurrency primitive in the second set is different than the corresponding concurrency primitive from the first set of concurrency primitives, each concurrency primitive in the second set of concurrency primitives being independent of a plurality of different types of architectures that will execute the module, and storing each concurrency primitive from the second set of concurrency primitives in a portable executable that retains the language level constructs of the first set of concurrency primitives.
申请公布号 US9223550(B1) 申请公布日期 2015.12.29
申请号 US201314056091 申请日期 2013.10.17
申请人 Google Inc. 发明人 Bastien Jean-Francois;Sehr David C.
分类号 G06F9/44;G06F9/45 主分类号 G06F9/44
代理机构 Fish & Richardson P.C. 代理人 Fish & Richardson P.C.
主权项 1. A method comprising: receiving a set of source code for a module that will execute on a plurality of different types of architectures, the set of source code including a first set of concurrency primitives, each concurrency primitive in the first set of concurrency primitives defining a language level construct and allowing concurrent execution of different portions of the module; generating a second set of concurrency primitives from the first set of concurrency primitives, wherein each concurrency primitive in the second set corresponds to one of the concurrency primitives from the first set of concurrency primitives and is different than the corresponding concurrency primitive from the first set of concurrency primitives while maintaining the language level constructs of, and being a lower level representation of, the corresponding concurrency primitive from the first set of concurrency primitives, each concurrency primitive in the second set of concurrency primitives being independent of a plurality of different types of architectures that will execute the module and allowing concurrent execution of different portions of the module; storing each concurrency primitive from the second set of concurrency primitives in a portable executable that retains the language level constructs of the first set of concurrency primitives; transforming each concurrency primitive in the second set of concurrency primitives into a concurrency primitive from a third set of concurrency primitives, each of the concurrency primitives in the third set of concurrency primitives specific to a target architecture from the plurality of different types of architectures and allowing concurrent execution of different portions of the module; storing each of the concurrency primitives in the third set of concurrency primitives in a package specific to the target architecture; receiving a request from a client device for the module; determining that the client device has the target architecture; and providing the package of the third set of concurrency primitives to the client device in response to determining that the client device has the target architecture.
地址 Mountain View CA US