Sign up for our newsletter and get the latest HPC news and analysis.
Send me information from insideHPC:


Brightskies Deploys Open Source RTM Application for Easy Optimization across Multiple Architectures

In today’s high-performance computing applications, many different pieces of hardware can perform data-centric functions. With diverse accelerators entering the market, programming for multiple architectures has created significant development barriers for software developers.

Today, oil and gas companies must contend with unprecedented changes to markets as the coronavirus pandemic impacts prices. With cost efficiency as a top priority, digital transformation has become an increasingly urgent need. According to the International Energy Agency (IEA), “Widespread use of digital technologies could decrease production costs between 10 percent and 20 percent, including through advanced processing of seismic data, the use of sensors, and enhanced reservoir modeling.”1

In an oil and gas sector that is more digitized than ever, intense compute workloads—often spread across a heterogeneous computing environment and diverse devices—are a necessary part of doing business. Optimizing performance and cost for diverse heterogeneous environments is the path forward through today’s cost challenges. Getting there will require getting smart about using all possible computational capacity in every HPC cluster: across CPUs, FPGAs, accelerators, and AI cards.

Implementing RTM with Intel® oneAPI and DPC++

At Brightskies, headquartered in Alexandria, Egypt, engineering teams are focused on code optimization and cloud management for HPC applications in the oil and gas industry. Brightskies has partnered with multiple oil and gas companies and research institutions to optimize code and evolve how these companies model and use seismic data.

As part of its continuing efforts to improve computing performance in a cost-effective way for seismic imaging, Brightskies chose to implement reverse time migration (RTM). This method is considered a preferred technique for complex oil and gas exploration environments—to obtain and analyze high-resolution depth images.

RTM is a two-way, wave equation depth migration containing multiple patterns, which can put significant strain on all computational resources, including compute, memory bandwidth, and I/O. To optimize processing on heterogeneous hardware without creating problems with vendor lock-in, Brightskies chose to implement RTM using Data Parallel C++ (DPC++).

Khaled Elamrawi, president of Brightskies, says, “With a smooth learning curve from C++, minor code divergence, and a common codebase, the leading-edge Intel® oneAPI technology reduces the barriers of programming on different architectures. This allows maximum flexibility to harness all the computational capacity of HPC clusters.”

A key component of the new oneAPI industry initiative, DPC++ makes parallel programming faster and more efficient, making it possible to offload parallel computations to hardware accelerators. Designed to work effectively across multiple processor architectures, DPC++ eliminates the need to maintain separate codebases for each architecture. This helps to avoid issues of being locked in to a specific compute architecture, and makes it possible for oil and gas companies to manage workloads with the most effective architecture for the job.

Brightskies started by developing an OpenMP implementation. However, DPC++ offered the best potential for a hardware-agnostic approach to attain high performance on multiple architectures. Its new version, created in DPC++, offloads only critical hotspots to accelerators, leaving the remainder of the codebase unchanged.

Results and future plans for RTM with DPC++

Based on familiar C++11 standards, DPC++ adoption was relatively simple, with a low learning curve for Brightskies engineers. As much as 70 percent of the original OpenMP codebase remained untouched in the new DPC++ implementation. Parameter changes are simple with DPC++, and the code tree can be easily maintained for CPUs, GPUs, and more.

In order to optimize the DPC++ version further, Intel® Advisor was used to tune multiple kernels for different target architectures. Using cache simulation, Intel Advisor provided automatic guidance to improve performance, drilling down into specific functions to get a clearer picture of DRAM and cache utilization as well as system bandwidth use. The implementation required minimal hand-tuning to address both CPU and GPU compute resources—typically just a recompile.

While the initial beta stage release with oneAPI and DPC++ does not yet match the performance of the original OpenMP version, it was designed as proof of functionality. Future beta releases of oneAPI and compiler performance adjustments for DPC++ (anticipated this summer) are expected to close the performance gap.

The full application has been made available as open source software, allowing oil and gas industry experts and developers to iterate and innovate on the platform using oneAPI and DPC++. With an easily modified codebase, Intel and Brightskies expect that other industry players will pursue new possibilities, including I/O management (with or without compression), geophysical boundary conditions, and numerical approaches including wave equation order and stencil length.

Based on its experience with building open source software using oneAPI and DPC++, Brightskies also hopes to partner with additional oil and gas companies to incorporate oneAPI and DPC++ into their environments and applications. These changes will create a hardware-agnostic approach that maximizes efficiency.

According to Brightskies Software Manager Amr Nasr, “With strong commitment and continuous support from Intel, Brightskies was able to fully utilize the Intel® oneAPI capabilities. In addition, the expected future enhancements promise a significant leap in the performance of seismic imaging and velocity model building techniques.”

How the oneAPI industry initiative and DPC++ simplify multiarchitecture development

Dismantling barriers to software creation across multiple accelerator architectures is an urgent need for data-centric organizations. The oneAPI industry initiative, based on open standards and free for use, was designed to accelerate functional code development across multiple architectures. Today, these standards offer a validated approach that can help oil and gas companies to architect digital transformation with an eye toward development costs and efficient use of technology resources.

To achieve this goal, oneAPI uses a common programming language, DPC++, extending C++ and SYCL with a common language and APIs that allow developers to program for multiple accelerators quickly. C++ is used for its known productivity benefits for developers and to provide a shallow learning curve for developers already using C++. SYCL offers additional support for data parallelism and heterogeneous programming.

By using oneAPI and DPC++, developers can eliminate issues of vendor lock-in and keep digital transformation cost-efficient, with an easier learning curve. They also obtain access to a “single source” development style that stores host and kernel code in a single source file. Because DPC++ uses a similar syntax to C++ for memory allocation and management, programmers who have previously used C++ will find learning memory management techniques for DPC++ to be relatively easy.

Getting started with oneAPI and DPC++ can be fast and easy. Intel® oneAPI Toolkits (Beta) are available for download for local use from the Intel® Developer Zone. To quickly test code and workloads across architectures in the cloud, developers can use the free Intel® DevCloud for oneAPI, which allows free access to Intel® oneAPI software without the need for setup or installation.

Read more

For more information or to use the Brightskies RTM application, see the white paper or download the Brightskies RTM open source repository.

To learn more about the oneAPI industry initiative, click here.  For more information on DPC++, see our insideHPC article.

Legal

© Intel Corporation. Intel, the Intel logo, and other Intel marks are trademarks of Intel Corporation or its subsidiaries. Other names and brands may be claimed as the property of others.

  1. https://www.iea.org/reports/digitalisation-and-energy.

Resource Links: