发明名称 Parallel pseudorandom number generation
摘要 A method of generating pseudo-random numbers on a parallel processing system comprises generating a plurality of sub-streams of pseudo-random numbers, wherein the sub-streams are generated in parallel by one or more co-processors, and providing the plurality of sub-streams to respective processing elements, wherein the respective processing elements employ the plurality of sub-streams to execute an application.
申请公布号 US8756264(B2) 申请公布日期 2014.06.17
申请号 US200711716379 申请日期 2007.03.09
申请人 Google Inc. 发明人 Sussman Myles A.;Crutchfield William Y.;Papakipos Matthew N.
分类号 G06F1/02 主分类号 G06F1/02
代理机构 Morgan, Lewis & Bockius LLP 代理人 Morgan, Lewis & Bockius LLP
主权项 1. A method of generating pseudo-random numbers, comprising: in a runtime system configured to run on a parallel-processing computer system that includes a first processor and a plurality of co-processors and memory storing one or more programs for execution by the first processor and the plurality of co-processors, at runtime: receiving one or more operation requests from an application, the one or more operation requests comprising requests for a plurality of pseudo-random number sub-streams;selecting respective ones of the plurality of co-processors for executing the pseudo-random number generators; generating a plurality of sub-streams of pseudo-random numbers, wherein the sub-streams are generated in parallel by the selected co-processors; and providing the plurality of sub-streams to respective co-processors, wherein each co-processor is configured to employ one of the plurality of sub-streams to execute the application; wherein generating the plurality of sub-streams comprises: in the first processor, storing a state associated with a first element in a respective sub-stream of the plurality of sub-streams;in the first processor, advancing the state;providing the advanced state to a respective co-processor of the plurality of co-processors, wherein the respective co-processor calculates a second element in the respective sub-stream in accordance with the advanced state; andat one of the plurality of co-processors: computing, for a sub-stream, an index location; andreading, from an indexed table, a value stored at the computed index location, wherein the indexed table for a respective sub-stream is stored in a texture memory of one of the co-processors that is a graphics processing unit.
地址 Mountain View CA US