Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by George Russell.
high performance embedded architectures and compilers | 2010
Pete Cooper; Uwe Dolinsky; Alastair F. Donaldson; Andrew Richards; Colin Riley; George Russell
We present Offload, a programming model for offloading parts of a C++ application to run on accelerator cores in a heterogeneous multicore system. Code to be offloaded is enclosed in an offload scope; all functions called indirectly from an offload scope are compiled for the accelerator cores. Data defined inside/outside an offload scope resides in accelerator/host memory respectively, and code to move data between memory spaces is generated automatically by the compiler. This is achieved by distinguishing between host and accelerator pointers at the type level, and compiling multiple versions of functions based on pointer parameter configurations using automatic call-graph duplication. We discuss solutions to several challenging issues related to call-graph duplication, and present an implementation of Offload for the Cell BE processor, evaluated using a number of benchmarks.
complex, intelligent and software intensive systems | 2010
Alastair F. Donaldson; Uwe Dolinsky; Andrew Richards; George Russell
Offload C++ is an extended version of the C++ language, together with a compiler and runtime system, for automatically offloading general-purpose C++ code to run on the Synergistic Processor Elements (SPEs) of the Cell Broadband Engine (BE) processor. We introduce Offload C++ by presenting a case study using the approach to offload parts of an image processing application. The case study introduces the language extensions; illustrates the core technology on which the technique is based: automatic call-graph duplication, and automatic generation of data-movement code; shows how parallelism can be achieved by offloading work to multiple SPEs simultaneously, while the Power Processor Element (PPE) core simultaneously performs additional work; and demonstrates our solutions to dealing with complex language features such as function pointers and multiple compilation units.
network and system support for games | 2008
George Russell; Alastair F. Donaldson; Paul Sheppard
We describe a novel scripting language for writing bandwidth-efficient online game logic. The language facilitates the development of deterministic, concurrent, distributed games, with assurances of consistency maintenance between clients and server. Our approach allows for increased simulation accuracy when compared to dead reckoning, and removes the need to write code to repair distributed state inconsistencies, or to explicitly transfer data over a network.
european conference on parallel processing | 2010
George Russell; Paul Keir; Alastair F. Donaldson; Uwe Dolinsky; Andrew Richards; Colin Riley
Intels Threading Building Blocks (TBB) provide a high-level abstraction for expressing parallelism in applications without writing explicitly multi-threaded code. However, TBB is only available for shared-memory, homogeneous multicore processors. Codeplays Offload C++ provides a single-source, POSIX threads-like approach to programming heterogeneous multicore devices where cores are equipped with private, local memories--code to move data between memory spaces is generated automatically. In this paper, we show that the strengths of TBB and Offload C++ can be combined, by implementing part of the TBB headers in Offload C++. This allows applications parallelised using TBB to run, without source-level modifications, across all the cores of the Cell BE processor. We present experimental results applying our method to a set of TBB programs. To our knowledge, this work marks the first demonstration of programs parallelised using TBB executing on a heterogeneous multicore architecture.
Archive | 2008
George Russell; Andrew Richards
Archive | 2007
Andrew Richards; Andrew Cook; George Russell
Archive | 2008
George Russell; Andrew Richards
Archive | 2008
George Russell; Andrew Richards
Programming multi-core and many-core computing systems. Ed.: S. Pllana | 2017
Siegfried Benkner; Sabri Pllana; Jesper Larsson Träff; Philippas Tsigas; Andrew Richards; George Russell; Samuel Thibault; Cédric Augonnet; Raymond Namyst; H. Cornelius; C. Keler; David Moloney; Peter Sanders
Archive | 2011
Beverly Bachmayer; Siegfried Benkner; Sabri Pllana; Jesper Larsson Träff; Erich Marth; Martin Sandrieser; Martin Wimmer; Philippas Tsigas; Daniel Cederman; Uwe Dolinsky; George Russell; Andrew Richards; Raymond Namyst; Cédric Augonnet; Samuel Thibault; Christoph W. Kessler; Usman Dastgeer; David Moloney; Peter Sanders; Vitaly Osipov