High-performance computing and open-source software

October 8, 2014 Links No comments

A recent Report on High Performance Computing by the US Secretary of Energy Advisory Board contains a bizarre section on open source software, which states

There has been very little open source that has made its way into broad use within the HPC commercial community where great emphasis is placed on serviceability and security.

In his thoughtful blog post in response to this report, Will Schroeder, the CEO an co-founder of the legendary Kitware Inc. makes a number of strong points defending the role of open source in the past and future development of HPC. He concludes

The basic point here is that issues of scale require us to remove inefficiencies in researching, deploying, funding, and commercializing technology, and to find ways to leverage the talents of the broader community. Open source is a vital, strategic tool to do this as has been borne out by the many OS software systems now being used in HPC application… ItÂ’s easy to overlook open source as a vital tool to accomplish this important goal, but in a similar way that open source Linux has revolutionized commercial computing, open source HPC software will carry us forward to meet the demands of increasingly complex computing systems.

See also Will Schroeder’s presentation The New Scientific Publishers at SciPy-2013.

Program of the month: sfmax1

September 24, 2014 Programs No comments

sfmax1 finds local maxima along the first axis of the input. It takes floating-point input but outputs complex numbers, where the real part stands for the location of the local minima and the imaginary part stands for the value of the input at local minima.

The number of minima to output is controlled by np= parameter. To control the range for the minima locations (in the case that it is smaller than the full range of the data), use min= and max=. The output is sorted by value so that the largest maxima appear first. Here is a quick example. Let us create some data:

bash$ sfmath n1=5 output="sin(x1)" > data.rsf 
bash$ bash$ < data.rsf sfdisfil
   0:             0       0.8415       0.9093       0.1411      -0.7568

Observing the data values, we can suspect that the local maximum is between 1 and 2.

bash$ < data.rsf sfmax1 np=1 | sfdisfil
   0:      1.581,    0.9826i

sfmax1 uses local parabolic interpolation to locate the minimum at 1.581 with the value of 0.9826.

In the following example, from tccs/flat/flat, sfmax1 is used to locate the strongest-amplitude horizons for predictive painting.

10 previous programs of the month:

Tutorial on data slicing

August 20, 2014 Examples No comments

The example in rsf/tutorials/slicing reproduces the tutorial from Evan Bianco of simple data slicing.

See also:

Madagascar users are encouraged to try improving the results.

Iterative deblending using shaping regularization

August 20, 2014 Documentation No comments

A new paper is added to the collection of reproducible documents:
Iterative deblending of simultaneous-source seismic data using seislet-domain shaping regularization

We introduce a novel iterative estimation scheme for separation of blended seismic data from simultaneous sources. The scheme is based on an augmented estimation problem, which can be solved by iteratively constraining the deblended data using shaping regularization in the seislet domain. We formulate the forward modeling operator in the common receiver domain, where two sources are assumed to be blended using a random time-shift dithering approach. The nonlinear shaping-regularization framework offers some freedom in designing a shaping operator to constrain the model in an underdetermined inverse problem. We design the backward operator and the shaping operator for the shaping regularization framework. The backward operator can be optimally chosen as a half of the identity operator in the two-source case, and the shaping operator can be chosen as coherency-promoting operator. Three numerically blended synthetic datasets and one numerically blended field dataset demonstrate the high-performance deblending effect of the proposed iterative framework. Compared with alternative f-k domain thresholding and f-x predictive filtering, seislet-domain soft thresholding exhibits the most robust behavior.

Second Madagascar Working Workshop

August 5, 2014 Celebration No comments

Working workshops” as opposed to “talking workshops” are meetings where the participants work together (possibly divided into pairs or small teams) to develop new software code or to conduct computational experiments addressing a particular problem. Working workshops are a cross between scientific workshops and coding sprints or hackathons common among open-source software communities.

26 participants from 11 different organizations gathered at Rice University at the end of July and beginning of August for the Second Madagascar Working Workshop, hosted by The Rice Inversion Project. The topic of the workshop was parallel high-performance computing. The participants divided into teams of 2-3 people by pairing experienced Madagascar developers with novice users. Each team worked on a small project, creating examples of parallel computing or improving general-purpose tools such as sfmpi, sfomp, and (newly created) sfbatch.

The participants used Stampede, the world’s seventh most powerful supercomputer, provided by the Texas Advanced Computing Center, for their computational experiments.

Program of the month: sfstolt

August 3, 2014 Programs No comments

sfstolt implements zero-offset (post-stack) seismic migration using Stolt method.

Stolt migration is described in the classic paper

Stolt, R. H., 1978, Migration by Fourier transform: Geophysics, 43, 23-48.

The following example from gallery/french/stolt shows the result of Stolt migration in the French model:

The classic Stolt migration works for constant velocity. However, it can be extended to the case of V(z) by using Stolt stretch and cascaded migrations. See Evaluating the Stolt-stretch parameter and its references, including

Beasley, C., W. Lynn, K. Larner, and H. Nguyen, 1988, Cascaded frequency-wavenumber migration – Removing the restrictions on depth-varying velocity: Geophysics, 53, 881-893.

The following example from sep/stoltst/elfst compares the results of Stolt migration with Stolt stretch, phase-shift migration, and cascaded Stolt migration with Stolt stretch.

sfstolt2 is another version of Stolt migration, with a control on interpolation accuracy. The following example from sep/forwd/stolt compares results from two different interpolations:

10 previous programs of the month:

Program of the month: sfltft

July 13, 2014 Programs No comments

sfltft (Local Time-Frequency Transform) decomposes input data into frequency components.

The algorithm is described in the paper Seismic data analysis using local time-frequency decomposition and is based on regularized non-stationary regression. The following example from tccs/ltft/timefreq shows 1-D synthetic data composed of two chirp signals and the magnitude of coefficients in its time-frequency decomposition:

The frequency sampling in the output of sfltft is controled by nw=, w0=, and dw=. By default, these parameters correspond to the sampling of the discrete Fourier transform. The critical parameters for regularized regression are rect= (smoothing radius in time, in samples) and niter= (number of iterations). To output the details of iterative regularization, use verb=y. The frequency sampling and the rect= parameter provide explicit controls on time-frequency resolution. In the example above, rect=7. It is possible to change smoothing radius with frequency by using alpha= parameter. The iterative inversion can be controlled additionally by specifying a data weight (with mask=) or a model weight (with weight=). Optionally, the Fourier basis used in the decomposition can be extracted from the program by specifying basis= file.

To perform the inverse transform from time-frequency back to time domain, use inv=y. sfltft takes real-valued input and produces complex-valued output.

An analogous program for transforming complex-valued data is sfcltft. A related program is sftimefreq described in Time-frequency analysis of seismic data using local attributes.

10 previous programs of the month:

Madagascar in the cloud

July 10, 2014 Systems No comments

SageMathCloud is a free cloud computing platform for computational mathematics created by William Stein, the leader of the Sage project.

SageMathCloud provides a rich environment, which allows one, for example, to easily install Madagascar and to access it interactively through its Python interface. The example above shows Madagascar running interactively in the cloud using an IPython notebook hosted by SageMathCloud. Support for interactive widgets is a new feature in IPython version 2 released earlier this year.

See also:

Making a wedge

July 1, 2014 Examples No comments

The example in rsf/tutorials/wedge reproduces the example from Evan Bianco of simple convolution modeling with a wedge model.

See also:

Fast elastic mode separation in anisotropic media

June 24, 2014 Documentation No comments

A new paper is added to the collection of reproducible documents:
Fast algorithms for elastic-wave-mode separation and vector decomposition using low-rank approximation for anisotropic media

Wave mode separation and vector decomposition are significantly more expensive than wavefield extrapolation and are the computational bottleneck for elastic reverse-time migration (ERTM) in heterogeneous anisotropic media. We express elastic wave mode separation and vector decomposition for anisotropic media as space-wavenumber-domain operations in the form of Fourier integral operators, and develop fast algorithms for their implementation using their low-rank approximations. Synthetic data generated from 2D and 3D models demonstrate that these methods are accurate and efficient.