Python bindings snake into global arrays toolkit

Sep 26, 2011
Python bindings snake into global arrays toolkit
Researchers at DOE’s Pacific Northwest National Laboratory have expanded the Global Arrays Toolkit to support the computer programming language Python to make it easier for programmers to write codes and incorporate features of GA.

While many of us don't want anything to do with snakes, for some, a certain kind of Python—the computer programming language, that is—is the preferred option. Researchers at Pacific Northwest National Laboratory have expanded the Global Arrays (GA) Toolkit to include full support for Python and make it easier for programmers to write codes and take advantage of GA features.

Use of Python in the high-performance computing community is growing, with multiple research institutions—including national laboratories as well as the Ohio Supercomputing Center—turning to the easy-to-use language to write high-performance computing codes. Python is used in scientific applications, such as bioinformatics, visual analytics, molecular dynamics, hydrology, material sciences and more.

The GA Toolkit enables researchers to more efficiently access global data, run bigger models, and simulate larger systems, resulting in a better understanding of the data and processes being evaluated. Integrating Python with GA allows programmers to more easily customize the GA Toolkit when they need shared memory for a distributed memory computers, improving and expanding researchers' ability to access the necessary data.

The Python bindings for GA were developed using the Cython language, which makes writing C extensions for the Python language as easy as using Python itself.  The GA Python bindings provide the programmer with access to local memory or copies of remote memory as NumPy arrays, allowing full use of the rich NumPy application programming interface (API) to extend the functionality of Global Arrays beyond previous capabilities.  This combination of GA and NumPy was then used to create a distributed, work-alike replacement of the NumPy module.

By integrating Python with GA, programmers are provided with a more convenient globally-shared view of multi-dimensional arrays while retaining the option to use the Message Passing Interface (MPI) if needed.  Using GA with Python is significantly simpler than MPI for many applications, as well as having the capability for expansion and scalability.  Using GA with Python is now simpler than ever, providing a work-alike replacement for Python's NumPy module, the de facto standard for numerical computing in Python. The new Python module, Global Arrays in NumPy (GAiN), allows the development and debugging of serial NumPy codes which can later scale on more capable clusters or supercomputers - often by changing only one line of Python code.

The GA tutorial and related paper presentation at this year's Python for Scientific Computing Conference (SciPy) generated enough buzz that SciPy's institutional sponsor, Enthought Inc., is considering incorporating GA and GAiN into its distribution.  PNNL is pursuing funding opportunities and looking to expand our user base.

Explore further: Ant colonies help evacuees in disaster zones

More information: Daily JA, and RR Lewis.  2011.  "Using the Global Arrays Toolkit to Reimplement NumPy for Distributed Computation." In SciPy 2011. PNNL-SA-80943, Pacific Northwest National Laboratory, Richland, WA.

Daily JA, et al..  2011. "High Performance Computing in Python using NumPy and the Global Arrays Toolkit." Presented by Jeff Daily at SciPy 2011, Austin, TX on July 12, 2011.  PNNL-SA-81329.

Daily JA, et al. 2011. "Overview of the Global Arrays Parallel Software Development Toolkit." PyCon 2011.

Daily JA, et al. 2011. "PyCon 2011 Lightning Talk: The Global Arrays Parallel Programming Toolkit." PyCon 2011.

Related Stories

'Vicious' Giant Python Invading Florida

Sep 21, 2009

( -- New studies suggest a 20 foot snake, the African rock python, is making its home in Florida and could soon invade the Everglades National Park.

Picture-driven computing (w/ Video)

Jan 20, 2010

Until the 1980s, using a computer program meant memorizing a lot of commands and typing them in a line at a time, only to get lines of text back. The graphical user interface, or GUI, changed that. By representing ...

Google Go gets going (w/ Video)

Nov 11, 2009

( -- Google has introduced its new experimental programming language Go, which aims to combine speedy application development through simplified coding with high-speed program execution.

Python shrine found in Botswana

Dec 04, 2006

A Norway-based archaeologist has found a cave in Botswana that appears to be a 70,000-year-old religious shrine.

Recommended for you

Quantenna promises 10-gigabit Wi-Fi by next year

3 hours ago

( —Quantenna Communications has announced that it has plans for releasing a chipset that will be capable of delivering 10Gbps WiFi to/from routers, bridges and computers by sometime next year. ...

New US-Spanish firm says targets rich mobile ad market

4 hours ago

Spanish telecoms firm Telefonica and US investment giant Blackstone launched a mobile telephone advertising venture on Wednesday, challenging internet giants such as Google and Facebook in a multi-billion-dollar ...

Environmentally compatible organic solar cells

4 hours ago

Environmentally compatible production methods for organic solar cells from novel materials are in the focus of "MatHero". The new project coordinated by Karlsruhe Institute of Technology (KIT) aims at making ...

Twitter rules out Turkey office amid tax row

4 hours ago

Social networking company Twitter on Wednesday rejected demands from the Turkish government to open an office there, following accusations of tax evasion and a two-week ban on the service.

User comments : 1

Adjust slider to filter visible comments by rank

Display comments: newest first

5 / 5 (1) Sep 27, 2011
Personally, if I could, I'd code in Python exclusively. Performance is abysmal unfortunately and is only tolerable for scripting applications. "C plus plus" makes up the remainder which is much more unforgiving to draw up solutions in but is blazingly fast. The real problem with "C plus plus" is the way the standard libraries have been swamped with template code, so minor innocuous errors can cause several pages of compiler errors. It's a serious design flaw (btw, formatting rules seem to be preventing me from writing the plus symbol in this post)

More news stories

Quantenna promises 10-gigabit Wi-Fi by next year

( —Quantenna Communications has announced that it has plans for releasing a chipset that will be capable of delivering 10Gbps WiFi to/from routers, bridges and computers by sometime next year. ...

Unlocking secrets of new solar material

( —A new solar material that has the same crystal structure as a mineral first found in the Ural Mountains in 1839 is shooting up the efficiency charts faster than almost anything researchers have ...

Floating nuclear plants could ride out tsunamis

When an earthquake and tsunami struck the Fukushima Daiichi nuclear plant complex in 2011, neither the quake nor the inundation caused the ensuing contamination. Rather, it was the aftereffects—specifically, ...

Patent talk: Google sharpens contact lens vision

( —A report from Patent Bolt brings us one step closer to what Google may have in mind in developing smart contact lenses. According to the discussion Google is interested in the concept of contact ...

Meteorites yield clues to Martian early atmosphere

( —Geologists who analyzed 40 meteorites that fell to Earth from Mars unlocked secrets of the Martian atmosphere hidden in the chemical signatures of these ancient rocks. Their study, published ...