Thrust Belt Imaging

The Tools for Accurate Seismic Imaging

TBI’s homegrown Structures application: TBI geophysicists run Structures on their interpretive workstations to analyze seismic imagery and determine which processes to send back to the Xserve cluster for additional processing.

“I set up the eight-node Xserve cluster the night it arrived, and the next morning we were running jobs,” says Schack. “We’re talking about a 24-hour period between when the hardware arrived and when we were up and running. The cluster was just amazingly simple to set up, and the tools to do it were included for free.”

Mac OS X Server comes with Xgrid Admin and Server Admin, which can be used to set up a distributed computing environment. One system is set up as the Xgrid controller, while each Xserve in the cluster runs the Xgrid agent, making it available for running distributed jobs. On occasion, TBI even adds the Power Mac G5 desktop systems to their list of agents so that they can get some extra compute cycles. “With just a flick of a switch, an additional six processors are available,” says Schack.

After the hardware solutions were in place, TBI had to get its software up to speed. A large part of the decision to implement an Apple hardware solution was the advantages that TBI would gain on the software side. An in-house visualization tool had to be coded for use on the interpretive workstations. Xcode was the perfect development environment for the task.

“I set up the eight-node Xserve cluster the night it arrived, and the next morning we were running jobs.... The cluster was just amazingly simple to set up, and the tools to do it were included for free.”

Focus on the Science

The ease of development using Mac OS X and Xcode’s friendly environment allowed TBI to focus on science right out of the gate, cutting development time and overhead to a minimum. “Because Mac OS X is UNIX based, all the free software that we use out there is going to work with a couple of tweaks in the make files,” says Schack. “We can focus on the geophysics and geology side of what we’re doing. All the extraneous stuff is removed and handled for us; otherwise, we couldn’t have set things up in the time we did.”

Active agents on TBI’s Xserve cluster, as seen through Xgrid: seven compute nodes and two interpretive workstations process data.

By using Apple’s vector libraries for the Power Mac G5’s AltiVec instruction set, TBI was also able to optimize codes while ensuring a smooth transition to Intel’s Streaming SIMD Extensions (SSE) instruction set in their future roadmap and on their Intel-based iMac computers, which they use for development.

TBI develops custom codes for much of their processing, but it was also important that they choose a platform capable of using existing applications and familiar tools. One such application is called Seismic Unix, a UNIX-based seismic processing and research environment (developed at the Center for Wave Phenomena, Colorado School of Mines). “We knew Seismic Unix ran well on Linux, so we just picked up a copy and compiled it,” Schack says. “With a couple of tweaks, it ran on Mac OS X. It took maybe half a day of figuring out one of the make files, and we were done.”

The Jobs view in Xgrid Admin shows the Xserve cluster’s queue with a list of pending, running, and finished jobs.

After getting the interpretive workstations up and running, they placed the Xserve cluster order, and the development focus shifted to Xgrid. “We’re a small shop,” Vestrum explains. “We didn’t want to have to write a lot of software to manage the cluster, and we didn’t want to buy a really big cluster-management system. Xgrid, which comes with Mac OS X, does a great job with almost no setup. We wrote a couple of scripts to manage our jobs for us, and Xgrid does the rest.”

TBI uses Python scripts to create a series of anisotropic migration jobs to send to the cluster. The scripts run from a single command line that sends an Extensible Markup Language (XML) property list to the Xgrid controller, which in turn spreads the tasks across the cluster for processing.

1 2 3