pycon logo

PyCon 2011 Atlanta

March 9th–17th

Log in or Sign Up

GPU computing and the Next Generation Air Transportation System

log in to bookmark this presentaton

E
Experienced / Poster
At this poster you will learn about a set of open source tools for GPU computing using python based on ctypes. These tools provide lots of glue, combining elements of python <=> pyglet <=> CUDA <=> C# <=> Django. You will see how we use these tools in our Next Generation Air Transportation work.

Abstract

NextGen AeroSciences, LLC NextGen AeroSciences, LLC, is working with colleagues at NASA, NIA, and other US Government and related organizations in support of national efforts to transform the US air transportation system. The Company builds on its founders' contributions in applied research in complexity and network sciences, computationally efficient combinatorial mathematics, and in air transportation system strategies, technologies, and innovation management. The founders bring a heritage from the Santa Fe Institute, NASA, Los Alamos National Laboratory, Bios Group, and DayJet Corporation.

job control panel 200 aircraft

The following tools (and possibly others) will be described:

  • ct_cuda provides a ctypes interface to CUDA. This approach offers a lightweight alternative to pycuda. ct_cuda does not require a build; a relief for those who consider ctypes a preferable alternative to python extension wrapper libraries. Another difference is that kernels are built in the standard CUDA-C manner and exposed to python as kernel libraries via ctypes.
  • boaracuda consists of glue to make CUDA accessible to a pyglet app. Among other benefits, this allows a CUDA kernel to operate on pyglet based vertex lists. This approach enables fast-time animation tens of thousands of sprites in pyglet with trajectories calculated in a CUDA kernel. (Etymology hint: boar=pyglet)
  • ct_sharp makes a python shell available to C#, suitable for launching a pyglet control thread.
  • cuda_sharp makes CUDA available to C# and provides interoperability between C# and python (e.g. passing CUDA buffers between C# and python)
  • A system for launching remote CUDA jobs from a Django application will also be described.

The implementation of this software architecture provides the means for understanding, designing, and ultimately operating complex adaptive systems such as in air transportation.